[osg]OSG中的颜色数组,法向数组

一、OpenGL中设置颜色数组和法向数组是在glVertex前用glColor和glNormal。

只能给顶点分配法线。可以为每个多边形指定一和法线,也可以为每个顶点指定一条法线。

法线仅影响光照。

二、OSG中的法量设置有如下几种方式:

enum AttributeBinding
        {
            BIND_OFF=0,
            BIND_OVERALL,
            BIND_PER_PRIMITIVE_SET,
            BIND_PER_PRIMITIVE,
            BIND_PER_VERTEX
        };

法向有不同的绑定方式。

BIND_OFF 不绑定;

BIND_OVERALL 用一条法向绑定所有的顶点(顶点数组中);

BIND_PER_PRIMITIVE_SET 为每个图元集绑定一条法线;(法线的个数要与图元集的个数一致)

BIND_PER_PRIMITIVE 为每个图元绑定一条法线;(法线的个数要与图元的个数一致)

BIND_PER_VERTEX 为每个顶点绑定一条法线。 (此时法线的个数要与顶点的个数一致)

三、颜色数组的绑定方式与法向类似

四、osg::Geometry中提供下面函数操作:

void Geometry::setColorArray(Array* array)

void Geometry::setVertexArray(Array* array)

void setColorBinding(AttributeBinding ab);

void setNormalBinding(AttributeBinding ab);

你可能感兴趣的:([osg]OSG中的颜色数组,法向数组)