Compare commits
No commits in common. "master" and "v0.1" have entirely different histories.
|
@ -1,12 +0,0 @@
|
||||||
#version 330 core
|
|
||||||
out vec4 FragColor;
|
|
||||||
|
|
||||||
in vec3 TexCoords;
|
|
||||||
|
|
||||||
uniform samplerCube skybox;
|
|
||||||
|
|
||||||
void main()
|
|
||||||
{
|
|
||||||
FragColor = texture(skybox, TexCoords);
|
|
||||||
gl_FragDepth = 0.9999f;
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
#version 420 core
|
|
||||||
layout (location = 0) in vec3 pos;
|
|
||||||
|
|
||||||
out vec3 TexCoords;
|
|
||||||
|
|
||||||
layout(std140, binding = 0) uniform Camera
|
|
||||||
{
|
|
||||||
mat4 projection;
|
|
||||||
mat4 view;
|
|
||||||
vec3 position;
|
|
||||||
} camera;
|
|
||||||
|
|
||||||
void main()
|
|
||||||
{
|
|
||||||
TexCoords = pos;
|
|
||||||
gl_Position = camera.projection * mat4(mat3(camera.view)) * vec4(pos, 1.0);
|
|
||||||
}
|
|
77
src/main.cpp
77
src/main.cpp
|
@ -264,72 +264,6 @@ int main(void)
|
||||||
bulbShader.load(GL_FRAGMENT_SHADER, "shaders/bulb.frag");
|
bulbShader.load(GL_FRAGMENT_SHADER, "shaders/bulb.frag");
|
||||||
bulbShader.link();
|
bulbShader.link();
|
||||||
|
|
||||||
// Вершины для скайбокса
|
|
||||||
glm::vec3 skybox_verticies[] = {
|
|
||||||
{-1.0f, 1.0f, -1.0f},
|
|
||||||
{-1.0f, -1.0f, -1.0f},
|
|
||||||
{ 1.0f, -1.0f, -1.0f},
|
|
||||||
{ 1.0f, -1.0f, -1.0f},
|
|
||||||
{ 1.0f, 1.0f, -1.0f},
|
|
||||||
{-1.0f, 1.0f, -1.0f},
|
|
||||||
|
|
||||||
{-1.0f, -1.0f, 1.0f},
|
|
||||||
{-1.0f, -1.0f, -1.0f},
|
|
||||||
{-1.0f, 1.0f, -1.0f},
|
|
||||||
{-1.0f, 1.0f, -1.0f},
|
|
||||||
{-1.0f, 1.0f, 1.0f},
|
|
||||||
{-1.0f, -1.0f, 1.0f},
|
|
||||||
|
|
||||||
{ 1.0f, -1.0f, -1.0f},
|
|
||||||
{ 1.0f, -1.0f, 1.0f},
|
|
||||||
{ 1.0f, 1.0f, 1.0f},
|
|
||||||
{ 1.0f, 1.0f, 1.0f},
|
|
||||||
{ 1.0f, 1.0f, -1.0f},
|
|
||||||
{ 1.0f, -1.0f, -1.0f},
|
|
||||||
|
|
||||||
{-1.0f, -1.0f, 1.0f},
|
|
||||||
{-1.0f, 1.0f, 1.0f},
|
|
||||||
{ 1.0f, 1.0f, 1.0f},
|
|
||||||
{ 1.0f, 1.0f, 1.0f},
|
|
||||||
{ 1.0f, -1.0f, 1.0f},
|
|
||||||
{-1.0f, -1.0f, 1.0f},
|
|
||||||
|
|
||||||
{-1.0f, 1.0f, -1.0f},
|
|
||||||
{ 1.0f, 1.0f, -1.0f},
|
|
||||||
{ 1.0f, 1.0f, 1.0f},
|
|
||||||
{ 1.0f, 1.0f, 1.0f},
|
|
||||||
{-1.0f, 1.0f, 1.0f},
|
|
||||||
{-1.0f, 1.0f, -1.0f},
|
|
||||||
|
|
||||||
{-1.0f, -1.0f, -1.0f},
|
|
||||||
{-1.0f, -1.0f, 1.0f},
|
|
||||||
{ 1.0f, -1.0f, -1.0f},
|
|
||||||
{ 1.0f, -1.0f, -1.0f},
|
|
||||||
{-1.0f, -1.0f, 1.0f},
|
|
||||||
{ 1.0f, -1.0f, 1.0f}
|
|
||||||
};
|
|
||||||
// Модель скайбокса
|
|
||||||
Model skybox;
|
|
||||||
skybox.load_verteces(skybox_verticies, sizeof(skybox_verticies)/sizeof(glm::vec3));
|
|
||||||
TextureCube skybox_texture(TEX_DIFFUSE, { "../resources/textures/skybox/px.jpg"
|
|
||||||
, "../resources/textures/skybox/nx.jpg"
|
|
||||||
, "../resources/textures/skybox/py.jpg"
|
|
||||||
, "../resources/textures/skybox/ny.jpg"
|
|
||||||
, "../resources/textures/skybox/pz.jpg"
|
|
||||||
, "../resources/textures/skybox/nz.jpg"
|
|
||||||
});
|
|
||||||
|
|
||||||
// Шейдер для скайбокса
|
|
||||||
ShaderProgram skyboxShader;
|
|
||||||
// Загрузим шейдеры
|
|
||||||
skyboxShader.load(GL_VERTEX_SHADER, "shaders/skybox.vert");
|
|
||||||
skyboxShader.load(GL_FRAGMENT_SHADER, "shaders/skybox.frag");
|
|
||||||
skyboxShader.link();
|
|
||||||
// Привязка текстуры скайбокса
|
|
||||||
const char* skybox_shader_names[] = {"skybox"};
|
|
||||||
skyboxShader.bindTextures(skybox_shader_names, sizeof(skybox_shader_names)/sizeof(const char*));
|
|
||||||
|
|
||||||
|
|
||||||
// Пока не произойдет событие запроса закрытия окна
|
// Пока не произойдет событие запроса закрытия окна
|
||||||
while(!glfwWindowShouldClose(window))
|
while(!glfwWindowShouldClose(window))
|
||||||
{
|
{
|
||||||
|
@ -388,17 +322,6 @@ int main(void)
|
||||||
glBlitFramebuffer(0, 0, WINDOW_WIDTH, WINDOW_HEIGHT, 0, 0, WINDOW_WIDTH, WINDOW_HEIGHT, GL_DEPTH_BUFFER_BIT, GL_NEAREST);
|
glBlitFramebuffer(0, 0, WINDOW_WIDTH, WINDOW_HEIGHT, 0, 0, WINDOW_WIDTH, WINDOW_HEIGHT, GL_DEPTH_BUFFER_BIT, GL_NEAREST);
|
||||||
FBO::useDefault(); // Использование базового буфера для дальнейших работ
|
FBO::useDefault(); // Использование базового буфера для дальнейших работ
|
||||||
|
|
||||||
// Отрисовка скайбокса без записи глубины
|
|
||||||
glDepthMask(GL_FALSE);
|
|
||||||
// Используем шейдер для скайбокса
|
|
||||||
skyboxShader.use();
|
|
||||||
// Подключаем текстуру скайбокса
|
|
||||||
skybox_texture.use();
|
|
||||||
// Рендерим куб
|
|
||||||
skybox.render();
|
|
||||||
// Возвращаем запись глубины
|
|
||||||
glDepthMask(GL_TRUE);
|
|
||||||
|
|
||||||
// Отрисовка отладочных лампочек со специальным шейдером
|
// Отрисовка отладочных лампочек со специальным шейдером
|
||||||
bulbShader.use();
|
bulbShader.use();
|
||||||
Light::render(bulbShader, material_data);
|
Light::render(bulbShader, material_data);
|
||||||
|
|
Loading…
Reference in New Issue