我在哪里可以找到一些使用反射贴图的好例子?在OpenGL ES 1.0中是可能的吗?我试着使用glTexEnvx,但我不知道如何使用它。我也有一些问题:
1)反射贴图是否需要纹理坐标?在像3ds max这样的程序中,情况并非如此。
2) Can i change reflectivity vs. angle dependency (to make some kind of fresnel effect) without writing shaders?3)是否可以使用黑/白纹理来遮罩漫反射材质上的反射?
发布于 2012-02-21 11:17:42
glTexEnv设置类似于纹理采样如何与材质颜色组合的内容。它不会进行环境映射。在固定管道桌面OpenGL上,您可能会使用glTexGen。在OpenGL ES中没有glTexGen。
你可以做的是利用纹理矩阵堆栈。ES不支持3d纹理,但它支持3d纹理坐标。因此,将顶点法线复制到纹理坐标中,并确保使用法线矩阵加载纹理矩阵堆栈(如果没有缩放,法线矩阵只是从对象空间到世界空间的变换的旋转部分)。这样,您将最终得到与世界空间法线等效的3d纹理坐标。让GL使用这些作为纹理的2d索引将允许您使用球体贴图进行环境贴图。
这不是一个安卓的例子,但我能找到的最好的在线例子是来自诺基亚的旧的塞班/ 60系列例子的this one,它不会做任何愚蠢的事情,就像在中央处理器上做正常计算一样(明确地)。链接的文章解释了该方法,并包含了一个指向实现该方法的.cpp的链接。OpenGL ES在不同平台之间是相同的,除了扩展,所以它应该直接移植到安卓上。
https://stackoverflow.com/questions/9368090
复制相似问题