2017-09-13 36 views
-1

我开始在Android学习OpenGL。在developer.android.com中,我可以看到一些示例项目。在这些例子中,使用了许多OpenGL功能。但他们没有解释为什么他们被称为?例如,在snipet中,您可以看到用某种编码类型的文本声明的字符串变量。但在整个指导材料中,我找不到为什么使用这个文本(特别是这个)?在哪里可以找到developer.android.com中列出的opengl函数的解释/目的?

private final String vertexShaderCode = 
     "attribute vec4 vPosition;" + 
     "void main() {" + 
     " gl_Position = vPosition;" + 
     "}"; 

private final String fragmentShaderCode = 
     "precision mediump float;" + 
     "uniform vec4 vColor;" + 
     "void main() {" + 
     " gl_FragColor = vColor;" + 
     "}"; 

另外在下面的snipet中,有一些程序类型的编码是遵循的。但是我无法找到解释的程序。

public class Triangle() { 
    ... 

    private final int mProgram; 

    public Triangle() { 
     ... 

     int vertexShader = MyGLRenderer.loadShader(GLES20.GL_VERTEX_SHADER, 
             vertexShaderCode); 
     int fragmentShader = MyGLRenderer.loadShader(GLES20.GL_FRAGMENT_SHADER, 
             fragmentShaderCode); 

     // create empty OpenGL ES Program 
     mProgram = GLES20.glCreateProgram(); 

     // add the vertex shader to program 
     GLES20.glAttachShader(mProgram, vertexShader); 

     // add the fragment shader to program 
     GLES20.glAttachShader(mProgram, fragmentShader); 

     // creates OpenGL ES program executables 
     GLES20.glLinkProgram(mProgram); 
    } 
} 

我知道这个developer.android.com的准则是用于android开发。所以,如果我尝试在文档中提供的课堂讲解中找到glAttachShader()glMatrixMode()函数的解释,我很惊讶他们给了什么。看看它。

glAttachShader

在API级别8

void glAttachShader (int program, int shader) 

参数

  • programint
  • shaderint

glMatrixMode

在API级别4

空隙glMatrixMode(INT模式)

参数

  • modeint

哪里解释加入??我无法解释他们中的任何一个。 或者是否有任何网站或材料来了解每个功能的用途只需在开发者文档中列出?

请帮我指导我正确的材料学习Android的OpenGL?我不能玩代码(手段)除了示例项目之外不能采取单一步骤。

回答

0

哪里有解释?

在OpenGL规范中。 OpenGL不是Google/Android的发明,因此它们只会记录以何种方式访问​​由图形供应商联盟定义的内容。

的权威性文档可在https://www.opengl.org/documentation/

但是找到了解到底发生了什么你应该遵循一样的(官方)的教程节目指南(又名红皮书)https://www.amazon.com/gp/product/0321773039/khongrou-20

或一非官方教程,如优秀 StackOverflow用户@NicolBolas的工作,我在http://opengl.datenwolf.net/gltut/html/index.html进行了镜像。或者你去http://www.opengl-tutorial.org/

+1

OpenGL是相似的,但不一样的OpenGL ES,所以对于移动你可能想要的:https://www.khronos.org/registry/OpenGL/index_es.php为规格,和http ://www.opengles-book.com/es2/index.html或http://www.opengles-book.com/获取指南。 – solidpixel

相关问题