- 博客(4)
- 收藏
- 关注
原创 山东大学22届项目实训《基于OpenGL的三维模型渲染引擎》学习记录3——框架搭建思路——渲染器Renderer
首先,我们要定义一个渲染列表,里面存放着我们需要在这一帧内要渲染的所有Mesh,然后对于每一个Mesh,我们需要它所在的世界坐标,由Mesh继承的Object提供的模型矩阵而获取;Material决定它如何被渲染出来(像木头,还是钢铁,还是玻璃),可以用Material派生出很多不同类型的Material,比如写实的Material或是卡通的Material,选择不同的Material就可以决定该Mesh的渲染风格。我们知道,Phong模型需要光照,场景中也得有光源,不然到处都是黑漆漆的一片。
2025-03-22 22:19:07
770
原创 MVP矩阵之V矩阵详解
M矩阵是将模型由模型坐标(也就是以物体自己为原点的坐标系,比如创建一个球体,该球体圆心就是它自己模型坐标系的原点)转换到世界坐标系的矩阵,V矩阵是将模型由世界坐标系转换到摄像机坐标系下的矩阵,P矩阵是透视投影矩阵,分为两种,正交矩阵和透视矩阵。而恰好,Pc就是子空间中的一个点,所以上面的表达式就是Mc->p!我们有一种思路,那就是既然已经知道父坐标空间下的子坐标空间的原点坐标和子坐标空间的三个单位轴,而子坐标空间下的点坐标假设为Pc(a,b,c),那么这个点在父空间坐标系下其实可以表示为从Oc出发,沿。
2025-03-19 21:17:26
255
原创 山东大学22届项目实训《基于OpenGL的三维模型渲染引擎》学习记录2——框架搭建思路
这使其具有很强的灵活性的同时,它还的确意味着我们必须手动指定输入数据的哪一个部分对应顶点着色器的哪一个顶点属性。VBO,VAO马上会说是什么东西)插入不同的卡片(1号VBO里存放着一个三角形的顶点数据,2号VBO里存着另一个三角形的顶点数据),OpenGL就会根据当前身上的卡片(缓冲)状况(上下文)而执行不同的渲染指令。(很好理解,第一行的三个数是第一个顶点的坐标,相当于在你电脑屏幕以左下角为原点,向左移动整个屏幕长度的1/4,再向上移动整个屏幕高度的1/4,这便是第一个顶点所在的位置。
2025-03-15 13:00:49
987
原创 山东大学22届项目实训《基于OpenGL的三维模型渲染引擎》学习记录1——框架搭建思路
由于OpenGL驱动版本众多,它大多数函数的位置都无法在编译时确定下来,需要在运行时查询。第一个参数是响应的(要设置回调的)窗口,第二个参数是用户按下或释放键盘按键时要调用的函数,这个函数的类型是GLFWkeyfun ,表示键盘回调函数的指针。故现在又转到mKeyBoardCallback函数上,并且此时该函数的参数里保存着你当时交互的信息(比如你按下的W键) ,会调用mKeyBoardCallback函数。故此时回调会调用OnKey函数,并且用户的交互信息会传入我们在main函数中写的Onkey函数。
2025-03-13 17:24:31
352
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人