参考Github上的代码,然后改进优化了一下。希望能对学计算机图像学这门课的同学起到一定帮助。
本项目的应用意义和价值
通过实现逼真的三维场景,本项目具有广泛的应用前景。在游戏开发、虚拟现实、建筑模拟等领域都有广泛的应用场景。逼真的三维场景不仅能够提升用户体验、辅助设计与展示,还有助于相关领域的研究和应用。此外,还能够为学术研究提供参考和支持,推动计算机图形学领域的发展。
研究方法(技术路线)
描述项目的开发环境和所采用的关键技术。
编译平台:Microsoft Visual Studio
编程语言:C++
调用的库:glad,glm,glfw,stbi库
关键技术:渲染着色,纹理,光照,建模,交互,OpenGL
场景设计
总体布局:
一个简易的小仓库,仓库里面有一张床,床上面有一个枕头,一张桌子,一把椅子,还有一个画框。画框里面展示着不同的画,仓库的天花板上有一顶吊扇,吊灯。外面是一片草地,有蓝天,太阳,仓库的外面有两盏吊灯。此外在房子四个角的不远处漂浮着一个木箱子,木箱子上面也有一个悬浮灯。仓库的后面是四排旋转的装饰灯。
实现功能:
- w,a,s,d键分别控制摄影机移动的方向。
- 左shift键配合w,a,s,d,可以增加移动速度。
- e,q键控制椅子前后移动。
- z,c 控制画框里的图片查看。Z:查看上一张图片,c:查看下一张图片。
- r:翻滚枕头
- y:开启/重置太阳的亮度
- 1,2,3,4,5键控制吊扇的转速,0:停止吊扇。
- Up键,down键分别控制升高悬浮灯的亮度,降低悬浮灯的亮度。
- 鼠标控制视线的方向,滚轮可以调整视线的范围。
- 特殊事件:太阳从东方升起,太阳的亮度开始逐渐增加;到达最高点后太阳的亮度开始逐渐减低,到达最西边后亮度为0
- 鼠标左边点击:打开或关闭手电筒。
- X:关闭/打开车库门
- 空格:起飞/重置
项目的功能演示:
w,a,s,d键分别控制摄影机移动的方向。(按w:前进为例)
左shift键配合w,a,s,d,可以增加移动速度。
e,q键控制椅子前后移动。
z,c 控制画框里的图片查看。Z:查看上一张图片,c:查看下一张图片。
r:翻滚枕头
- y:开启/重置太阳的亮度
1,2,3,4,5键控制吊扇的转速,0:停止吊扇。
Up键,down键分别控制升高悬浮灯的亮度,降低悬浮灯的亮度。
鼠标控制视线的方向,滚轮可以调整视线的范围。
特殊事件:太阳从东方升起,太阳的亮度开始逐渐增加;到达最高点后太阳的亮度开始逐渐减低,到达最西边后亮度为0
鼠标左边点击:打开或关闭手电筒。
X:关闭/打开车库门
空格:起飞,再按一次:重置