- 博客(10)
- 收藏
- 关注
原创 山东大学22届项目实训《基于OpenGL的三维模型渲染引擎》学习记录5------使用Assimp库将模型导入项目
我是通过Learn OpenGL和学习和导入Assimp库的。
2025-05-23 16:48:50
796
原创 山东大学22届项目实训《基于OpenGL的三维模型渲染引擎》项目进展4
在render()函数中正确地将灯光需要的属性传入片元shader之后,就可以使用这些属性进行计算了。spotLight.h(其属性决定了光照的光圈范围大小以及方向)directionLight.h(其属性决定光照方向)pointLight.h (其属性决定光照衰减范围)方向光: (无衰减)
2025-04-27 15:54:18
125
原创 山东大学22届项目实训《基于OpenGL的三维模型渲染引擎》项目进展3
在main函数中,先声明渲染器对象,要渲染的面片数组,相机对象,在prepare()函数中将要用到的对象一一定义,然后在main函数中调用renderer()函数并把需要的对象传入即可。
2025-04-25 15:41:25
400
原创 山东大学22届项目实训《基于OpenGL的三维模型渲染引擎》项目进展2
【代码】山东大学22届项目实训《基于OpenGL的三维模型渲染引擎》项目进展2。
2025-04-23 09:30:55
164
原创 山东大学22届项目实训《基于OpenGL的三维模型渲染引擎》项目进展1
通过GLFW库来创建窗口,并将创建窗口以及用户与窗口的交互这些功能封装;(与Application用户交互联动实现相机移动)封装使用VAO,VBO来生成正方体,球体;shader功能的封装;texture类的封装。
2025-04-21 21:19:35
245
原创 山东大学22届项目实训《基于OpenGL的三维模型渲染引擎》学习记录4——IMGUI开源库的学习使用,父子关系,Scene
我通过这篇博客学习和使用imgui。app->getWindow()是获取当前的窗口。但是只有初始化,窗口中也不会显示imgui组件,我们必须每一帧去绘制它才能显示。因此我们需要一个renderIMGUI()函数来渲染UI层。这三行代码是,作用是为这一帧的 UI 更新做好准备。ImGui 是“即时模式 GUI”,意味着它每帧都会重新绘制所有 UI 元素。为了正确响应鼠标/键盘输入、窗口大小变化、渲染状态等,必须先从平台和渲染器获取这些数据,然后才能开始绘制。");打开一个窗口,窗口标题是。
2025-04-21 20:28:58
637
原创 山东大学22届项目实训《基于OpenGL的三维模型渲染引擎》学习记录3——框架搭建思路——渲染器Renderer
首先,我们要定义一个渲染列表,里面存放着我们需要在这一帧内要渲染的所有Mesh,然后对于每一个Mesh,我们需要它所在的世界坐标,由Mesh继承的Object提供的模型矩阵而获取;Material决定它如何被渲染出来(像木头,还是钢铁,还是玻璃),可以用Material派生出很多不同类型的Material,比如写实的Material或是卡通的Material,选择不同的Material就可以决定该Mesh的渲染风格。我们知道,Phong模型需要光照,场景中也得有光源,不然到处都是黑漆漆的一片。
2025-03-22 22:19:07
822
原创 MVP矩阵之V矩阵详解
M矩阵是将模型由模型坐标(也就是以物体自己为原点的坐标系,比如创建一个球体,该球体圆心就是它自己模型坐标系的原点)转换到世界坐标系的矩阵,V矩阵是将模型由世界坐标系转换到摄像机坐标系下的矩阵,P矩阵是透视投影矩阵,分为两种,正交矩阵和透视矩阵。而恰好,Pc就是子空间中的一个点,所以上面的表达式就是Mc->p!我们有一种思路,那就是既然已经知道父坐标空间下的子坐标空间的原点坐标和子坐标空间的三个单位轴,而子坐标空间下的点坐标假设为Pc(a,b,c),那么这个点在父空间坐标系下其实可以表示为从Oc出发,沿。
2025-03-19 21:17:26
274
原创 山东大学22届项目实训《基于OpenGL的三维模型渲染引擎》学习记录2——框架搭建思路
这使其具有很强的灵活性的同时,它还的确意味着我们必须手动指定输入数据的哪一个部分对应顶点着色器的哪一个顶点属性。VBO,VAO马上会说是什么东西)插入不同的卡片(1号VBO里存放着一个三角形的顶点数据,2号VBO里存着另一个三角形的顶点数据),OpenGL就会根据当前身上的卡片(缓冲)状况(上下文)而执行不同的渲染指令。(很好理解,第一行的三个数是第一个顶点的坐标,相当于在你电脑屏幕以左下角为原点,向左移动整个屏幕长度的1/4,再向上移动整个屏幕高度的1/4,这便是第一个顶点所在的位置。
2025-03-15 13:00:49
1009
原创 山东大学22届项目实训《基于OpenGL的三维模型渲染引擎》学习记录1——框架搭建思路
由于OpenGL驱动版本众多,它大多数函数的位置都无法在编译时确定下来,需要在运行时查询。第一个参数是响应的(要设置回调的)窗口,第二个参数是用户按下或释放键盘按键时要调用的函数,这个函数的类型是GLFWkeyfun ,表示键盘回调函数的指针。故现在又转到mKeyBoardCallback函数上,并且此时该函数的参数里保存着你当时交互的信息(比如你按下的W键) ,会调用mKeyBoardCallback函数。故此时回调会调用OnKey函数,并且用户的交互信息会传入我们在main函数中写的Onkey函数。
2025-03-13 17:24:31
382
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人