From 31496bd0ead339e8d54058356a04a92ae3e62df0 Mon Sep 17 00:00:00 2001 From: "R.E. Kovalev" Date: Wed, 5 Apr 2023 16:07:09 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=B4=D0=B5=D0=BB?= =?UTF-8?q?=D0=BA=D0=B0=20=D1=81=D0=B2=D0=B5=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- shaders/bulb.frag | 13 +++++++++++-- src/main.cpp | 8 ++++---- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/shaders/bulb.frag b/shaders/bulb.frag index de2d7f3..2f8fef3 100644 --- a/shaders/bulb.frag +++ b/shaders/bulb.frag @@ -18,16 +18,25 @@ layout(std140, binding = 4) uniform gamma float inv_gamma; }; -out vec4 color; +layout (location = 1) out vec3 gNormal; +layout (location = 3) out vec4 gAmbientSpecular; +layout (location = 4) out uvec3 gID; uniform float angle; uniform vec3 direction; +uniform uvec3 ID = uvec3(0); + void main() { float cosA = dot(normalize(pos_local), normalize(direction)); if (degrees(acos(cosA)) <= angle) - color = vec4(pow(ka, vec3(inv_gamma)), 1); + gAmbientSpecular.rgb = pow(ka, vec3(inv_gamma)); else discard; + + gNormal = vec3(0); + + // Сохранение идентификатора объекта + gID = ID; } \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index ee9b857..21fb483 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -469,6 +469,10 @@ int main(void) scene.render(gShader, material_data); rectangle.render(gShader, material_data); + // Отрисовка отладочных лампочек со специальным шейдером + bulbShader.use(); + Light::render(bulbShader, material_data); + // Используем шейдер для инструментов toolsShader.use(); // Рендерим инструменты для выбранного объекта @@ -578,10 +582,6 @@ int main(void) // Возвращаем запись глубины glDepthMask(GL_TRUE); - // Отрисовка отладочных лампочек со специальным шейдером - bulbShader.use(); - Light::render(bulbShader, material_data); - // Дополнительная обработка мыши process_mouse_button(mouse.left); process_mouse_button(mouse.right);