查看: 1214|回复: 2

关于transform节点

[复制链接]

该用户从未签到

发表于 2010-5-6 20:58:56 | 显示全部楼层 |阅读模式
还是场景中有很多棱柱那个问题
osg场景有很多重复单元
之前每个棱柱都有自己独立的几何信息
现在采用transform节点设置transfrom矩阵改变场景结构
root节点有n个transform子节点,每个transform节点都有一个同样的节点做为孩子,真正的几何信息就存放在唯一一个叶节点中

新生成的osg文件:
Group {
   nodeMask 0xffffffff
   cullingActive TRUE
   num_children 50109
   MatrixTransform {
      UniqueID MatrixTransform_Geometry_1
      nodeMask 0xffffffff
      cullingActive TRUE
      referenceFrame RELATIVE
      Matrix {
         1 -0 -0 0
         0 1 0 0
        -0 -0 1 0
        -2300 3150 599 1
      }
      num_children 1
      Geode {
         UniqueID Geode_1
         nodeMask 0xffffffff
         cullingActive TRUE
         num_drawables 1
         Geometry {
            useDisplayList TRUE
            useVertexBufferObjects FALSE
            ...
         }
      }
   }
   MatrixTransform {
      ...
      num_children 1
      Use Geode_1
   }
   ...
}

付之前的osg文件:
Group {
     nodeMask 0xffffffff
     cullingActive TRUE
     num_children 1
     Geode {
        UniqueID Geode_0
        nodeMask 0xffffffff
        cullingActive TRUE
        num_drawables 50109
        Geometry {
            useDisplayList TRUE
            useVertexBufferObjects FALSE
            ...
         }
         ...
      }
}
虽然内存消耗大大减少(之前280M,现在50M),为什么新的采用了transform节点的osg结构的渲染帧率跟之前的相比要慢呢?(之前28,现在16)
只是用osgviewer进行渲染
想得到点优化的建议,谢谢版主!

该用户从未签到

发表于 2010-5-6 23:43:10 | 显示全部楼层
不清楚您的场景如何生成的,如何组织的,,,,其他的很难判断~~

该用户从未签到

 楼主| 发表于 2010-5-7 10:21:39 | 显示全部楼层
场景是我自己写的程序读osg文件后处理后生成的
之前的场景结构:
Group
   |
   |
Genode(含有n个drawable)
新生成的场景结构:
                    Group
              /         |        \
Transform    Transform     Transform(有n个不同的transform节点)
             \          |        /
                  Genode(只含有一个drawable)

再一次谢谢版主
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表