openGl学习记录001

1、渲染:在电脑绘图中是指用软件从模型生成图像的过程,模型是用严格定义的语言或者数据结构对三维物体的描述,它包括几何、视点、纹理以及照明信息。将三维场景中的模型,按照设定好的环境、灯光、材质以及渲染参数。
2、openGL上下文(Context):指openGl 的状态
3、openGGL自身是一个巨大的状态机(state Machine):一系列的变量描述openGl此刻应当如何运行。
假设当我们想告诉openGL去画线段而不是三角形的时候,我们通过改变一些上下文变量来改变openGL 状态,从而告诉openGl如何绘图,一旦我们改变了openGL的状态为绘制线段。下一个绘制命令就会画出线段而不是三角形。
当使用openGL的时候,我们会遇到一些状态设置函数(state-changing Function),这类函数将会改变上下文。以及状态使用函数(state-using Function),这类函数会根据当前openGl 的状态执行一些操作。只要记住openGL本质上是个大状态机,就能理解他的大部分特性。
4、在openGL中一个对象是指一些选项的集合。它代表OpenGL状态的一个子集,比如,我们可以用一个对象来代表绘制窗口的设置。之后我们就可以设置它的大小、支持的颜色位数等等。可以把对象看做一个C风格的结构体。

5、名词解释
顶点数组对象:Vertex Array Object,VAO
顶点缓冲对象:Vertex Buffer Object,VBO
索引缓冲对象:Element Buffer Object,EBO或Index Buffer Object,IBO
6、OpenGL的图形渲染管线(Graphics Pipeline 大多翻译为管线,实际指的是一堆原始图形数据途径一个输送管道,期间经过各种变化处理最总出现在屏幕的过程):
图形渲染管线可划分为两个主要部分:第一部分:把你的3D坐标转换为2D坐标,第二部分是把2D坐标转变为时间的有颜色的像素。
2D坐标和像素也是不同的。 2D坐标精确表示一个点在2D空间中的位置,而2D像素是这个点的近似值,2D像素受到你的屏幕/窗口分辨率的限制。
7、深度:通常深度可以理解为Z坐标,它代表一个像素在空间中和你的距离。如果离你远就可能被别的像素遮挡。你就看不到它了,
8、顶点缓冲对象(vertex Buffer Objects ,VBO)在我们在OpenGL教程中第一个出现的OpenGL对象。就像openGL中的其它对象一样,这个 缓冲有一个独一无二的ID。所以我们可以使用glGenBuffers函数和一个缓冲ID生成一个VBO对象。例如

9 、应用流程:
创建对象,绑定类型,设置数据。
unsigned int VBO;
glGenBuffers(1,$VBO);
glBindBuffer(GL_ARRAY_BUFFER,VBO);
glBufferData(GL_ARRAY_BUFFER,sizeof(vertices), vertices, GL_STATIC_DRAW);
10、glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
glBufferData是一个专门用来把用户定义的数据复制到当前绑定缓冲的函数,它的第一个参数是目标缓冲区的类型:顶点缓冲对象当前绑定到GL_ARRAY_BUFFER目标上。第一个参数指定传输的数据大小(以字节为单位);用一个简单sizeof计算出顶点数据的大小就行,第三个参数是我们希望发送的实际数据。
第四个参数指定了我们希望显卡如果管理给定的数据,它有三种形式:
GL_STATIC_DRAW :数据不会或几乎不会改变
GL_DYNAMIC_DRAW:数据会被改变很多
GL_STREAM_DRAW:数据每次绘制时都会改变
三角形的位置数据不会改变,每次渲染调用时都保持原样,所以它的使用类型最好是GL_STATIC_DRAW,如果,比如说一个缓冲中的数据将频繁被改变,那么使用的类型就是GL_DYNAMIC_DRAW或GL_STREAM_DRAW.这样就能确保显卡把数据放在能够高速写入的内存部分。现在我们已经把顶点数据存储在显卡的内存中,用VBO这个顶点缓冲对象管理。
11、向量(Vector)
在图形编程中我们经常会使用向量这个数学概念,因为它简明第表达了任意空间中的位置和方向,并且它有非常有用的数学属性,在GLSL中一个向量有最多4个分量。每个分量都代表空间中的一个坐标,它们可以通过vec.x、vec.y、vec.z和vec.w来获取,注意vec.w分量不是用作表达空间中的位置的,而是用在所谓透视除法(Perspective Division)上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值