缩放不会影响传递到着色器中顶点坐标缩放
osg会自动向着色器传递osg_Vertex、osg_ModelViewProjectionMatrix等变量,不需要再定义,在着色器中直接使用即可。
设置顶点数据
osg/Geometry.cpp
void Geometry::setVertexArray(Array* array)
{
_vertexArray = array;
}
两种上传方式
C++学习(三一一)AttributeDispatchers和VertexAttribArrayDispatch关系_hankern的博客-CSDN博客区别如下:https://blog.csdn.net/hankern/article/details/118859734
通过glVertexPointer向顶点着色器派发,通过gl_ModelViewProjectionMatrix gl_Vertex gl_Normal gl_MultiTexCoord1等访问相应的顶点属性信息。
osg/VertexArrayState.cpp
virtual void dispatch(osg::State& /*state*/, const osg::Array* new_array)
{
VAS_NOTICE<<" VertexArrayDispatch::dispatch("<<new_array->getNumElements()<<")"<<std::endl;
glVertexPointer(new_array->getDataSize(), new_array->getDataType(), 0, new_array->getDataPointer());
}
|