Posted by Kai on 16th July 2007
OpenGL里面有个glTools库,其中最后一个函数是glMakeShadowMatrix,可以生成一个矩阵,所有经过这个矩阵运算的点,都被变换到在指定光源下的位置。这个也许听起来很有意思,不过还有一个更奇妙的地方,那就是,指定光源是点光源还是平行光线的方法,是在光线的表示的第四个分量,如果是0,就表示是平行光线,前三个分量是方向向量(可以不是单位向量),如果是1,就表示是点光源,前三个分量是光源的位置。当然,这没什么神奇的,更神奇的是,这个函数里面没有用到任何分支判断语句。That’s the point.我花了一天时间推算这个矩阵,算出来后,觉得很可能这是四维空间的元算,所以才有这么好的形式,这么漂亮的形式,真是神的安排。如果真的按照三维空间的几何意义,会有这么奇妙的统一,我怎么都难以想象。也许是数学美丽的巧合,也许是自然科学的神力,也许就是四维代数下的运算,如果用三维的几何观去理解,那一定很费解。OpenGL的这个矩阵真是太神奇了,这是我学图形到现在,最奇妙的矩阵。
Posted in Graphics, tech | No Comments »
Posted by Kai on 12th July 2007
从上周五晚上开始看关于OpenGL的东西,正式开始是从这周一开始的。现在基本的渲染函数都已经会用了。想想我以前做的飞机的那个东西,除了读入.x文件我还不会和播放声音我不会外,其他部分我基本上能够用OpenGL重做一变了。
感觉OpenGL和DirectX相比,用DirectX提供了很好的接口,特别是我用的MDX,我只管用它提供的API就行了。但是OpenGL展示了更多底层的数据关系出来。坦白的说,在构造转移矩阵的方面,OpenGL用起来没有DirectX方便,因为DirectX提供了一些很好用的函数,而OpenGL,可能是我现在只知道一些基本的函数,我觉得如果没有高层的接口的话,人性化方面是没法和DirectX比了,而且显然对程序员的要求也比DirectX要高。
我学OpenGL主要用的是NeHe的教程,NeHe讲的很浅,所以适合入门。同时我还在看OpenGL超级宝典,听师姐说就是所谓的OpenGL的RedBook。
现在NeHe的Tutorial我看完了#12,前12个例子也都做了一便。其中我要说的额,最酷的吸引我的例子是第一个。Wow,第一次手动构造一个windows程序的感觉酷毙了!
Posted in Graphics, tech | No Comments »
Posted by Kai on 5th July 2007
算起来,从前天上午九点到现在,我只睡了4个小时。
当然,前天白天我基本在糜烂,看完了飞黄腾达第六季的最后两集,去帮老师办公室开开会,回来看看电影火爆警探。
正是开始做实验是从昨天前天晚上,8点钟。做了一会儿浮躁了,然后开始活动活动。顺便觉着好玩写了一个控制俯卧撑休息间隔的小程序,一边做一边玩。
入夜以后静下心开始做通宵到昨天早上9点。然后睡觉,下午1点起来,因为原则上deadline就是当天晚上,所以1点钟起来後,一边饿着一边在那里做实验。傍晚5点钟,饿的受不了,去买东西吃。回来後继续做。晚上12点的时候吃了点饼干,然后一直做到现在。刚刚提交。
今天我估计我会比较困。不过好像白天还有个报告会必须要去,还是帮2个人听着,。。。,还要找漂亮又BH的师姐要OpenGL的书,然后铭仔生日请客吃东西。感觉好充实的一天啊,咦?我什么时候开始睡觉呢?
上一幅图,是Snake包围的4格。为了这个图,我累死了。
下面再上一个,我没学图像时候觉得很牛的东东,就是把现实的图像变成素描一样的。
左上是原图,右上是讲过了高斯平滑。右下是Sobel梯度,左下是归一化的梯度幅值。
右下看起来很像素描吧,啦啦~~
Posted in Graphics, c++, personal, tech | No Comments »
Posted by Kai on 3rd December 2006
2周前做的简单的3D图形库的数学变换和映射部分。还不知道怎么取样会比较好,所以只是显示了几个单色面。也作了简单的光线折射。下一步要做的就是逆映射和采样了。不知道。net里面有没有类似汇编语言的东西,如果有,不知道有没有simd指令,有的话就可以大大提高运算效率了。上图:这是渲染得一个立方体。可执行文件下载
Posted in C sharp, Graphics, tech | No Comments »
Posted by Kai on 3rd August 2006
第一次如此强烈的感到数学的可怕。昨天看了BSP和PVS之后,我简直想把那本《3D游戏》给撕了。靠,讲了半天,我p都不懂。第一次感到在数学面前我惭弱的身躯只有颤抖的份。而且发现我大脑缓存严重不足,书里描述了半天,我一点直观感觉都没有。同时,也发现,一个3D游戏引擎比我想象的复杂太多了。我以前太天真了。光那些数学功底,就不是现在的我所能企及的。我也终于明白了为什么在网上看到ubi的图像工程师可以拿到2W的月薪了,人家有那个能力。3D引擎的数学描述部分就已经复杂的可以了,还要把绝大部分曲线描述用矩阵的方式表示出来。晕啊!之前看凹凸贴图,基本原理明白了,但是对于他的数学表达,就是不知所以然。我想先做个法向量扰动,随便做一个,看看效果,再从我得到的效果上去找表达式吧。干想实在是太痛苦了。
决定,以后一周内都不碰那本书了。看看HLSL,看看DXUltility,看看DXsampleframework,先做个凹凸贴图再说。理论的东西看多了,会疯的。
Posted in Graphics, personal, tech | No Comments »
Posted by Kai on 17th July 2006
今天看了一些帖子,现在我都有些混乱了,MDX好像还在.Net Frmwk3.0里面。只是不能肯定,因为有看到一句话“已经Beta的MDX 2.0中途夭折”( http://blog.csdn.net/Nightmare/archive/2006/07/12/910516.aspx),有些担心以后必须要换方法来做游戏。但是既然C#是.Net的主打语言,C#是应该肯定能用来做游戏的。而且,看到帖子说CLR核心没有改变,那么现在的MDX做出来的exe文件还是可以在vista系统运行的。OpenGL好像已经挥军嵌入式平台了,以后如果Vista大行天下的话,MDX应该是最好的开发库了。那么C++怎么办?退居底层,其他平台也许。也许MDX只是换了一个名字叫做WPF,就像WinFX换了一个名字叫.Net Frmwk3.0。I hope so。
Posted in C sharp, Graphics, tech | No Comments »
Posted by Kai on 20th May 2006
今天傍晚我在文昌103做了我的第一次公开讲座。实话说,人有点少。不过无所谓,只要来得人会因为我的演讲对3D游戏有了一点了解下学期想加入我们俱乐部就行了。
后来本系有个人跟我说我讲的很好。看来2年的家教还是锻炼出来了教学的潜质的。我感觉最吸引人的是我们的烟雾效果,我都感觉很棒。不过后来,他告诉我最炫的是DX的机制。看来他们也不完全是外行啊,还是对内部的东西满感兴趣的。

Posted in C sharp, Graphics, MSTC, game, personal, tech | No Comments »
Posted by Kai on 8th May 2006
好久没有来这里了,这几天一直很忙,刚刚提交了南大那个比赛的代码,听天由命了。功能比预期的减少了很多,时间实在是太紧了。而且我5。2号还在画三角形。5。4号贴出了一条路,然后兴奋的一夜没睡着。昨天也是很晚都没有睡着,在床上想到4点钟才硬控制这自己去睡觉。虽然程序还很初步,我还是非常的有成就感的,毕竟我真的做出了一个3D的游戏,3D的啊。我真的创造了一个世界,一个我做的世界。贴图我到处找的,sdk里有个skybox竟然贴图错误,于是我用a box的x文件,b box的图像,不过我用dds工具转了一下。音效很棒哦,因为是我喊出来的,没想到我的嗡嗡声在低频下放出来喝飞机引擎这么像。机炮的声音我用的是puc the pirate的爆炸声,机炮嘛,总不能像机枪一样吧。attitude转vector3的公式今天上午我想了两节课终于写出来了,原来attitude很好用的,毕竟是行业标准,没的错的。看了看sdk documents才知道directX的内部变换机制,然后才会分析attitude的用法。了解原理果然很有用!
算法比赛的结果出来了,我们刚开始受了点委屈,编译不通过,是编译器的问题。后来他加了个参数,我们就过了。预赛排名第二,04级里面是第一。
我们宿舍4个人都进决赛了,荣誉啊。
Posted in C sharp, Graphics, game, tech | No Comments »
Posted by Kai on 19th April 2006
今天去了Digipen的网站下载到了puc the Pirate的程序和源代码。程序虽然比不上大游戏,但是作为一个教学示例游戏,做的还是非常棒的。特别是当我转动视角的时候,哇,感觉太棒了。
希望到时候我们也能做出这种样子的东西。三维的场景最激动人心的大概就是可以转动的视角了。puc the Pirate是c#做的,看的出来第一次运行的时候还是很慢的。没办法,IL机制的弊端。
今天在网上还下载到了一些游戏引擎,我想如果为了追求数量的话,用用也是挺好的。毕竟,像web2.0兴起一样,当创意超过技术成为取胜的关键时,大众的积极性就被调动起来了。
Posted in C sharp, Graphics, tech | No Comments »
Posted by Kai on 21st March 2006
昨天得到通知了,进入了苏富特杯比赛的决赛了。东大就2个队进入,另一个队是王春茂。微软俱乐部很强啊。
这下一定要做出的什么了。本来还考虑过退缩,现在连退缩都没有机会了。
今天无意中翻翻电脑,看到Kick Start for Managed DirectX这本书,庆幸的是这本书里有对DirectPlay的使用介绍,真的太好了。另外我无意中找到了调整chm字体的方法。”Introduction to Game Engine Design with DirectX and C#”这本书打开之后没有字体调整按钮,字体小小的,看着很难受。今天发现我只要打开另一个可以调整字体的chm,调整字体,然后再打开这本书,字体就是再另一本书里选择的字体大小。真是无心插柳啊~
小青的比赛也进入复赛了,但是我没什么兴趣。不过很麻烦,不小心答应了人家,又不能不管。我对网站真的没有兴趣啊。我自己的比赛更加耗时间,时间非常的紧迫了。
5月8日就要提交作品了,我们还在前期。
真想在南大那帮人面前臭美一下!
Posted in C sharp, Graphics, MSTC, game, personal, tech | No Comments »