[osg-users] binding a shader uniform to a matrix transform node

Botorabi botorabi at gmx.net
Tue Jul 15 11:01:50 PDT 2008


i am trying to setup a couple of meshes which should share the same geodes (vegetation meshes). the only difference between the meshes of same type is the transformation and a height bias which is used by a vertex shader program.

the height bias is defined as an uniform in the vertex program. i cannot set the uniform in the geometry's state set as the height bias must be set for every mesh individually. so i tried to set the uniform in the matrix transform nodes which contains the geodes. however it seems that the value of the uniform does not arrive with right value in the vertex shader. if the uniform is set in geodes' stateset the value is ok, though.

now my question: may i try another approach? is something wrong with setting an uniform ina matrix transform node?

thanks for any help

p.s.: here is a snippet of the osg file:

      MatrixTransform {
        DataVariance STATIC
        name "Plane3505"
        nodeMask 0x5
        cullingActive TRUE
        StateSet {
          rendering_hint DEFAULT_BIN
          renderBinMode INHERIT
          Uniform {
            name "heightbias"
            type float 1 FloatArray 1
        referenceFrame RELATIVE
        Matrix {
          0.5 0 0 0
          0 0.5 0 0
          0 0 0.5 0
          -0.0344534 0.0439845 -0.674881 1
        num_children 1
        Geode {
          UniqueID Geode_12
          DataVariance STATIC
          nodeMask 0x5
          cullingActive TRUE
          num_drawables 1
          Geometry {

More information about the osg-users mailing list