Вопросы по GLSL
Пока что 2 вопроса :) :
1) Когда передаёш текстуру шейдеру (в uniform переменную) передаётся ссылка на неё, или её копия? 2)Вот такой код рисует затекстуреный квадрат: Пишу на java с исползованием lwjgl и загрущиком текстуры slick-util (хотя это не важно) PHP код:
PHP код:
PHP код:
PHP код:
Поидее надо в шейдере что то добавить, типо texture2D, но я повсякому пробывал, не получается:( |
Ответ: Вопросы по GLSL
Цитата:
делаешь активным юнит GL_TEXTURE#: glActiveTexture(GL_TEXTURE0) потом биндишь текстуру: glBindTexture(тип текстуры, хендл) в шейдер передаешь номер: glUniform1i(номер юниформа, номер юнита) номер юниформа получаешь c помощью GetUniformLocation(хендл программы, имя юниформа) после загрузки программы. в пиксельном надо обьявить семплер соотвествующий типу текстуры (2D, 3D и т.п): uniform sampler2D имя; делаешь выборку из текстуры по текстурным координатам (тоже соответственно типу текстуры): texture2D(имя, координаты) и либо сразу передаешь в gl_FragColor, либо блендишь с цветом вершин, либо еще что-то. ЗЫ текстурные координаты представляются встроеным аттрибутом gl_MultiTexCoord# по номеру текстурного юнита, 4D вектор, для выборки texture2D нужно 2D вектор, так что юзай либо приведение типа vec2(gl_MultiTexCoord#), либо свиззл gl_MultiTexCoord#.xy. можно также свои аттрибуты задавать, но это уже отдельная песня :) |
Часовой пояс GMT +4, время: 21:12. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot