2006年12月19日

准备从今天开始给引擎记个流水帐,好让以后看起来有个成就感:)

2006.9.2
完成了字体显示的功能。

 

posted @ 2006-12-19 13:21 kunana 阅读(388) 评论(0) 编辑
 

  第一次接触"破碎虚空"这个词,是通过黄易先生的小说《破碎虚空》。到达这个境界的人也就是--成仙了。最近刚看完《边荒传说》。在这部小说里。黄易先生对"破碎虚空"这个概念进行了更清晰的表述。也就是一些具有超能力的人类可以打开一个通往“洞天福地”的“仙门”。
  现代物理学中倒是有一个类似仙门的概念--“虫洞”。至于“洞天福地”则可以解释为一个高度发达的文明所在地。比如100万年后的地球(如果到那时人类还存在的话)。燕飞具有的超能力也就是“奇异物”了。
  由此,我也找到了自己(或是全人类)的目标,就是和孙恩一样洞悉这世界的终极真理:>。当然是无法从武学入手,而是从物理学入手。只是自工作以来,大部分时间都用在计算机上,大学时学的物理基本上全还给老师了。只好从头学起,先从china-pub买一本朗道的经典物理学。估计物理学和数学各有十多门课程要学,一年学两门的话大概需十多年的时间。看来是有得累的了:> 。至于终极目标(现阶段就是融合量子论和广义相对论)就要看天意了(估计我是没戏了)。

另: "虫洞"可以参考湖南科技出版设第一推动丛书中《黑洞与时间弯曲》。

posted @ 2006-12-19 13:15 kunana 阅读(192) 评论(1) 编辑
 
   最近引擎框架整理的差不多了。昨天做了一个测试,一万个Box(无光照,一层cubic贴图,D3D9固定功能管线)全在视野范围内(离相机比较远,避免像素过多导致瓶颈在GPU端)fps达到30多,比以前的成绩好了不少。我的机器配置 CPU: P4-1.7, RAM: 256M DDR266, video card: Geforce6200A 128M/64B(主板是AGP4X)
 
posted @ 2006-12-19 13:12 kunana 阅读(216) 评论(0) 编辑
 
 最近一段时间一直在重写引擎,设计和实现都有不少改变,自我感觉比以前的版本在易用性上有一定提高,除去了一些不太实用的设计。另外在一些实现细节上也有一些改进。

  前几天翻看老外的一本"3D Math Primer for Graphics and Game Development",发现里面提到的一种变换AABB的快速算法,比我以前的实现要好的多。再查看Ogre和nnebula的代码,都没有做这样的优化。在此说明,希望对写引擎的朋友有所帮助。
 
  设有点p,矩阵m,以及变换后的点q
q = p*m 即
q.x = p.x * m.m11 + p.y * m.m21 + p.z * m.m31 + m.41 
q.y = p.x * m.m12 + p.y * m.m22 + p.z * m.m32 + m.42 
q.z = p.x * m.m13 + p.y * m.m23 + p.z * m.m33 + m.43 

  对于变换AABB来说,最直接的做法就是将起八个角点都按照上述公式变换到新的空间中,然后再找出minx,miny,minz和maxx, maxy, maxz组成新的AABB。但是仔细观察这个公式,可以发现如下的优化方法:

  以新AABB的minx为例
q.x = p.x * m.m11 + p.y * m.m21 + p.z * m.m31 + m.41
p为原始的八个角点之一,其中p.x为原min.x或max.x,y和z亦然。则八个角点形成了原min.x, max.x, min.y, max.y, min.z, max.z对这个式子的全部组合。可以看出只要计算出和式中各个部分的最小值,将它们相加,即为最终的minx。

   假如 m11 > 0, m21 > 0, m31 > 0; 则原角点(minx, miny, minz)变换后取得最小x值。 假如 m11 < 0, m21 < 0, m31 < 0; 则原角点(maxx, maxy, maxz)变换后取得最小x值。其余类推。这样只要先对矩阵元素的符号进行判断就可以可避免多余的计算。

  "3D Math Primer for Graphics and Game Development" 一书提供有支持网站http://gamemath.com 。上面有源代码下载。
posted @ 2006-12-19 13:04 kunana 阅读(472) 评论(0) 编辑