这学期修了一门我校计算机最厉害的一门方向选修课,计算机图形学,五年前是亚洲第一,先退居亚洲第二,当时修这门课完全没想过是学什么的,后面学完一学期才发现是有点类似于做游戏开发,纯coding的计算机图形学课,和很多学校不一样我们学校是用的opengl来实现的(听说好像山中是Blender以及Unity)。我觉得这门课可能是我大学三年来学过最硬核的一门课,平时实验是大概做的是,绘制图形,键盘鼠标交互,阴影的绘制,模型的导入,以及模型的贴图和层次结构。期中大作业就是俄罗斯方块以及场景搭建(类似于一个小游戏我一开始想法是做一个熊熊砍树的,但后面由于迟迟没动手以及期末三门大作业和7门专业课期末考试就草草4天收尾)。

       个人感觉这门课确实得选一些比较不卷的班(这样好拿a+和a我们班太卷啦但我主要比较菜纯小白最后只拿了b+老师捞的好!)。

       期末大作业可以参考的思路是我几乎看完整个班的演示,有做海的波浪,情景介绍(故事性很强连贯性比如老大坠机这样的),玻璃镜(就是有个镜子这样),风车吹布(布无厚度,且风力是可以调节的,摆动受到地面的摩擦里和风力的影响,那个同学是看了论文做的是全班最高分),迷宫大逃亡,贪吃蛇3d版本,很多我的世界,电影或者mv经典场景复刻,自动杀猪,万剑齐发动作特效,坦克对战,身份证掉落(小丑牌),戒色健身题材,恐怖故事(只有一点光,且有电话铃声展示者说是导了库这个就不清楚了)等等(感觉班里同学脑洞很大也很幽默,编的故事性很强,也有在网上买模型的8元故事经历)。

       大作业我做完后和同学交流心得后发现,其实很多东西一开始没想到怎么做后面交流才清楚,如果做这个大作业没有什么思路的可以简单参考一下(只适合像我一样傻乎乎的菜鸟):

        1.可以绘制一个矩形体(用实验四绘制纹理那个),然后自己找一个喜欢的场景来对上面进行贴图,我看有直接贴了个十字路口图片,也有就纯色,就如果贴图的图自己特意设计过其实场景搭建可以省很多功夫,周围的场景可以用6个矩形拼凑成一个天空盒(b站里大家看到的那个山水场景都基本这样搭建的),我当时为了省功夫直接用了实验四的圆柱体来当周围的场景(所以很粗糙一开始没想好怎么做,就像做一点挤一点的浆糊一样的屎山代码)

        2.可以用Magicavoxel软件来一点点捏出obj模型(我听同学说的,一开始知道这个软件但我想着四天我把时间浪费在模型上有点不可取),我看有把科比最后变成飞机的,应该是捏的模型,然后用实验三那个按键换模型就可以了,然后做多一点场景的设想,主要是故事性,这样就可以做的很好了。

       3.可以多设计一下按键换图,我看一个复刻mv乒乓球那个就是挺不错的,设置按键换纹理做出击穿效果,以及有一些做了动作的连贯性动作的(我觉得应该就设置特定按键,对身体各个部位的移动做好参数设计即可)

       做这个计算机图形学大作业踩了很多坑,这门课由于实操性很强的一门课,所以很多时候多动手会好一点,大作业主要难在对各个模块的理解,由于opengl的封装性很好,所以我也是第一次接触目录,以及这么多cpp文件,其实和这学期学的计算机系统3还是可以很紧密的联系一块的。

         可能我水平还算比较低,看的维度还不够高,但我觉得做这次计算机图形学大作业让我的水平确实提高了不少,甚至后面还帮同学找bug(如机器人没颜色,阴影很奇怪等等)。我觉得大家可能接触上手个大半个月可能会做的更好(听很多展示的说做了两周平均每天8小时恐怖如斯太卷啦)。难的在于对整个代码框架,函数以及参数的理解,由于每个实验的代码的相同函数的有很大差别,固简单的拼凑只会是屎山代码,建议可以好好梳理一下整理出自己的风格(我是后面在meshpainter里绘制阴影的,并设置是否需要画阴影属性这样可以不用都画有的做了光源地球这种就不画阴影就显得很必要,且很多人场景是长方体固画阴影会有一个很大的黑色东东)。

如果need_shadow为true,则会绘制阴影。

最后就是放上我实验报告里总结做此次大作业的坑以及小心得。

       噢对了说到导库我可能电脑有问题我尝试了csdn所有方法都导不进去glut,glew(好像是吧我忘了这两个其中一个),所以大家一开始第一节课一定要在助教帮助下配置好环境,我当时好像是cmakelist吧找不到三个库,好像助教改了一下就好了(很多人都有这个问题),当然这些顾虑仅对没用过VS的,学长用了两年dev和clion。(今天就先更这篇后面有精力会更新更多内容)。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐