Pik*_*iku 6 shader opengl-es glsl ios opengl-es-2.0
我正在编写一个OpenGL ES 2.0游戏(在iOS上).如何创建着色器(因为我假设在着色器中这样做更简单),因此距离原点(在Z轴上)的几何体看起来更暗?
这张照片中的水说明了我的想法
Zarch http://www.bytecellar.com/wp-content/uploads/2010/12/Zarch_screen.png
如果您只想使用几何体的Z位置,这很简单.您可以使用如下的顶点着色器:
attribute vec4 position;
varying float zDepth;
uniform mat4 modelViewProjMatrix;
void main()
{
vec4 newPosition = modelViewProjMatrix * position;
gl_Position = newPosition;
zDepth = (2.0 - (1.0 + newPosition.z))/2.0;
}
Run Code Online (Sandbox Code Playgroud)
和片段着色器一样
varying highp float zDepth;
void main()
{
gl_FragColor = vec4(zDepth, zDepth, 0.0, 1.0);
}
Run Code Online (Sandbox Code Playgroud)
这将产生以下外观:

我在为我的OpenGL ES 2.0类组装的这个iPad示例代码中有一个这样的例子.
| 归档时间: |
|
| 查看次数: |
616 次 |
| 最近记录: |