zoukankan      html  css  js  c++  java
  • 我所遭遇过的游戏中间件---SpeedTree

    我所遭遇过的游戏中间件---SpeedTree


         SpeedTree是一个专门用于渲染植被的中间件,并提供了一套完善的植物编辑工具。在它官方提供的DEMO中,你会看到高度逼真的树木和植物,在风的影响下树影婆娑,十分精美.感觉它的Shader写到了极致,让我有种叹为观止的感觉.SpeedTree有两大特点,其一就是牛B的Shader,可以渲染出美伦美奂的植物,其二是高效的场景植被管理引擎,可以高效地对场景植物进行剔除.

          先说其Shader.看过网上几篇关于SpeedTree的文章,将其图形数据分成三类,树干,树枝,树叶.而实际上应该为四类,其树叶有两种,一种是Mesh树叶,另一种是Billboard树叶.每一种图形数据对应其自己的顶点格式和渲染Shader.

          再说其植被管理引擎,可以管理几十万棵树,效率非常高.不过游戏都会有自己的场景模型管理模块,SpeedTree的植被管理与引擎自身的场景管理有重复的地方,所以有些引擎会不使用SpeedTree的植被管理.此外,使用植被管理时需要注意:(1)启动剔除引擎时,不能对树进行编辑,即:添加,删除,修改.(2)关闭剔除引擎时后,如果当前场景中的树很多,最好删除一定的树,否则运算量太大可能会造成崩溃.

          SpeedTree对LOD的处理也是非常值得称道,其Shader处理会考虑到两级LOD间的过度,其顶点数据中会记录两级LOD的位置,从而实现非常平稳地过度.因此当在SpeedTree的场景中移动时,你会发现其植物十分自然地发生变化,由清晰的图形变成Billboard.

          我是09年开始搞SpeedTree的,时间有些久了,很多细节都已经记不清了.当时写过两个SpeedTree的模块,一个是4.0版本的,一个是5.1版本的.然而这两个模块都没有最终用在游戏中.因为最终的使用方案是,我又写一个模型转化工具,将SpeedTree的SRT文件转化成自己定义的文件格式,然后改写其Shader.这样根本就没有必要花钱买SpeedTree的授权,这种事情叫盗版也好,叫破解也好,反正在中国大家也习以为常.SRT模型转化时还有个没解决的问题:没办法使用其提供的接口对文件数据进行缩放.如果缩放了,SpeedTree受风的影响会不正确.不过这也不是什么大问题,在场景编辑时再对模型进行缩放也一样,无非美术编辑时麻烦了一点.

  • 相关阅读:
    python django blog
    Django框架的学习
    Django 与 Flask框架的比较
    pycharm windows 远程修改服务器代码
    matlab的Deep Learning的toolbox 中的SAE算法
    什么是有监督学习和无监督学习
    linux 操作系统rz sz 快速上传和下载文件
    PDF,word ,PPT,等各种文件转换在线工具(免费)
    linux 安装 rz sz 快速上传和下载文件
    sci-hub 下载地址更新
  • 原文地址:https://www.cnblogs.com/WhyEngine/p/3504198.html
Copyright © 2011-2022 走看看