什么样的二维游戏着色器(即超级马里奥)

时间:2012-03-15 05:26:56

标签: 2d glsl sprite opengl-es-2.0

我一直在试图弄清楚如何使用OpenGL ES 2.0 for 2D。到目前为止,我认为我掌握了大多数事情。但是我还没想到的一件事就是如何为着色器做些什么?

我知道您在着色器中设置了相机/视图和灯光,但我不想要阴影或任何类型的灯光标志。基本上我只是想在屏幕上移动精灵,让精灵看起来就像我在Photoshop中画出精灵一样。

任何人都有一个着色器的例子可以做到这一点?或者也许是一篇谈论这个问题的文章?

我已经发现在尝试制作纯粹的2D程序时,OpenGL中有很多3D开销,但显然它是Android上唯一可行的选项。

1 个答案:

答案 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);
      }