美文网首页程序员
OpenGL实现绘制寝室小记

OpenGL实现绘制寝室小记

作者: likewind1993 | 来源:发表于2017-09-02 16:51 被阅读0次

    背景

    今年读研,不巧被调剂到了虚拟现实实验室。绝大部分是与计算机图形学相关的东西,然而本科并没有学过,于是导师布置了一个作业。
    “小程啊,这几个月呢,你先不要浪费,试着用OpenGL模拟一个学校,哦不,学校呢可能太大了,那你就先模拟你们住的寝室,了解一下三维编程是怎么做的怎么实现的。”

    于是在忙活完了与此毫不相关的毕业设计后,就着手准备画个寝室出来,买了《计算机图形学(第四版)》后,翻了几章发现里面的讲的东西太过基础、过时,最新的VAO, VBO 等等概念都没有讲。于是在网上搜了好多教程,其中learnOpenGL的教程做的非常棒,借用了很多现成的库,可以很快的画出东西,加快了学习开发效率(网址:https://learnopengl-cn.github.io/

    教程翻得差不多后,可以开始着手画寝室了。由于画的是静态的画面,因此用到的知识点不多:

    • 摄像机的实现
    • 绘制长方体
    • 加载纹理

    搜了好久之后(网上绘制三维场景的例子真是太少了=。=。。),
    绘制三维场景的方案有两种:

    1. 利用基本的图元,构建相应的模型,然后贴上相应的纹理。
    2. 利用现成的建模软件(如3ds等)先建好模型,如床,桌子等,然后载入到OpenGL的程序中

    无论从显示效果、还是显示效率来看,第二种的方案要远优于第一种方案,然而毕竟程序员的生涯才刚刚开始,本科阶段欠的代码量是注定要还的。于是采用了第一种方案中最简单的方案,拿不同大小的长方体完成了整个寝室的绘制。

    实现效果

    结尾

    最后在deadline前写成了这幅样子,不过有人说,deadline并不是要求你做的有多完美,它只是给你一个把写的这么烂的东西交上去的勇气。这句话我是很赞同的。接下来的计划就可以静下心来回头看《计算机图形学》这本书了,基础还是很重要的。

    具体的代码实现放到了github上(落了四年的水平写的真是太烂了,不过知耻而后勇嘛~求板儿砖)
    https://github.com/likewind1993/DormitoryWithOpenGL

    参考到的资料

    相关文章

      网友评论

        本文标题:OpenGL实现绘制寝室小记

        本文链接:https://www.haomeiwen.com/subject/zxjrjxtx.html