openGL
他山随悟
这个作者很懒,什么都没留下…
展开
-
openGL之glsl入门3--正弦函数叠加为方波
使用GLSL画点,画线,画面,与原来使用glBegin(), glEnd()的方式有类似的地方,原来方式api比较多,GLSL采用的数组一次传送,程序的本质还是坐标点的设计与确认,只要知道图怎么画,哪种方式差异不大,本章主要介绍:1. 正弦函数的基本画法2. 键盘的控制3. uniform变量的用法4. 正弦波叠加为方波的GLSL实现 GLSL画这些基本的类型是,使原创 2017-11-07 19:02:36 · 4108 阅读 · 0 评论 -
openGL之glsl入门1--基本概念
从零开始学习openGL与GLSL(没有计算机图像学基础),开始确实挺费劲,网上的资料虽然多,但不系统,例子也不全,openGL还好(这里指的是v2.0之前的版本,使用glBegin(), glEnd()方式绘制),完整的例子比较多,而GLSL的例子相对少不少,中间走了不少弯路。下面说一下个人的一些学习经历和看法。1. 学习路线 GLSL的学习还是比较推荐以红宝书为主线进行学习,其他原创 2017-11-01 18:52:21 · 3355 阅读 · 0 评论 -
openGL之glsl入门4--片元着色器显示bmp图片
前面几章的内容都只用到了顶点着色器,最终的图像是底色+黑色,不是很美观,使用片元着色器给程序加颜色,实际上是非常简单的,前面几章为了不引入太多的新内容,避免增加程序复杂性,没有增加片元着色器的使用。本章介绍片元着色器的使用方法,包括以下内容:1. 片元着色器与顶点关系2. 关闭颜色插值方式3. 使用片元着色器显示bmp图片1. 片元着色器与顶点关系 片元着色器为模型上色,原创 2017-11-10 19:13:30 · 1385 阅读 · 0 评论 -
openGL之glsl入门2--helloworld
第一个程序还是简单一点的好,红宝书第一个例子,有两个地方比较难理解:1. 用到了vgl.h与LoadShader.h这两个头文件和相关函数,开始读这本书的时候,根本就不知道这两个头文件在哪里,你可以在配套代码目录oglpg-8th-edition的include和lib目录下找到相关的头文件和实现。2. 使用了vbo和vao,虽说是glsl编程比较基础的东西,但对初学者不好理解。原创 2017-11-02 19:11:18 · 2225 阅读 · 1 评论 -
openGL之glsl入门5--缓冲对象vbo、vao及ebo
大家可以看到,前面几个章节的例子都是平面的,顶点着色器顶点数据只用了x,y分量,z分量完全没用,之所以没用立体的例子,绘制立体图形,需配合矩阵旋转来用,否则画出来了也看不到效果,立体图形相对复杂一些,最好能配合缓冲对象来使用,效率更高,代码也会简单一些。这一章通过2个例子和一段用c语言解释vao与vbo的方式向大家讲解缓冲对象的概念。1. 红宝书第一个例子 基本概念:1. vao原创 2017-11-13 19:08:12 · 1946 阅读 · 1 评论 -
openGL之glsl入门7上--添加鱼眼及全景球面纹理
理解纹理可以先看一下第四章的例子,第四章例子使用片元着色器直接显示图片(1080p图片),做法是先确定矩形的顶点坐标,矩形包含1920*1080个顶点,每个顶点与一个像素对应,这种方法虽然能显示出图片,但缺点非常明显,效率低、绘制麻烦、缩放效果差等。 理论上来说所有的模型都可以使用顶点+顶点颜色的方式绘制出来,这样的话,制作模型就太麻烦,纹理正是为了解决该问题而出现的,使用纹理,较少的工原创 2017-12-06 19:47:34 · 7136 阅读 · 13 评论 -
openGL之glsl入门7下--添加鱼眼及全景球面纹理
接着上一篇讲,前面已经展示了纹理把图片贴到立方体上,立方体表面是平面的,纹理坐标不需要设计,下面的两个例子都是基于球面贴图的,把鱼眼和全景图片贴到球面上,即实现曲面贴图。实际上,曲面贴图和平面贴图使用的纹理方面的知识没变化,主要难点在于纹理坐标设计,纹理坐标设计涉及到变换模型设计,需要一定的数学基础,下面例子中的两种贴图方法是比较简单的,网上的资料也非常多,学习本章例子的话,最好能推导例子中用的公原创 2018-01-08 19:09:15 · 7509 阅读 · 19 评论