我正在使用OGL3.2开发我的游戏项目,我在纹理参数中使用GL_REPEAT通过定义大于(1;1)的ST坐标来非常快速地设置我的地形。但是现在,当我添加了一个skybox,skybox纹理之间的边缘看起来非常粗糙,我不想让它们变得粗糙。我可以使用GL_CLAMP_TO_EDGE参数删除它们,但是如果没有GL_REPEAT参数,terrain纹理渲染错误。所以我必须在GL_REPEAT和GL_CLAMP_TO_EDGE之间做出选择。如果我切换到GL_CLAMP_TO_EDGE,我不能使用GL_REPEAT advantage,不得不将我的地形分成更小的块,并逐个给每个块赋予纹理,这(在我看来)效率非常低,特别是当我想要巨大尺寸的地图时。
有没有办法同时利用GL_REPEAT和GL_CLAMP_TO_EDGE的优点,或者也许有更好的方法来解决这个问题,我不知道?
发布于 2012-12-17 22:12:03
您可以同时使用这两个工具。纹理包裹模式基于每个纹理进行存储,因此对地面纹理使用GL_REPEAT,对天空纹理使用GL_CLAMP_TO_EDGE。
在上载纹理图像之后(或之前,只要纹理已绑定),立即为每个纹理设置它。
https://stackoverflow.com/questions/13915632
复制相似问题