我正在使用OGL 3.2处理我的游戏项目,我在纹理参数中使用GL_REPEAT
通过定义超过(1; 1)的ST坐标来非常快速地设置我的地形。但是现在,当我添加了一个天空盒时,天空盒纹理之间的边缘看起来非常沙哑,我不希望它们。我可以使用GL_CLAMP_TO_EDGE
参数删除它们,但如果没有GL_REPEAT
参数,地形纹理会显示错误。因此,我必须在GL_REPEAT
和GL_CLAMP_TO_EDGE
之间进行选择。如果我将它切换到GL_CLAMP_TO_EDGE
我不能使用GL_REPEAT
优势并且必须将我的地形划分为更小的块并逐个给出纹理,这在(在我看来)非常低效,尤其是当我想要大尺寸的地图时。
有没有办法同时使用GL_REPEAT
和GL_CLAMP_TO_EDGE
的两个优点,或者有更多可靠的解决方法,我不知道?
答案 0 :(得分:5)
您可以同时使用两者。纹理包装模式存储在每个纹理的基础上,因此使用GL_REPEAT
作为地面纹理,使用GL_CLAMP_TO_EDGE
作为天空纹理。
在上传纹理图像后立即(或紧接着纹理被绑定之前)立即为每个纹理设置它。