Как заполнить определения в шейдере с помощью OpenSceneGraph (OSG)

У меня проблемы с определением в шейдере. Маленький кусочек шейдера:

#pragma import_defines ( HAS_NORMALS )
#pragma import_defines ( HAS_TANGENTS )
#ifdef HAS_NORMALS
#ifdef HAS_TANGENTS
varying mat3 v_TBN;
#else
varying vec3 v_Normal;
#endif
#endif

По своей основной функции я делаю следующее:

stateSet->setDefine("HAS_TANGENTS");
stateSet->setDefine("HAS_NORMALS");

Но v_TBN не создает. Мне нравится как в примере с shaderComposition, но что-то идет не так. https://github.com/artoolkit/osg/blob/master/examples/osgshadercomposition/osgshadercomposition.cpp https://github.com/openscenegraph/OpenSceneGraph-Data/blob/master/shaders/osgshadercomposition.frag

0 ответов

Другие вопросы по тегам