osg学习(七十一)如何给顶点着色器传递顶点数据

Posted hankern

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了osg学习(七十一)如何给顶点着色器传递顶点数据相关的知识,希望对你有一定的参考价值。

缩放不会影响传递到着色器中顶点坐标缩放

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());
    

以上是关于osg学习(七十一)如何给顶点着色器传递顶点数据的主要内容,如果未能解决你的问题,请参考以下文章

将统一值传递给顶点和片段着色器

如何将数据从顶点着色器传递到片段着色器,中间有着色器[重复]

将顶点保存到纹理并传递给着色器

02 传递颜色给着色器

如何在 OpenGL ES 2.0 中将视图/模型/投影矩阵传递给我的顶点着色器?

将属性传递给 OpenGL 顶点着色器的行为很奇怪