摘要:
看着自己的成果逐渐的成型,满足感油然而生。虽然CAE在功能,设计上都无法和商业引擎相比,但在写CAE的同时,我的确学到了很多东西。目前CAE的大体结构已经成型,当然还有很多功能需要完成。最近打算加入对CG和GLSL的支持,等功能进一步完善后我打算开放源码。注释我也大多用英文写的,希望开放出来后能有爱好者能跟我共同维护改进,就向OSG一样。 毕业设计也打算用CAE来充数了。顺便也能作为CAE的参考文档,真是一石多鸟之计,呵呵 阅读全文
摘要:
日期:6/28/2005完成任务:1. 特征系统数值算法(MathNew/Numerica/EigenSystem)2. 高斯点集分布算法(FitMethod/GaussPointFit) 注:只完成的高斯点集分布的3维情况,2维情况还未完成3. AABB包围体和OBB包围体创建算法(BoundingMethod/CreateBox3.cpp)注:只完成的3维情况,2维情况未完成4. BoudingVolumn的封装策略: 每个Geometric拥有>=3个BoundingVolumn(目前只考虑有3个的情况).BoundingVolumn是一个包围体的封装类,具体的几何特性由成员指针指 阅读全文
摘要:
为了测试最近写的代码的可行性,并对不足和功能不够的地方进行修补,我准备花一个星期时间来写一个地形的DEMO。目前完成了地形的数据结构和一些分形生成地形的算法。我采用的结构是用一个Terrain来管理NxN个TerrainPath。Terrain只是一个Node节点,本身不含顶点数据。但是提供统一接口供外部调用。TerrainPath是(2^n + 1)x (2^n + 1)大小的网格,N级Lod。这种结构便于制作超大地形,并且Lod和Cull起来都很方便。贴上两张图,都是没加纹理的。 阅读全文
摘要:
这段时间一直都在忙着写CoagelEngine,没时间上来更新。花了一个月的时间,现在基本把渲染器的框架写好了。渲染器是用Visitor模式实现的。同时API无关,理论上来说同样可以支持Directx,不过我没用过DX,现在只实作了GLRender。通过在场景的主节点Root(唯一)上调用Root->accept(GLRender*),就可以自动的渲染整个场景,GLRender会遍历整个场景图,智能的判断需要渲染的物体是什么类型,比如是Camera,TriMesh,TriStrip,BSpline等等。场景中的每个节点都可能在程序运行时刻改变,比如Camera会相应键盘和鼠标来改变当前的 阅读全文
摘要:
地形在计算机图形学中是一种比较特殊的物体,通常地形被设计为规则的网格,网格上每个顶点都根据不同的高度在网格的法线量方向进行位移.地形的高度被保存为一个名为高度图的文件中.当地形的网格结构越密集,地形的外观就显得越平滑.但同时也增加了需要被渲染的顶点和三角形数量.怎么才能在保证地形的外观平滑的前提下尽量减少需要渲染的数据呢,LOD就是基于这种想法应运而生的算法. 第一章 建立地形网格 图 1-1 如上图,先将所有的虚线当做实线看待.我们可以定义一个5X5的地形网格结构.该结构有25个顶点,其中每个顶点的X,Y坐标 [0,5]. Z坐标也就是所谓的高度值被保存在一个float[5X5]的... 阅读全文