use*_*596 6 iphone rendering texture-mapping distortion opengl-es-2.0
OpenGL ES 2.0在纹理采样方面存在严重的精度问题 - 我见过类似问题的主题,但我还没有看到这个"扭曲的OpenGL ES 2.0纹理"问题的真正解决方案.
这与纹理的图像格式或OpenGL颜色缓冲区无关,似乎是精度错误.我不知道究竟是什么原因导致精度失败 - 它似乎不仅仅是导致这种失真的几何尺寸,因为简单地缩放传递给顶点着色器的顶点位置并不能解决问题.
以下是纹理失真的一些示例:
扭曲纹理(在OpenGL ES 2.0上):http://i47.tinypic.com/3322h6d.png
纹理通常是什么样的(也在OpenGL ES 2.0上):http://i49.tinypic.com/b4jc6c.png
纹理问题仅限于OpenGL ES 2.0上的小规模几何体,否则纹理采样看起来是正常的,但是颗粒效果会逐渐恶化顶点数据距离XYZ原点(0,0,0)
桌面OpenGL上不会出现这些纹理问题(在Windows XP,Windows 7和Mac OS X下正常工作)
我只看到Android,iPhone或WebGL上出现问题(类似于OpenGL ES 2.0)
所有纹理都是2的幂,但问题仍然存在
缩放顶点数据 - 顶点的XYZ位置的值在以下范围内:-65536到+65536浮点
缩放模型视图或缩放投影矩阵没有帮助
更改纹理过滤选项没有帮助
将传递给顶点着色器的纹理坐标划分,然后将它们乘以片段着色器中的正确值,也不起作用
精密highp sampler2D,highp浮动,highp INT -在片段或顶点着色器没有任何改变(lowp/mediump也不起作用)
我认为这个问题必须在某一点上得到解决 - 看到基于OpenGL ES 2.0的游戏已经能够渲染出大规模,高度详细的几何
小智 1
这是常见的纹理图集问题。没有设置限制中间纹理的线性插值。这就是硬件的工作原理。
您可以通过在片段程序中使用最近的过滤器纹理查找来解决此问题,该程序以您的纹理图块大小和位置为模计算纹理查找,并手动执行线性过滤。
| 归档时间: |
|
| 查看次数: |
1371 次 |
| 最近记录: |