我在OpenGL中遇到了颜色选择和抗锯齿的问题。当启用抗锯齿时,glReadPixels的结果在物体边缘和交叉处明显错误。例如:
我渲染了一个盒子#28(RGBA:28,0,0,0)和一个盒子#32(RGBA:32,0,0,0)附近。使用抗锯齿,我可能会得到一个错误的ReadPixel值(例如30),其中立方体和三角形重叠,或者在盒子边缘上的14的值,由于AA算法。
我有大约4000个对象需要能够选择(这是一个拼图游戏)。能够按形状选择对象至关重要。
我尝试使用glDisable(GL_MULTISAMPLE)禁用AA,但它不适用于某些AA模式(我读过它取决于AA实现-SS、MS、CS等)。
那么,如何选择底层对象?
1. 临时禁用AA的方法? 2. 使用不同的缓冲区甚至渲染上下文? 3. 其他建议?
我渲染了一个盒子#28(RGBA:28,0,0,0)和一个盒子#32(RGBA:32,0,0,0)附近。使用抗锯齿,我可能会得到一个错误的ReadPixel值(例如30),其中立方体和三角形重叠,或者在盒子边缘上的14的值,由于AA算法。
我有大约4000个对象需要能够选择(这是一个拼图游戏)。能够按形状选择对象至关重要。
我尝试使用glDisable(GL_MULTISAMPLE)禁用AA,但它不适用于某些AA模式(我读过它取决于AA实现-SS、MS、CS等)。
那么,如何选择底层对象?
1. 临时禁用AA的方法? 2. 使用不同的缓冲区甚至渲染上下文? 3. 其他建议?