使用 OpenGL 的 GL_POINT_SIZE_RANGE 解决方法?
Posted
技术标签:
【中文标题】使用 OpenGL 的 GL_POINT_SIZE_RANGE 解决方法?【英文标题】:GL_POINT_SIZE_RANGE workaround using OpenGL? 【发布时间】:2012-02-18 18:13:10 【问题描述】:我使用glPointSize
将我在游戏中发射的光子的大小设置为大约 3 像素。这很方便,因为我可以放大和缩小,以世界坐标绘制其他所有内容,并且光子仍然很容易看到。
但是在某些平台上(我真正的旧 linux 笔记本电脑)GL_POINT_SIZE_RANGE
仅限于一个像素。我需要另一种绘制光子的方法,否则我可能必须在世界坐标中将它绘制为一个实心圆,它的大小会根据缩放级别而变化,并且在缩小时可能会变得难以看到。
有解决办法吗?
【问题讨论】:
我能想到的唯一解决方法是你提到的那个。除了“实心圆”,您还可以将其绘制为带纹理的四边形或三角形,以节省一些顶点。 谢谢Thomas,我全力保存几个顶点! 【参考方案1】:您可以使用保存然后恢复用于转换的矩阵。
glPushMatrix();
//apply viewing transformations (e.g. in photon's coordinate system)
//and draw your photon here
glPopMatrix(); //restores back where you were working.
【讨论】:
以上是关于使用 OpenGL 的 GL_POINT_SIZE_RANGE 解决方法?的主要内容,如果未能解决你的问题,请参考以下文章