我一直在试图弄清楚如何使用OpenGL ES 2.0 for 2D。到目前为止,我认为我掌握了大多数事情。但是我还没想到的一件事就是如何为着色器做些什么?
我知道您在着色器中设置了相机/视图和灯光,但我不想要阴影或任何类型的灯光标志。基本上我只是想在屏幕上移动精灵,让精灵看起来就像我在Photoshop中画出精灵一样。
任何人都有一个着色器的例子可以做到这一点?或者也许是一篇谈论这个问题的文章?
我已经发现在尝试制作纯粹的2D程序时,OpenGL中有很多3D开销,但显然它是Android上唯一可行的选项。
答案 0 :(得分:3)
我制作了2D视频游戏,这些是我使用的着色器。两个非常简单的着色器。这是你要的吗?
**VERTEX_SHADER_2D =**
attribute vec4 position;
attribute vec2 textureCoordIn;
varying vec2 vTextureCoordOut;
uniform mediump mat4 modelViewMatrix;
void main()
{
gl_Position = modelViewMatrix * position;
vTextureCoordOut = textureCoordIn;
}
**FRAGMENT_SHADER_2D =**
varying mediump vec2 vTextureCoordOut;
uniform sampler2D sampler;
void main()
{
gl_FragColor = texture2D(sampler, vTextureCoordOut);
}