2012-01-24 3 views
3

Я изучаю GLSL, чтобы управлять им в моем IOS & android C++ engine. Я получаю много документации о синтаксисе и программировании GLSL, но мне нужны некоторые уроки о том, как управлять им в полной сцене (как применить шейдер только к определенному объекту сцены? Как объединить несколько эффектов для объекта?)Управление шейдерами

У вас есть ссылки или ссылки на книги, чтобы отправить меня?

+0

Хороший вводный сайт, объясняющий GLSL: http://www.lighthouse3d.com/opengl/glsl/ – boto

+0

@boto Я думаю, это не то, что он ищет. Он скорее хочет предложений по хорошей архитектуре управления сценой, поэтому этот вопрос слишком широк, чтобы отвечать соответствующим образом. –

+0

Да, поэтому я прошу документацию вместо конкретного ответа. Оранжевая книга очень полезна, чтобы научиться писать шейдеры, но не дает возможности управлять ею в игровой среде. – Klem

ответ

4

Как применить шейдер только к определенному объекту сцены?

Точно так же вы применяете текстуру к определенному объекту. Вы вызываете glUseProgram с программой, которую хотите использовать. Любые последующие команды рендеринга будут использовать эту программу, пока не встретится другой вызов glUseProgram.

Как объединить несколько эффектов на объект?

В общем, это означает, что вы пишете новый шейдер. Шейдеры - это не то, что вы можете комбинировать с API. Вы можете копировать их в другие шейдеры. Вы можете использовать unique features of the OpenGL shader object paradigm для изменения функциональности программы, на основе которой связаны программы.

Но в общем случае, если вы хотите объединить несколько «эффектов», вам нужно написать новый шейдер, в котором есть эти эффекты.

+0

Спасибо за ваш ответ. Это была первая проблема, с которой я столкнулся, чтобы создать мой первый менеджер шейдеров. – Klem

Смежные вопросы