gayhub赛高
zhangn
August 23 , 2019 4 阅读全文
本篇对OpenGL学习过程中遇到的关键的矩阵运算做一个总结,方便以后查阅。
目测以后的着色器会越来越复杂,还像之前拼接字符串的方式去写可读性会非常差,又不想像原教程那样封装在单独的文件里(这样在网上看代码很麻烦),所以在以后的代码中,着色器采用c++11的格式化字符串的方法去写,c++11以下的编译器可能会编译不过,关于c++11格式化的问题可以看我之前的文章C++11的一个格式化字符串的黑科技
August 22 , 2019 4 阅读全文
之前我们计算的坐标都是世界坐标,但法线向量却是局部空间的,应该把法线向量也转换到世界空间才对。但把法线向量转换到世界空间,不能简单的乘以模型矩阵,模型矩阵中可能会有位移、缩放、旋转等变换。
光照原理请看原教程,写的很清楚,我们这里只分析一下着色器代码
将光源向量和物体颜色向量做分量相乘,得到的就光源照射在物体上所反射的颜色向量
August 21 , 2019 4 阅读全文
OpenGL本身没有摄像机(Camera)的概念,但我们可以通过把场景中的所有物体往相反方向移动的方式来模拟出摄像机,产生一种我们在移动的感觉,而不是场景在移动。
现在我们想在屏幕上显示10个立方体。每个立方体看起来都是一样的,区别在于它们在世界的位置及旋转角度不同。立方体的图形布局已经定义好了,所以当渲染更多物体的时候我们不需要改变我们的缓冲数组和属性数组,我们唯一需要做的只是改变每个对象的模型矩阵来将立方体变换到世界坐标系中。
August 20 , 2019 4 阅读全文