Как я могу использовать свой пользовательский шейдер в сцене Linderdaum Engine?

В настоящее время я заменяю default.sp своим шейдером, и он работает нормально. Но этот шейдер применяется ко всем объектам сцены.

Scene->SetMtl() работает только с материалами, а не с шейдерами OpenGL.

Как я могу использовать свой пользовательский шейдер только для некоторых объектов?

1

Решение

Есть метод clScene::SetMtlFromShader() который принимает три clRenderState переменные. По одному на каждый проход: нормальный, тень и отражение.

Вам нужно создать свой собственный clRenderState и установите для него программу шейдера OpenGL, используя clRenderState::SetShaderProgram() метод. Это должно работать нормально.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]