openGl 基础概念(学习记录)

1、图形渲染管线

     图像渲染管线指的是一堆原始图形数据途径一个输送管道,期间经过各种变化处理最终出现在屏幕的过程。下图是图形渲染管线的每个阶段抽象展示。蓝色部分我们可以注入自定义的着色器

 

 

 2、顶点输入

顶点数组对象:Vertex Array Object   VAO

顶点缓冲对象:Vertex Buffer Object   VBO

GPU内存中存储大量顶点的对象,使用这些对象可以一次发送大批数据到显卡上供点着色器访问。

float vertices[]={

-0.5f,-0.5f,0.0f,

0.5f,-0.5f,0.0f

0,0f,0.5f,0.0f

}

//获取一个顶点缓冲对象

unsigned int VBO ,VAO;

glGenBuffers(1,&VBO);

glGenVertexArrys(1,&VAO);

//绑定缓冲对象

glBindVertexArray(VAO);

glBindBuffer(GL_ARRAY_BUFFER,VBO);

//将顶点数据复制到缓冲内存中

glBufferData(GL_ARRAY_BUFFER,sizeof(vertices),vertices,GL_STATIC_DRAW);

//设置着色器获取顶点数据的指针
glVertexAttribPointer(0,3,GL_FLOAT,GL_FALSE,3*sizeof(float),(void*)0);

openGl的坐标X、Y、Z轴的坐标范围(-1.0,1.0)

 

 通常深度可以理解为z坐标,它代码一个像素在空间中和你的距离,如果离你远肯能被别的像素遮挡,你就看不到它。

顶点缓冲对象(vertex buffer objects ,OBJ)管理这个内存,它会在GPU内存中存储大量顶点。

posted @ 2020-05-22 09:55  怪味胡豆  阅读(121)  评论(0编辑  收藏  举报