В настоящее время я заменяю default.sp своим шейдером, и он работает нормально. Но этот шейдер применяется ко всем объектам сцены.
Scene->SetMtl()
работает только с материалами, а не с шейдерами OpenGL.
Как я могу использовать свой пользовательский шейдер только для некоторых объектов?
Есть метод clScene::SetMtlFromShader()
который принимает три clRenderState
переменные. По одному на каждый проход: нормальный, тень и отражение.
Вам нужно создать свой собственный clRenderState
и установите для него программу шейдера OpenGL, используя clRenderState::SetShaderProgram()
метод. Это должно работать нормально.
Других решений пока нет …