计算机图形学学习

1.FBO,RBO,VBO:

FBO:(frame buffer object) 帧缓冲对象
RBO(Render Buffer Object)渲染缓冲对象
VBO:(Vertex Buffer Object) 顶点缓冲对象

image.png

三维物体渲染到窗体有两种路径:

  • 1.三维物体->FBO->Texture->窗体
  • 2.三维物体->窗体


    image.png

2. Per-pixel-shade和per-vertex-shade:

shader的写法有所不同,per-pixel-shade的diffuse和ambient写在顶点着色器里,光照写在片段着色器中。


image.png

3.VBO和ply读取

  • 相关函数:

生成VAO,VBO,EBO


image.png
  • 概念介绍

VBO:顶点数据;

dragon.ply中
一个点数据示例:[0.51,0.11,0.95] 包含三维坐标vec3;
wuson.ply中
一个点数据示例:[0.51,0.11,0.95,0.2,0.1,0.7] 包含三维坐标vec3和norm向量vec3
有时顶点数据会包含坐标[vec3,n向量vec3, rgba vec4],此时一个点数据总长为10.

点数据保存在vertexs[vNum]中,数据类型为GLfloat*

EBO:面数据;

dragon.ply中
一个面数据示例:[3,0,52,3] , mesh[0]表示这个面有3个顶点,mesh[1:4]是三个顶点的索引,索引从零开始。
点数据保存在indices[fNum]中,数据类型为GLuint*

VAO:顶点数组,和VBO,EBO绑定。cpu利用VAO读取读取和理解数据。
  • 读取过程:

1.初始化
创建VAO,VBO,EBO。
绑定VAO。

image.png

VBO,EBO分别与VAO绑定。
讲顶点数据读入VBO,将面数据读入EBO。
image.png

VAO为CPU解释解释数据流的含义,不同含义在每一行数据中有不同的偏移量。


image.png

2在display中
绑定VAO,渲染三角形(因为有EBO)。若只有VAO和VBO则渲染顶点。

image.png

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容