美文网首页
OpenGLES7-天空盒子

OpenGLES7-天空盒子

作者: AlanGe | 来源:发表于2020-06-29 12:59 被阅读0次

一. MVP矩阵

●本质上是一个变换矩阵。

●将一个世界坐标系的点转换裁剪空间的点

●3D物体从建模到最终显示到屏幕上过程需要经历以下的阶段

。对象空间(Object Space)
。世界空间(World Space)
。照相机空间(Camera Space)
。裁剪空间(Clipping Space)
。视口空间(viewPort)

从对象空间->世界空间 Model to World
从世界空间->照相机空间 world to View
从照相机空间->裁剪空间 view to Projection

//GLSL顶点着色器
gl_Position = p * mvp;

二. GLKMatrix4MakeLookAt方法

GLKMatrix4MakeLookAt(float eyeX, float eyeY, float eyeZ, float centerX, float centerY, float centerZ, float upX,float upY,floatupZ) ;

参数1: eyeX,眼睛位置的X坐标
参数2: eyeY,眼睛位置的Y坐标
参数3: eyeZ,眼睛位置的Z坐标

参数4: centerX,正在观察点的X坐标
参数5: centerY,正在观察点的Y坐标
参数6: centerZ,正在观察点的Z坐标

参数7: upX,摄像机上向量的x坐标
参数8: upY,摄像机上向量的Y坐标
参数9: upZ,摄像机上向量的Z坐标

等价于OpenGL中的一个函数g luLookAt()

void gluLookAt(float eyeX, float eyeY, float eyeZ,float centerX,float centerY, float centerZ, float upX, float upY, float upZ)

你可以把相机/摄像机/观察者想像成帅气的脑袋!
第一组参数:eyeX/eyeY/eyeZ脑袋的位置
第二组参数: centerX/ centerY/centerZ眼睛所看物体的位置
第三组参数:upX/upY/upZ头顶的朝向的方向(因为你有可能偏着头看物体)

●目的:返回一个4 * 4的矩阵变换的世界坐标系坐标
●默认情况下,(0,1,0)

三.顶点数据对象切换VAO/VBO

VBO:顶点缓存区对象(ouffer Object)
VAO:(顶点数据对象) Vertex Array Object不能单独使用,都是和VBO结合使用.

●那我们什么时候使用VBO ?

glBindBuffer(GL_ARRAY_BUFFER,VBO);
glBufferData()
glVerterAttribPointer()

VAO (Vertex Array Object )是OpenGL用来处理顶点数据的一个缓冲区对象,它不能单独使用,都是结合VBO来一起使用的。 VAO是OpenGL CoreProfle引入的一个特性。事实上在CoreProfle中做顶点数据传入时,必须使用VAO方式。

当我们使用VBO传入顶点数据时,一般的处理如下:

// "绑定VBO,设置VB0中的数据
glBindBuffer(GL_ARRAY_BUFFER,VBO);
glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);

// 1.设置顶点属性
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3*sizeof(GLfloat), (GLvoid*)0);
glEnableVertexAttribArray(0);

// 2.使用Shader程序
glUseProgram(shaderProgram);

// 3.绘制
someOpenGLFunctionThatDrawsourTriangle();

VAO包含的内容
VAO对象中存储的内容包括:

  1. VAO开启或者关闭的状态(glEnableVertexAttribArray和glDisableVertexAttribArray)
    2.使用glVertexAttribPointer对顶点属性进行的设置
    3.存储顶点数据的VBO对象

另外需要注意的是,当我们使用EBO的时候,VAO中也会记录索引信息,因此完整的VAO所包含的内容图如下所示(添加了EBO):


Demo: 9-天空盒子图片处理
Demo: 10-天空盒子

相关文章

网友评论

      本文标题:OpenGLES7-天空盒子

      本文链接:https://www.haomeiwen.com/subject/pisofktx.html