2018-Nov

难得的开始写 blog。

0x01

马上期中考试了,算上小测大概有四门课有事情要做:

  • 数逻小测
  • 职规展示
  • 大雾期中考
  • DS 小测

这个学期已经过去一半了但是感觉自己还什么都没有做,大概是每天都在沉迷于睡觉。大一一年回想起来也没什么值得提起的事情,代码没有写多少,绩点也低的可怜,大一一年对于大学的态度从错误逐渐纠正了过来,但重要的一年已经过去了,也没法挽回什么东西。

0x02

之所以能想起来写 blog,是因为最近在规划图形学期末大程的事情,翻看了前辈们的 blog 和代码,所以就也想把这个过程记录下来,也算是给自己写代码的一个督促。

0x03

大二这个学期硬核的课都堆在了周一,数逻、CG 和软保,当然也发现了一两个周一全天能见到的同学,虽然不太熟。数逻组了一个靠谱的队友,同时也是 CG 课友但不是队友, 每次实验都能保持当天做完,这个速度很健康。CG 应该是这学期投入时间最多的课程,软保就跟着小白的进度走就好。本来还从同学那里接了一个外包,但是因为数据迟迟不到和自己太拖延怕最后和期末最忙得时候撞在一起,就推掉了。

0x04

图形学冬学期第一周要做 proposal,组内到现在线下碰了两次面,大概明确了要做个什么东西,但是细节上还没有讨论过。听说 proposal 大家都会说的很厉害,而最后做出来的东西都很惨淡,希望我们组能做出自己想要的结果吧。

说来可惜,第一次碰 OpenGL 是上学期 C 大程课上做第一个 Project,对着 LearnOpenGL 学完了第一章就简单地糊了个迷宫,从此再没碰过。本来计划下个学期选图形学,但是上学期末听学长说这学期可以很方便的补选上 CG,就去补选了。原本打算暑假把 LearnOpenGL 刷完,结果因为小学期时间不太巧,加上去了一趟 DEFCON 见识了一下 Vegas 的华丽,就只刷完了模型导入,开学以后倒是很快的刷完了 LearnOpenGL,但是刷完以后有一个月完全没有碰 OpenGL。 感觉还是时间规划上出现了严重的问题,拖验症一定要改了。

0x05

关于 CG 最终的选题,问了一些学长,最终决定听学长的建议做一个 low-poly 的 Game 出来,后来和 DS 课上两个树莓的同学闲聊,意外获得了很多 low-poly 的参考,最终决定做 PolyBall 这个游戏,游戏本身很无聊,但是这个游戏的场景很丰富,也就可以很方便的往上面堆砌特效。

选择 PolyBall 的另一个重要原因是为了节省找 Model 的时间,先辈上学期做大程的时候,在 Model 上花费了很多时间,所以选游戏前我找来很多从游戏里扒素材的教程。从 Steam 上买了 PolyBall 给信仰充值以后,发现这个游戏是 Unity 做的,网上关于 Unity 素材提取的逆向工具也不少,最后用 AssetStudio 成功的导出了 Model。工具作者看上去是个逆向大佬。

导出 Model 花了挺长时间的,因为 OpenGL 我只接触过 $obj$ + $mtl$ 的 Model,结果 Unity 里的模型一般都是 $fbx$ + $mat$ 的格式,坑了我三天才把 Model 正确的搞出来。期间还去 StackOverFlow 和 AssetStudio 作者的评论区都发了言。去 StackOverFlow 提问打 Tag 的时候,我打了 $OpenGL$, $Reverse Engineering$, $Unity$, $Graphics$ 四个标签,瞬间觉得十分交叉。

0x06

下午看了几个学长的往年的 CG 框架,决定自己也快速糊一个轻量级的出来,希望不要被拖延症打败。

顺便还列了一下可以写的 Feature 列表,半个月前自己写了一下 Gerstner Wave 和粒子实现的火焰,感觉单独写个 Demo 的话倒是不难,集中精力写就完事了。

希望两个月以后的展示能展示出自己想要的结果。