Mesa 3D概述

来源:互联网 发布:淘宝卖家数据采集器 编辑:程序博客网 时间:2024/05/02 14:16
OpenGL被广泛的应用着,但是却没有一个是开源的,十分不爽。SGI 公布了一个OpenGL的sample implementation(SI),据说可以作为Vendor实现OpenGL的模板。我下了下来,还没看过,以后再慢慢研究研究。不过有一点可以确定,就是SI没有实现硬件加速的一些功能而mesa却实现了。所以我下了Mesa 3d来先研究它的架构,一点一点从底层开始学习OpenGL。我现在看的是一个早期版本的Mesa(3.1),它也没有实现硬件加速等功能。3.1在sf上是最早的可以找到的版本。Mesa的源代码维护者非常人性化的提供了一个版本变更的信息,这样我可以逐步从开始简单的版本看起,等一个简单的版本弄清楚后再逐步向高版本看齐。
目前,mesa3.1已经在我的机器上顺利编译成achieve的库文件,下一步准备把mesa-glut编译一下,然后尝试写一两个opengl的程序跑跑,看看效果怎样:)

mesa3.1可以针对多个平台,里面好多的代码都涉及到跨平台的相关知识,当然代码也很繁琐:( 。初步考虑自己看完mesa3.1的代码后,动手做一个只针对linux平台的缩减版mesa,公布出来,方便喜欢研究计算机图形学的朋友学习。

目前,在linux上似乎流行的游戏不多。john carmark 公布了linux下doom的源代码,据说里面的引擎设计有很多的技巧值得学习,那些东东等我看完mesa3.1再去研究吧。

真心想找几个熟悉linux游戏开发的朋友一起做个在Linux上的3d游戏。

 

-------------------------------------------------------分界线-------------------------------------------------

貌似对opengl/mesa感兴趣的人挺多哈~以上东西是很早的时候写的,经过了多年的风吹雨打,mesa发展的相当不错,只是我已经不是当初那个对她很痴迷的人了。其实实现一个opengl的接口,最重要的是一些软件架构,稳定性,兼容性等方面的问题,真正涉及到图形学的东东也就是z buffer,矩阵变换以及一些fragment的操作,还有一些和底层显卡交互的东西,一些高级的算法(比如GI)和它关系不大。如果大家对底层感兴趣的话,推荐大家去搜搜 “The state of Nouveau”,这个是一些家伙hack出来的linux上Nvidia显卡的驱动(比较新的好像G80都有了)。


原创粉丝点击