C++ 在特定坐标后停止在OpenGL上渲染纹理
我如何才能对纹理渲染的位置进行限制。有点像当另一半在窗口外时,你只能看到一半的纹理。我在谷歌上搜索这篇文章时遇到了麻烦,因为任何像“边界”或“限制”之类的东西都会把我引向其他话题 例如,我有一个可以用键盘移动的正方形,我希望它不会渲染穿过红线的正方形的任何部分:C++ 在特定坐标后停止在OpenGL上渲染纹理,c++,opengl,C++,Opengl,我如何才能对纹理渲染的位置进行限制。有点像当另一半在窗口外时,你只能看到一半的纹理。我在谷歌上搜索这篇文章时遇到了麻烦,因为任何像“边界”或“限制”之类的东西都会把我引向其他话题 例如,我有一个可以用键盘移动的正方形,我希望它不会渲染穿过红线的正方形的任何部分: 我怎样才能做到这一点呢?这通常是通过以下方式实现的: 剪切试验(适用于矩形区域) 模板测试(适用于自由区域) 剪裁平面(用于三维平面) 着色器中的自定义代码(用于现代OpenGL和完全控制) 这通常通过以下方式实现: 剪切试验(适
我怎样才能做到这一点呢?这通常是通过以下方式实现的:
- 剪切试验(适用于矩形区域)
- 模板测试(适用于自由区域)
- 剪裁平面(用于三维平面)
- 着色器中的自定义代码(用于现代OpenGL和完全控制)
- 剪切试验(适用于矩形区域)
- 模板测试(适用于自由区域)
- 剪裁平面(用于三维平面)
- 着色器中的自定义代码(用于现代OpenGL和完全控制)
- 查看@Krom Stern的完整答案。我只想详细介绍一下剪刀测试,因为这似乎是你想要的。为了将图形输出限制为矩形区域,剪刀测试很容易使用:
首先,启用剪刀测试:
glEnable(GL_SCISSOR_TEST);
然后,指定限制区域(坐标以像素为单位):
更多详细信息可在查看@Krom Stern的完整答案。我只想详细介绍一下剪刀测试,因为这似乎是你想要的。为了将图形输出限制为矩形区域,剪刀测试很容易使用: 首先,启用剪刀测试:
glEnable(GL_SCISSOR_TEST);
然后,指定限制区域(坐标以像素为单位):
更详细的信息可以在中找到。您能更具体一点吗?是否只希望抑制纹理的渲染(即在示例中渲染整个白色框,但仅保持红线左侧的纹理),还是希望抑制某些边界之外的任何图形输出?后者可以通过适当地设置视口或使用剪刀测试来完成。后者,在实践中,特定纹理的图形输出不会渲染到某个点。我一直在谷歌上搜索viewport和scissor测试,它看起来很有希望,所以我将对此进行研究。谢谢你的帮助^-^你能说得更具体些吗?是否只希望抑制纹理的渲染(即在示例中渲染整个白色框,但仅保持红线左侧的纹理),还是希望抑制某些边界之外的任何图形输出?后者可以通过适当地设置视口或使用剪刀测试来完成。后者,在实践中,特定纹理的图形输出不会渲染到某个点。我一直在谷歌上搜索viewport和scissor测试,它看起来很有希望,所以我将对此进行研究。谢谢你的帮助^-^