效果呈现
操作方法说明
1、 移动鼠标可以控制相机的视角
2、 滚动鼠标滚轮从而拉近/远视角
3、 按键盘的空格键重置相机位置
4、 按键盘的w、s,控制人物向前后移动
5、 按键盘的a、d控制人物向左、右转
6、 按键盘的ESC键退出游戏
效果展示
具体内容
场景设计和显示
通过层级建模的方式建立多个虚拟物体,由多个虚拟物体组成一个虚拟场景,
添加纹理
为场景中主要物体添加纹理贴图 。
添加光照、材质、阴影效果
实现光照效果、材质、阴影等。
用户交互实现视角切换完成对场景的任意角度浏览
完成相机变换。
通过交互控制物体
实现物体的变换,通过键盘和鼠标实现场景中物体的控制(移动,旋转,缩放等等)。
实现步骤
1. 读取并加载模型
首先obj文件中分别含有顶点信息、纹理信息、颜色信息、法线信息,我们需要将所有的信息进行读取,并且进行保存。
顶点信息是以v开头的字符串、纹理信息是以vt开头的字符串、法线信息是以vn开头的字符串,因此我们只需要识别对应的字符,即可保存相关的信息。
因为obj文件中并没有颜色信息,因此我们可以使用法线信息来代替颜色信息(tips:需要将法线信息进行取正操作)
具体的实现如下:
将obj文件中的信息保存完成之后,我们需要进行存储操作,即将对应的信息进行重组,从而获得我们需要的信息,具体过程如下:
我们读取一个汽车模型来进行测试,结果如下图:
</