Переделка света
This commit is contained in:
parent
a0843c0775
commit
31496bd0ea
|
@ -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;
|
||||||
}
|
}
|
|
@ -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);
|
||||||
|
|
Loading…
Reference in New Issue