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

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;
};
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;
}

View File

@ -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);