Что за шейдер для 2D игр (т.е. Super Mario) - PullRequest
1 голос
/ 15 марта 2012

Я пытался понять, как использовать OpenGL ES 2.0 для 2D. До сих пор я думаю, что у меня есть контроль над большинством вещей. Но я не понял, что делать с шейдерами?

Я понимаю, что вы настроили камеру / вид и источники света в шейдере, но я не хочу теней или каких-либо признаков освещения. По сути, я просто хочу перемещать спрайты по экрану, чтобы спрайты выглядели в точности так, как они делали, когда я рисовал их в фотошопе.

У кого-нибудь есть пример шейдера, который сделал бы это? Или, может быть, статья об этом?

Я уже нахожу, что в OpenGL возникает много трехмерных накладных расходов при попытке создать чисто 2D-программу, но, видимо, это единственный жизнеспособный вариант на Android.

1 Ответ

3 голосов
/ 16 марта 2012

Я сделал 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);
      }
...