我开始在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)
参数
program
int
shader
int
glMatrixMode
:
在API级别4
空隙glMatrixMode(INT模式)
参数
mode
int
哪里解释加入??我无法解释他们中的任何一个。 或者是否有任何网站或材料来了解每个功能的用途只需在开发者文档中列出?
请帮我指导我正确的材料学习Android的OpenGL?我不能玩代码(手段)除了示例项目之外不能采取单一步骤。
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