试试开博客,写些实验室的码代码经历

实验室主要是做三维显示的,多少接触些三维图像的生成和显示方面的东西。对于这方面,一开始当然是完全不会。连C语言基础都很薄弱,C++压根就不懂。即便如此,还是需要接触一些OpenGL等领域的东西。

OpenGL当然也有圣经,红宝书这种资料自然是必不可少的,原理什么的都讲得很详尽。虽然从现在看来一些内容似乎过时了,但是参考价值还是相当的大。

一开始从网上找教程就找到了NeHe的OpenGL教程,一看,非常详尽,似乎可以用来学一学。于是下了一个框架,一看代码,头都大了。幸亏我不需要真正去了解一个窗口是怎么创建起来的,只需要关注OpenGL本身的一些东西。

实验室做的东西要求涉及顶点变换的一些操作,大概了解到了OpenGL是从顶点坐标向量出发,先经过了ModelView矩阵,主要管相机的位置等,然后经过Projection矩阵,管透视投影等,最后得到要显示的实际画面。

当时就有个想法,想要自己推出类似于透视投影矩阵一样的自定义矩阵,用它取代透视投影矩阵,以达到自己想要的目的。如今看来,整体思路是没什么问题的,但是坑爹的地方在于最后推出来的坐标变换公式是高阶方程,作为数学渣的我没办法把它用矩阵表示。思前想后,决定在当中再建立一个模型作为中介,直接对这个模型进行坐标变换。就这样,还真达到了我的要求。

当然,模型的读取还费了我很大的功夫,最后自己写了一个读取obj格式的函数,只可惜漏洞实在太多,只有条件苛刻的模型才能读入。但无论如何,我这第一个程序还真写好了。

说起来实验室的系统有着比较特殊的要求。计算机需要接入尽可能多且分辨率尽可能高的显示设备,比如用满双链DVI的4K分辨率;然后尽可能多插显卡。说到底,就是尽可能地利用单台计算机可以实现的分辨率输出。合计了一下,最后的分辨率总和达到了12000*3600。这么大的分辨率,需要将同一个场景分成90个不同方向的视口,每个视口都按统一规则进行坐标变换。

后来实验室跟计算机系的同学合作,让他们帮忙写了个程序,瞬间就把模型导入、光照、多视口实时生成全部搞定了。只是后来自己做实验需要对程序进行改动,总不能劳烦计算机系的同学帮写,只好自己开始啃代码。啃了半个月,终于把帮写的程序看懂了,开始着手改。在改的过程中,着实学到不少东西。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值