Categories
Tech

OpenGL之纠结

今天开始配OpenGL的编译环境。

目前,根据我的理解,OpenGL并没有提供统一的SDK,所以有GLUT, freeglut之类的东西并存,安装之后,它们就能提供OpenGL编译所需要的一系列接口。

首先试了Mac OS X。其实没多想就放弃了。这姑娘长得那么漂亮,就没个编程的氛围……

然后就开Parallels拿Ubuntu 8.04出来。很轻松的apt-get install一下,就装上了libglut和freeglut等4个包。网上抄了一段测试代码,写好makefile,编译,通过,跳出来一个渲染后的窗口。但是console里很显眼的报错:freeglut: unable to create direct context rendering for window ‘xx’。google了一下,问题在于显卡的硬件加速没有发挥作用。从跳出来的窗口上也可以感觉到确实有些不顺畅。于是,找了nvidia的驱动来装。估量着Pro的显卡还是比较新的,8600M GT,所以装了nvidia-glx-new(-dev)。而且这个new的东西也确实是为8.04的新内核而生的。

但是,装完之后又出现新问题,连运行都不能了。编译、链接通过,运行直接报错:freeglut: OpenGL GLX extension not supported by display ‘:0.0’。再google,说是freeglut,libglut的库和nvidia驱动自带的库不能共存。!×·&……#¥×(!……#

之后看到有一篇文章,面对这种情况时,某人用mesa编译了库来用软件加速,直接无视nvidia的东西。于是照猫画虎,我也弄了mesa来编译。不见起色……怀疑是nvidia还在的缘故,于是又删了驱动,重装freeglut & libglut,重启,又弄出来新的问题,找不到-lGL。手动跑了一次ldconfig,还是死样。又把驱动装回来,编译过了,运行又是unable to create……回到原点。这时候真是严重的心烦意乱,懒得再折腾LIBRARY_PATH啥的了,估计是用虚拟机跑的时候显卡驱动比较土吧。

最后收拾收拾,还是回到Mac下了。正好翻到NeHe的OpenGL教程,里面居然有专门针对OS X的说明!OS X里也有自带OpenGL Framework。nnd。。。正好之前也装了Xcode,就下了一段sample code来。结果……一下通过……运行顺利……出现了一个可爱的红色三角形……

叹,虽然是绕了个大圈,花了大半天时间,最后的结果还是成功的,不仅可以动手写东西了,而且能舒服的呆在Mac下享受漂亮的界面而不必忍受Parallels上面奇怪的Linux(btw, Parallels跑Linux居然不能与OS X之间copy/paste,官方的解释也是无能为力。这叫人怎么用……)。

发泄完毕。

Leave a Reply

Your email address will not be published. Required fields are marked *