在osg3.6.4以前是
osg::Shader* vertexShader = new osg::Shader( osg::Shader::VERTEX );
osg::Shader* fragmentShader = new osg::Shader( osg::Shader::FRAGMENT );
osg::Program* program = new osg::Program;
vertexShader->loadShaderSourceFromFile( "E:/自己的 .vert" );
fragmentShader->loadShaderSourceFromFile( "E:/自己的.frag" );
program->addShader( vertexShader );
program->addShader( fragmentShader );
在3.6.5就把loadShaderSourceFromFile给
删掉的 就用QT中的QFile 来读
QString vert;
QFile file("E:/自己的.vert");
file.open(QIODevice::ReadOnly);//设置只读打开方式
if(file.isOpen())//如果打开成功
{
vert = file.readAll();//读取全部
}
file.close();//关闭文件
QString frag;
QFile file2("E:/自己的.frag");
file2.open(QIODevice::ReadOnly);//设置只读打开方式
if(file2.isOpen())//如果打开成功
{
frag = file2.readAll();//读取全部
}
file2.close();//关闭文件
```osg::Program* program = new osg::Program;
program->addShader(new osg::Shader(osg::Shader::VERTEX, vert.toStdString()));
program->addShader(new osg::Shader(osg::Shader::FRAGMENT, frag.toStdString()));