2013-09-14 2 views
0

Я следую настоящий полный учебник для 2D игры развивается на андроид с помощью OpenGL, и я столкнулся следующиеOpenGL 2D введение Android

static final String VERTEX_SHADER_CODE = 
     "uniform mat4 u_mvpMatrix;" + 
     "attribute vec4 a_position;" + 

     "void main() {" + 
     " gl_Position = u_mvpMatrix * a_position;" + 
     "}"; 

static final String FRAGMENT_SHADER_CODE = 
     "precision mediump float;" + 
     "uniform vec4 u_color;" + 

     "void main() {" + 
     " gl_FragColor = u_color;" + 
     "}"; 

Я новичок в OpenGL, так что я хотел бы знать, что этот код означает? или где я могу узнать больше об этом.

Я также прочитал о программе GL, я хотел бы знать, что это такое.

+0

это GLSL. прочитайте книгу об этом, это очень важно для графического программирования. –

+0

Полная игра с комментариями: https://code.google.com/p/android-breakout/. В разделе wiki откройте «вводный» документ и прокрутите страницу вниз для некоторых полезных ссылок. – fadden

ответ

3

Это два кода, которые будут выполнены графическим чипом. Код написан на GLSL ES, языке, основанном на GLSL 1.20, с рабочего стола OpenGL.

Первый фрагмент кода - вершинный шейдер; он выполняется для каждой вершины. Второй - шейдер фрагмента; он выполняется для каждого пикселя растрированной геометрии. Ваши примеры имеют минимальный минимум или, возможно, даже меньше. Например, шейдерный код обычно выполняет вычисления освещения. Эти вычисления отсутствуют здесь; рендеринг не будет выглядеть как 3D-объекты. Позже учебники добавят эти вычисления.

Если вы начинаете с OpenGL и GLSL на Android, рекомендуется прочитать книгу OpenGL ES2.0, такую ​​как this one. Существуют также книги, относящиеся к GLSL, но общие книги OpenGL охватывают все, что вам нужно, когда вы начинаете.

Еще одно примечание. Некоторые обучающие программы для Android и примеры приложений хранят шейдерный код в строковых литералах, подобных опубликованным. На самом деле довольно больно писать такой код (без разрывов строк, подсветки синтаксиса). Возможно, вам захочется прочитать ваши шейдерные программы из отдельных текстовых файлов.

+0

Также есть плагин для Eclipse, который выполняет синтаксическую раскраску файлов GLSL. http://sourceforge.net/projects/glshaders/ –