我想制作看似反光的金属3d物体。我想使用环境着色器来完成此操作,该着色器使用球体或立方体贴图,我可以将图像或纹理指定为“反射”源。
iPhone上的OpenGL ES是否支持任何版本?
答案 0 :(得分:4)
OpenGL ES 2.0提供着色器支持。但是,目前市场上的许多移动设备都没有它。对您编写ES 1.1和ES 2.0版本的图形非常重要。
Apple开发中心拥有大量关于过渡的信息:
OpenGL的固定功能管道 ES 1.1提供了良好的基线行为 对于3D图形管道,来自 转换和照明顶点到 将最终像素与 帧缓冲区。如果你选择 实现OpenGL ES 2.0 申请,你需要 复制此功能。在 另一方面,OpenGL ES 2.0更多 比OpenGL ES 1.1更灵活。习惯 顶点和片段操作 很难或不可能 使用OpenGL ES 1.1可以实现 使用OpenGL轻松实现 ES 2.0着色器。实现自定义 在OpenGL ES 1.1中操作 应用程序通常需要多个 渲染过程和复杂的变化 到OpenGL ES状态模糊了 代码的意图。作为你的算法 增长复杂,着色器传达 那些操作更清楚 简明扼要,表现更好。
答案 1 :(得分:2)
在过去,使用称为“环境贴图”或"reflection mapping"的技术实现了“金属”外观。
由于OpenGL ES 1.1没有可编程着色器,因此可以使用软件进行简单的反射映射。只需根据反射源/相机变换顶点法线,并从变换后的法向量中获取纹理UV坐标。 iPhone有足够的马力来做到这一点,至少有一个不错的顶点数。
答案 2 :(得分:0)
OpenGL ES支持OpenGL的大部分功能(以及移动设备的一些额外功能)。如果我没记错,iPhone 3Gs支持片段着色器,而旧的iPhone 3G只支持固定管道。