2006年12月14日

Words on:图形程序开发人员指南(一)

书的英文名是《Michael Abrash's classic Graphics Programming Black Book》。Michael Abrash是图形学的先驱者之一,《DOOM启示录》也有描述。云风的书(《游戏之旅-我的编程感悟》)上也多次提到了这本书。我摘录了一些,但是是非技术的。以后多贴点技术的。
在东校区图书馆无意间发现的,大家要到东校区借书的话来找我。:D

[Michael Abrash]        我想说的是我们现在日益进入一个紧密互联,高度逼真的空间,我希望那些人意识到3D编程的难度和潜能实际上比以前更大。关键在于要沉溺于已经实现的技术,必须不断奋斗,力争"用不同的方式,用更少的代码,编写出更好的程序。"不断学习,改变并尝试新的方法,直至生命的终结,这样就能为将来留下自己的烙印。
        当说到这种乐趣是我生活的目的时,我认为我并没有言过其实(当然也许有一点点),我很高兴这么多读者都有这种热情。
        要敢于尝试不可能的事情,知道什么是不可以的也是有用的知识-一些意想不到的成功可能会让你顿悟:多数不可能的事情其实是可能的。
        这十年是微机程序员的十年,我庆幸自己不仅能成为其中的一员,而且能够在历史的发展中留下自己的痕迹。但愿未来的十年依然充满兴奋和喜悦。

[John carmack]编程不是一个零和的游戏,教给你的同行一些东西并不会丢失它们,我与人分享我能够做到的一切时感到很高兴,因为我深深的热爱编程。一辆法拉利小轿车不过时一种物质享受,但做人最重要的是真诚

2006年12月1日

我为何而生

这是个很麻烦的题目了,但是是必须要思考的。跟家里人的想法有点不大一样,一冲动就写了。
罗素有一篇这个题目的经典文章:
[William Russell]对爱情的渴望,对知识的追求,对人类苦难不可遏制的同情,是支配我一生的单纯而强烈的三种感情。这些感情如阵阵飓风,吹拂在我动荡不定的生涯中,有时甚至吹过深沉痛苦的海洋,直抵绝望的边缘。
像我的Blog的题目一样,《伊尔的理想》,我是为理想而存在的吧。
以前是不想这些事情的,整天上学上学,不思考。改变我高中生活的是一本让我懂得思考的杂志。改变我的大学生活的是盖茨的那句话:
[Bill gates]每天清晨当你醒来时,都会为技术进步及其为人类生活带来的发展和改进而激动不已。
我希望可以用技术改变人们的生活,这是我来做技术的原因。不是为了变得更强,也不是为了生活。为了这个也失去了一些的。空余时间,课程成绩等等。但是那些付出在我看来是值得的,我能感觉到自己的存在,未来的一天,我可以让这个世界更美好。至于做图形,是因为我想做游戏,这跟我的经历有关。还有很重要的是,同时也有了伙伴。(跟我爱罗不一样wo,有存在的理由,有伙伴。:D)
Live for ideal,not just live for living.

2006年11月29日

尝试了一下gDEBugger

以前就装过这个东西,不过没怎么用。NVPerfKit的一个部分。
NVPerfKit要先卸载本机的NVidia显卡驱动(驱动,:D),NVPerfKit会替换那个驱动,这样它就可以在底层截取渲染操作的信息。控制面板里的NVidia developer control panel也可以用了。
今天碰到了问题,前几天把ModelShadow(模型的阴影渲染)重写了一下,在Nehe的框架下写的。现在要转到xophiix的框架下。两边的操作基本上完全一样,但是那个阴影死活不出来。sigh.

于是就试了一下gDEBugger.gDEBugger分了八栏:OpenGL function calls history,OpenGL State Variables,Call stack,Properities,performance graph,counter, performance Dashboard,Function Calls Statistics.今天主要用的四OpenGL function calls history和OpenGL State Variables.监视了一下GL_CULL_FACE,GL_CULL_FACE_MODE,GL_STENCIL_BITS这个个关系比较大的状态变量,没对比出什么区别来。

然后把OpenGL function call录制了一遍,这个功能真的很好。有一个红色的小球样子的按钮就是了。录完点右边的一个按钮就可以在浏览器里看到,我对比了一下阴影渲染部分的主要调用,真的是没有太大不同。

还有就是可以设置断点,在出现OpenGL错误或者接到NVidia GLexpert的报告时中断,还可以自行设置在执行某些OpenGL函数时中断。如果支持条件中断就更好了。发现了一个以前的小bug,一个错误的OpenGL调用。

还可以在性能分析(profile)模式下工作,这个我并不了解,用NVPerfHUD也许更好吧,不过NVPerfHUD是为D3D程序工作的.....。最后,可惜gDEBugger不是免费的,只能用30天。

下载NVPerfKit

PS:今天又发现一些新的功能,比如同步显示代码(类似VTune)和Shader编辑器。profile也比我想象的更强。

2006年11月26日

卡马克(John Carmack) 的blog


卡马克(john carmack)最近写blog了,id开始涉足手机游戏
一个很有趣的事情是:这个网站是一群火箭爱好者的地盘
新发布的一款是<<Orcs & Elves>>,有多种版本,NOKIA的好像要求N70以上。还蛮高的。以前好像有另一款产品叫做DoomRPG
想想罗梅洛,离开id之后也是去做手机游戏了

时代已经不同了。游戏的商业价值已经被完全重视起来。id可以在技术上成为leader,在市场上恐怕很难了。即便手机游戏这样的特殊市场,gameloft等厂商也已经占先了。id本次的开发平台选用了BREW和java,各有两种平台的高端和低端产品。
[carmack]:In hindsight, we made a strategic mistake at the start of O&E development. We were fresh off the high end BREW version of DoomRPG, and we all liked developing on BREW a lot better than Java. ...The high end version is really wonderful, with all the graphics, sound, and gameplay we aimed for, but when we went to do the low end versions, we found that even after cutting the media as we planned, we were still a long way over the 280k java application limit.
开来carmack仍然那么追求效果,不过现在手持设备的能力毕竟与桌面电脑有差距。
[carmack]:The download size limits are probably the most significant restriction for gaming on the high end phones. I don't really understand why the carriers encourage streaming video traffic, but balk at a couple megs of game media.

2006年11月24日

blogger居然又走出祭坛了

刚刚解封,不过心里总是有阴影:以后会不会再被封呢