Переделка света

This commit is contained in:
Ковалев Роман Евгеньевич 2023-04-05 16:07:09 +03:00 committed by re.kovalev
parent a0843c0775
commit 31496bd0ea
2 changed files with 15 additions and 6 deletions

View File

@ -18,16 +18,25 @@ layout(std140, binding = 4) uniform gamma
float inv_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 float angle;
uniform vec3 direction; uniform vec3 direction;
uniform uvec3 ID = uvec3(0);
void main() void main()
{ {
float cosA = dot(normalize(pos_local), normalize(direction)); float cosA = dot(normalize(pos_local), normalize(direction));
if (degrees(acos(cosA)) <= angle) if (degrees(acos(cosA)) <= angle)
color = vec4(pow(ka, vec3(inv_gamma)), 1); gAmbientSpecular.rgb = pow(ka, vec3(inv_gamma));
else else
discard; discard;
gNormal = vec3(0);
// Сохранение идентификатора объекта
gID = ID;
} }

View File

@ -469,6 +469,10 @@ int main(void)
scene.render(gShader, material_data); scene.render(gShader, material_data);
rectangle.render(gShader, material_data); rectangle.render(gShader, material_data);
// Отрисовка отладочных лампочек со специальным шейдером
bulbShader.use();
Light::render(bulbShader, material_data);
// Используем шейдер для инструментов // Используем шейдер для инструментов
toolsShader.use(); toolsShader.use();
// Рендерим инструменты для выбранного объекта // Рендерим инструменты для выбранного объекта
@ -578,10 +582,6 @@ int main(void)
// Возвращаем запись глубины // Возвращаем запись глубины
glDepthMask(GL_TRUE); glDepthMask(GL_TRUE);
// Отрисовка отладочных лампочек со специальным шейдером
bulbShader.use();
Light::render(bulbShader, material_data);
// Дополнительная обработка мыши // Дополнительная обработка мыши
process_mouse_button(mouse.left); process_mouse_button(mouse.left);
process_mouse_button(mouse.right); process_mouse_button(mouse.right);