设为首页  
联系我们  
加入收藏  
网页制作 冲浪宝典 图形图像 操作系统 软件教学 编程开发 认证考试 安全技术 站长专区 文学驿站 娱乐天地 游戏天地 办公软件
文章搜索
您的位置: 首页 >> 文章首页 >> 编程开发 >> 游戏开发 >> 基于LOD的大规模真实感室外场景实时渲染技术的初步研究 part II&III
精品推荐
游戏开发点击TOP10
·DirectX5.0最新游戏编程指南 DirectDraw教程篇 二、第一个DirectDraw实例
·用Excel编写小游戏
·五子棋的原代码
·游戏开发方面相关的电子书下载
·游戏文件系统的解决方案
·基于LOD的大规模真实感室外场景实时渲染技术的初步研究 part II&III
·用MFC构造DirectX应用框架
·游戏开发开门
·《Windows游戏编程大师技巧》(第二版)第11章
·DirectX8.1的DirectDraw7研究手记(三)
编程开发点击TOP10
·数字小键盘指法练习
·ASP.NET 程序中常用的三十三种代码
·用C语言编通讯录程序(初学者级别的)
·我写的Java学生成绩管理系统源代码
·CHK文件恢复工具
·Modem 常用AT指令集
·java笔试题
·异常java.sql.SQLException: Io exception:The Network Adapter could not establish connection
·单片机模拟I2C总线及24C02(I2C EEPROM)读写实例(源代码)
·C++经典电子书下载
精选专题

基于LOD的大规模真实感室外场景实时渲染技术的初步研究 part II&III

作者: 来源:网络文章 时间:2005-12-17 22:39:12

基于LOD的大规模真实感室外场景实时渲染技术的初步研究 part II&III(2) Begin

       Push the root node to the cur_Queue

   level = 0

     Loop Not reach the Full resolution)

      {

              For Each Quad-Tree Node in Cur_Queue

              {

                            If(Node is not inside the view frustum)

                            {

                                   Simple Skip this Node

}

else if(level = Full Resolution level –1 )

{

       Draw The Node

}

                            else

                            {

                                   For Each Sub-Node in this Node

                                          Check dependcy

                                          If(SubNodeCanSubdivid() and SubNodeNeedActive())

                                          {

                                                 Push this sub Node to Next_level_Queue

                                                 Set this sub Node flag to VS_ACTIVE

}

Else

{

       Set this sub Node flag to VS_Disable

}End if

                                   End for

                                   If  No sub Node is active

                                   {

                                          Disable this Node

                                          Set all four sub-node flag to VS_DISABLE

                                          Draw the Node

                                   }

else if Some Sub-Node is active

{

       Draw the Node

}End if

                            }End if

              } End for

              Swap (cur_Queue,Next_level_Queue);

              level  = next level

       }End Loop

End Function

 

Function NodeCanSubdivid as BOOL

Begin

       Check the four Neighbor Node.

       If All Neighbor Node is Active

return TRUE

       Else

return FALSE

       End If

End Function

       6.    优化

上面介绍的算法在理论上是比较严谨的,但是稍微显的有些复杂,同时速度也不是十分的快。下面,我将对它进行一些优化和简化。

在上面的算法中,当一个节点的四个子节点中有一部分被分割,另一部分不被分割的时候,给我们渲染带来很大的麻烦,而且每处理一个节点的时候,我们都要检查四个子节点,比较麻烦。为此参照[参考文献13]给出如下规则:当一个节点的四个子节点中任何一个需要继续分割的时候,四个子节点都进行分割。在本文的程序里,这个规则进一步成:一个节点需要分割的时候,就把其四个子节点都生成并放入到下一层次的队列中去。

按照这种简化的思想,图4.4 中的标记数组对应的地形网格最终将如图4.10所示。对比图4.4右图,我们发现其实简化后的算法生成的地形细节更多,也就是说需要绘制更多的三角形。但是由于需要判断的条件少的多,因此在运速度上,反而是简化后的算法要更占有优势。

 

图4.10(图4.4 )中的标记数组对应地形的简化生成算法

 

下面我给出优化后的伪代码,对比上面的算法,它显得更加的简洁了。

Function GenerateMesh

共6页 9 7 [1] [2] [3] [4] [5] [68 :>

基于LOD的大规模真实感室外场景实时渲染技术的初步研究 part II&III 相关文章:
基于LOD的大规模真实感室外场景实时渲染技术的初步研究 part II&III 相关软件:
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
转载请注明来源:http://www.xgdown.com