摘要:
最近看了一本Foucus on 3D Terrain,是一个16岁的高中生写的,虽然这本书主要是总结了当时的大部分地形算法,不过也很让我吃惊了.想想我16岁的时候还在干什么,真的感到荒废了太多的时间. 地形是3D引擎中的一个很重要的部分,最近写的象素误差的东西其实会用到其中的大部分基础原理和算法,所以我决定干脆直接写一篇完整的论文,从地形的生成到地形的绘制,LOD,纹理等各大方面.至于源码因为我需要将这部分从引擎中分解出来,所以如果需要的人比较多我才会提供. 阅读全文
摘要:
LOD是指在实时运行状态下动态的改变物体网格的结构,以增加或减少物体的多边形数量.这种技术的目的是为了减少距离视线较远的物体的信息数据,减轻整个系统的负担.而当物体离视线越近时,该物体的多边形数量就会增多,使视觉效果不会下降.普通不规则物体的LOD是通过合并顶点,塌陷边等方式进行的.但对于有特殊结构的地形,LOD的方式有很大的改变.这几天作了一下这方面的东西.现在把关于地形LOD的相关算法,包括摄像机的基本投影算法作个总结. 地形在计算机图形学中通常是通过构造一个规则的(2^n +1) * (2^n + 1)的网格,在网格节点上导入地形高度数据而形成的.由于地形的网格结构非常规则.所以... 阅读全文
摘要:
写了将近两万行代码了,却基本没有测试.因为这段时间写的都是些框架性的东西,类与类之间的关系很复杂,而要作一些比较详细的测试就需要从一些层次上比较高级的类开始.不过最近看到了一些关于单元测试的资料,在Open Scene Graphic里有一个UnitTest的类是用来作这个的.打算先把这部分代码读一下,自己也写一个,能够对当前的程序进行一下比较基础测试.最后转贴一篇关于UnitTest的文章.如果大家对这个有兴趣,请和我联系.大家交流起来进步得更快嘛:)http://dotnetjunkies.com/WebLog/seichert/archive/2004/06/19/17046.aspx 阅读全文
摘要:
今天花了些时间写了一个四元数的算法类,提供了四元数的基本操作,四元数乘法,Log,Exp,Power和球面插值,四方体插值的功能.四元数在平滑插值和表示旋转变换上能比矩阵提供更快速和方便的算法.它的表达形式是W + Xi + Yj + Zk 是一个4维复数空间的值. 其中W = theta/2, (x,y,z)是旋转轴 阅读全文
摘要:
场景管理机制能使引擎更加有效率的进行碰撞测试,拾取算法,阴影算法,裁剪算法等需要遍历整个场景的各种操作.而且对骨骼动画也有天生的好处. 通常我们把场景中物体的层次关系用一张场景图(Scene Graph)来表示.场景图中最下层的叶子节点是几何体.场景中所有的几何体数据都只存在于叶子节点中.场景中除叶子外,每个节点都有1个以上的子节点,除最初的节点外,每个节点有且只有一个父节点. 每个节点所处的坐标系都是不同的,每个节点中都包含了一个Local Transform,用来记录从当前坐标系到父坐标系的线性变换. 初节点的Local Transform表示它到World坐标系... 阅读全文