摘要:
在设计物体表面时,很多时候我们不满足于一种颜色或者几种简单颜色,我们希望是丰富多彩的图案,或者说我们提供给它的图片。这样一个顶点一个顶点的去指定那是行不通了,我们不可能把所有顶点用数字去表达出来,必须用一种新的方式去设置颜色。这就是纹理,像用一张画去贴在物体的表面一样,这样就不用指定太多的点,只需要 阅读全文
摘要:
之前我们将着色器的代码用glsl写好之后,保存为字符串指针,然后用一个函数去编译它,这是一种手段,对于简单的着色器代码可以这样。但当我们针对复杂的着色器,我们发现编写、编译、管理着色器是一件麻烦事。我们用一个类将着色器的所有编译,链接,管理都放在一个文件里。再将着色器源码单独设置成.glsl文件用来 阅读全文
摘要:
在opengl中所有的数据都要放在显存中,我们通过一定的手段去管理它,既要提供地方存放它,还要提供方法去正确地提取它们,去使用它们,opengl通过VAO,VBO,EBO这些手段来解决这些问题。 (一)VBO(Vertex Buffer Objects,顶点缓冲对象)介绍: 首先我们要明白VBO是一 阅读全文
摘要:
着色器在OpenGL中发挥着重要作用,它就像一个画笔,将输入的数据流,转为数学坐标,再将三维坐标变成二维坐标(针对我们现在用的二维显示器,全息显示器肯是三维的),再把二维坐标实际的像素点位置(这里面肯定存在的粗略的误差,比如(3.423,234.232)肯定在实际像素中不存在,要转换成邻近的),然后 阅读全文
摘要:
首先,给出这次学习的代码原网址。 >原作者的源代码 (黑体是源码,注释是写的。) 引用的库(预编译): 自定义的函数声明及全局变量: 着色器源代码: 关于两个自定义函数的实现: int main()函数内部各个部分分析: (1)初始化glfw: (2)创建窗口对象(窗口对象存放了所有和窗口相关的数据 阅读全文