Как заполнить определения в шейдере с помощью 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