Рефакторинг лабы 2, добавлен пункт 1 по методичке

This commit is contained in:
2023-04-06 16:35:39 +03:00
parent 1c7ef19ec8
commit e8fe646155
15 changed files with 26 additions and 11 deletions

View File

@@ -8,9 +8,9 @@ find_package(GLEW REQUIRED)
find_package(OpenGL REQUIRED)
find_package(glm REQUIRED)
add_executable(
${PROJECT_NAME}
set(LIBS glfw GLEW::GLEW OpenGL::GL)
set(CORE_SOURCES
src/main.cpp
src/window/Camera.cpp
src/window/Camera.h
@@ -22,8 +22,14 @@ add_executable(
src/graphics/Mesh.cpp
src/graphics/Shader.h
src/graphics/Shader.cpp
src/graphics/MeshLoader.cpp src/graphics/MeshLoader.h src/render.cpp src/render.h)
src/graphics/MeshLoader.cpp
src/graphics/MeshLoader.h
src/render/render.h)
add_executable(${PROJECT_NAME}_main ${CORE_SOURCES} src/render/render.cpp)
target_link_libraries(${PROJECT_NAME}_main ${LIBS})
add_executable(${PROJECT_NAME}_1 ${CORE_SOURCES} src/render/render-1.cpp)
target_link_libraries(${PROJECT_NAME}_1 ${LIBS})
target_link_libraries(${PROJECT_NAME} glfw)
target_link_libraries(${PROJECT_NAME} GLEW::GLEW)
target_link_libraries(${PROJECT_NAME} OpenGL::GL)

Binary file not shown.

View File

@@ -1,52 +0,0 @@
# Blender MTL File: 'christmas-tree.blend'
# Material Count: 5
newmtl Balls-1
Ns 250.000000
Ka 1.000000 1.000000 1.000000
Kd 0.800000 0.048409 0.471644
Ks 0.500000 0.500000 0.500000
Ke 0.000000 0.000000 0.000000
Ni 1.450000
d 1.000000
illum 2
newmtl Balls-2
Ns 250.000000
Ka 1.000000 1.000000 1.000000
Kd 0.000000 0.032897 0.800000
Ks 0.500000 0.500000 0.500000
Ke 0.000000 0.000000 0.000000
Ni 1.450000
d 1.000000
illum 2
newmtl Green
Ns 250.000000
Ka 1.000000 1.000000 1.000000
Kd 0.055518 0.308912 0.004670
Ks 0.500000 0.500000 0.500000
Ke 0.000000 0.000000 0.000000
Ni 1.450000
d 1.000000
illum 2
newmtl TopFigure
Ns 250.000000
Ka 1.000000 1.000000 1.000000
Kd 1.000000 0.859637 0.000000
Ks 0.500000 0.500000 0.500000
Ke 0.000000 0.000000 0.000000
Ni 1.450000
d 1.000000
illum 2
newmtl Trunc
Ns 250.000000
Ka 1.000000 1.000000 1.000000
Kd 0.206980 0.078561 0.032670
Ks 0.500000 0.500000 0.500000
Ke 0.000000 0.000000 0.000000
Ni 1.450000
d 1.000000
illum 2

File diff suppressed because it is too large Load Diff

View File

@@ -1,24 +0,0 @@
#version 330 core
in vec4 fragColor;
in vec3 fragPos;
in vec3 fragNormal;
out vec4 f_color;
float map(float value, float min1, float max1, float min2, float max2) {
return min2 + (value - min1) * (max2 - min2) / (max1 - min1);
}
void main(){
vec3 lightColor = vec3(1, 1, 1);
vec3 lightDir = vec3(1, 1, 1);
// диффузное освещение
// dot получается [-1 ... 1]
float diff = dot(normalize(fragNormal), normalize(lightDir));
// теперь делаем диапазон [0.2 ... 1]
diff = map(diff, -1, 1, 0.2, 1);
f_color = vec4(diff * lightColor * fragColor.rgb, fragColor.a);
}

View File

@@ -1,21 +0,0 @@
#version 330 core
layout (location = 0) in vec3 v_position;
layout (location = 1) in vec3 v_normal;
layout (location = 2) in vec3 v_color;
out vec4 fragColor;
out vec3 fragPos;
out vec3 fragNormal;
uniform mat4 projview;
uniform mat4 model;
void main(){
// gl_Position = vec4(v_position, 1) * projview;
fragPos = vec3(model * vec4(v_position, 1.0));
gl_Position = projview * vec4(fragPos, 1.0);
fragNormal = mat3(transpose(inverse(model))) * v_normal;
fragColor = vec4(v_color, 1);
}

Binary file not shown.

View File

@@ -1,42 +0,0 @@
# Blender MTL File: 'snowman.blend'
# Material Count: 4
newmtl Body-0
Ns 250.000000
Ka 1.000000 1.000000 1.000000
Kd 0.041092 0.800000 0.056051
Ks 0.500000 0.500000 0.500000
Ke 0.000000 0.000000 0.000000
Ni 1.450000
d 1.000000
illum 2
newmtl Body-1
Ns 250.000000
Ka 1.000000 1.000000 1.000000
Kd 0.249637 0.165539 0.800000
Ks 0.500000 0.500000 0.500000
Ke 0.000000 0.000000 0.000000
Ni 1.450000
d 1.000000
illum 2
newmtl Face
Ns 250.000000
Ka 1.000000 1.000000 1.000000
Kd 0.800000 0.116962 0.000000
Ks 0.500000 0.500000 0.500000
Ke 0.000000 0.000000 0.000000
Ni 1.450000
d 1.000000
illum 2
newmtl Neck
Ns 250.000000
Ka 1.000000 1.000000 1.000000
Kd 0.800000 0.000000 0.626632
Ks 0.500000 0.500000 0.500000
Ke 0.000000 0.000000 0.000000
Ni 1.450000
d 1.000000
illum 2

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -1,42 +0,0 @@
# Blender MTL File: 'xyz.blend'
# Material Count: 4
newmtl Blue
Ns 250.000000
Ka 1.000000 1.000000 1.000000
Kd 0.000000 0.000000 1.000000
Ks 0.500000 0.500000 0.500000
Ke 0.000000 0.000000 0.000000
Ni 1.450000
d 1.000000
illum 2
newmtl Green
Ns 250.000000
Ka 1.000000 1.000000 1.000000
Kd 0.000000 1.000000 0.000000
Ks 0.500000 0.500000 0.500000
Ke 0.000000 0.000000 0.000000
Ni 1.450000
d 1.000000
illum 2
newmtl Red
Ns 250.000000
Ka 1.000000 1.000000 1.000000
Kd 1.000000 0.000000 0.000000
Ks 0.500000 0.500000 0.500000
Ke 0.000000 0.000000 0.000000
Ni 1.450000
d 1.000000
illum 2
newmtl center_color
Ns 250.000000
Ka 1.000000 1.000000 1.000000
Kd 0.800000 0.043866 0.393530
Ks 0.500000 0.500000 0.500000
Ke 0.000000 0.000000 0.000000
Ni 1.450000
d 1.000000
illum 2

View File

@@ -1,229 +0,0 @@
# Blender v3.4.1 OBJ File: 'xyz.blend'
# www.blender.org
mtllib xyz.mtl
o DirY_y
v -0.000000 1.000000 0.000000
v 0.038239 0.900000 0.038239
v 0.038239 0.900000 -0.038239
v -0.038239 0.900000 -0.038239
v -0.038239 0.900000 0.038239
v 0.078238 0.900000 0.078239
v 0.078238 0.900000 -0.078239
v -0.078239 0.900000 -0.078239
v -0.078239 0.900000 0.078239
v 0.038239 0.050702 0.038239
v 0.038239 0.050702 -0.038239
v -0.038239 0.050702 -0.038239
v -0.038239 0.050702 0.038239
vt 0.500000 0.000000
vt 0.625000 0.250000
vt 0.375000 0.250000
vt 0.375000 0.500000
vt 0.625000 0.500000
vt 0.500000 0.875000
vt 0.125000 0.500000
vt 0.875000 0.500000
vt 0.412763 0.500000
vt 0.587237 0.500000
vt 0.587237 0.500000
vt 0.342866 0.500000
vt 0.657135 0.500000
vt 0.412763 0.500000
vt 0.657135 0.500000
vt 0.342866 0.500000
vn 0.7876 0.6162 0.0000
vn -0.7876 0.6162 0.0000
vn 0.0000 0.6162 -0.7876
vn 0.0000 0.6162 0.7876
vn -1.0000 -0.0000 0.0000
vn 0.0000 -1.0000 0.0000
vn 0.0000 0.0000 -1.0000
vn 0.0000 0.0000 1.0000
vn 1.0000 0.0000 0.0000
usemtl Green
s off
f 1/1/1 6/2/1 7/3/1
f 8/4/2 9/5/2 1/6/2
f 7/7/3 8/4/3 1/6/3
f 9/5/4 6/8/4 1/6/4
f 4/9/5 13/10/5 5/11/5
f 3/12/6 6/8/6 2/13/6
f 4/9/6 7/7/6 3/12/6
f 2/13/6 9/5/6 5/11/6
f 5/11/6 8/4/6 4/9/6
f 3/12/7 12/14/7 4/9/7
f 5/11/8 10/15/8 2/13/8
f 2/13/9 11/16/9 3/12/9
f 4/9/5 12/14/5 13/10/5
f 3/12/6 7/7/6 6/8/6
f 4/9/6 8/4/6 7/7/6
f 2/13/6 6/8/6 9/5/6
f 5/11/6 9/5/6 8/4/6
f 3/12/7 11/16/7 12/14/7
f 5/11/8 13/10/8 10/15/8
f 2/13/9 10/15/9 11/16/9
o center_Cube
v -0.060000 -0.060000 -0.060000
v -0.060000 -0.060000 0.060000
v -0.060000 0.060000 -0.060000
v -0.060000 0.060000 0.060000
v 0.060000 -0.060000 -0.060000
v 0.060000 -0.060000 0.060000
v 0.060000 0.060000 -0.060000
v 0.060000 0.060000 0.060000
vt 0.625000 0.000000
vt 0.375000 0.250000
vt 0.375000 0.000000
vt 0.625000 0.250000
vt 0.375000 0.500000
vt 0.625000 0.500000
vt 0.375000 0.750000
vt 0.625000 0.750000
vt 0.375000 1.000000
vt 0.125000 0.750000
vt 0.125000 0.500000
vt 0.875000 0.500000
vt 0.625000 1.000000
vt 0.875000 0.750000
vn -1.0000 0.0000 0.0000
vn 0.0000 1.0000 0.0000
vn 1.0000 0.0000 0.0000
vn 0.0000 -1.0000 0.0000
vn 0.0000 0.0000 -1.0000
vn 0.0000 0.0000 1.0000
usemtl center_color
s off
f 15/17/10 16/18/10 14/19/10
f 17/20/11 20/21/11 16/18/11
f 21/22/12 18/23/12 20/21/12
f 19/24/13 14/25/13 18/23/13
f 20/21/14 14/26/14 16/27/14
f 17/28/15 19/24/15 21/22/15
f 15/17/10 17/20/10 16/18/10
f 17/20/11 21/22/11 20/21/11
f 21/22/12 19/24/12 18/23/12
f 19/24/13 15/29/13 14/25/13
f 20/21/14 18/23/14 14/26/14
f 17/28/15 15/30/15 19/24/15
o DirZ_z
v -0.000000 -0.000000 1.000000
v 0.038239 -0.038239 0.900000
v 0.038238 0.038239 0.900000
v -0.038239 0.038239 0.900000
v -0.038239 -0.038239 0.900000
v 0.078239 -0.078239 0.900000
v 0.078238 0.078239 0.900000
v -0.078239 0.078239 0.900000
v -0.078239 -0.078239 0.900000
v 0.038239 -0.038239 0.050702
v 0.038239 0.038239 0.050702
v -0.038239 0.038239 0.050702
v -0.038239 -0.038239 0.050702
vt 0.500000 0.000000
vt 0.625000 0.250000
vt 0.375000 0.250000
vt 0.375000 0.500000
vt 0.625000 0.500000
vt 0.500000 0.875000
vt 0.125000 0.500000
vt 0.875000 0.500000
vt 0.412763 0.500000
vt 0.587237 0.500000
vt 0.587237 0.500000
vt 0.342866 0.500000
vt 0.657135 0.500000
vt 0.412763 0.500000
vt 0.657135 0.500000
vt 0.342866 0.500000
vn 0.7876 0.0000 0.6162
vn -0.7876 -0.0000 0.6162
vn 0.0000 0.7876 0.6162
vn 0.0000 -0.7876 0.6162
vn -1.0000 -0.0000 -0.0000
vn -0.0000 0.0000 -1.0000
vn -0.0000 1.0000 0.0000
vn 0.0000 -1.0000 -0.0000
vn 1.0000 0.0000 0.0000
usemtl Blue
s off
f 22/31/16 27/32/16 28/33/16
f 29/34/17 30/35/17 22/36/17
f 28/37/18 29/34/18 22/36/18
f 30/35/19 27/38/19 22/36/19
f 25/39/20 34/40/20 26/41/20
f 24/42/21 27/38/21 23/43/21
f 25/39/21 28/37/21 24/42/21
f 23/43/21 30/35/21 26/41/21
f 26/41/21 29/34/21 25/39/21
f 24/42/22 33/44/22 25/39/22
f 26/41/23 31/45/23 23/43/23
f 23/43/24 32/46/24 24/42/24
f 25/39/20 33/44/20 34/40/20
f 24/42/21 28/37/21 27/38/21
f 25/39/21 29/34/21 28/37/21
f 23/43/21 27/38/21 30/35/21
f 26/41/21 30/35/21 29/34/21
f 24/42/22 32/46/22 33/44/22
f 26/41/23 34/40/23 31/45/23
f 23/43/24 31/45/24 32/46/24
o DirX_x
v 1.000000 0.000000 0.000000
v 0.900000 -0.038239 0.038239
v 0.900000 -0.038239 -0.038239
v 0.900000 0.038239 -0.038239
v 0.900000 0.038239 0.038239
v 0.900000 -0.078239 0.078239
v 0.900000 -0.078239 -0.078239
v 0.900000 0.078239 -0.078239
v 0.900000 0.078239 0.078239
v 0.050702 -0.038239 0.038239
v 0.050702 -0.038239 -0.038239
v 0.050702 0.038239 -0.038239
v 0.050702 0.038239 0.038239
vt 0.500000 0.000000
vt 0.625000 0.250000
vt 0.375000 0.250000
vt 0.375000 0.500000
vt 0.625000 0.500000
vt 0.500000 0.875000
vt 0.125000 0.500000
vt 0.875000 0.500000
vt 0.412763 0.500000
vt 0.587237 0.500000
vt 0.587237 0.500000
vt 0.342866 0.500000
vt 0.657135 0.500000
vt 0.412763 0.500000
vt 0.657135 0.500000
vt 0.342866 0.500000
vn 0.6162 -0.7876 0.0000
vn 0.6162 0.7876 0.0000
vn 0.6162 0.0000 -0.7876
vn 0.6162 0.0000 0.7876
vn -0.0000 1.0000 0.0000
vn -1.0000 -0.0000 0.0000
vn 0.0000 0.0000 -1.0000
vn -0.0000 0.0000 1.0000
vn 0.0000 -1.0000 0.0000
usemtl Red
s off
f 35/47/25 40/48/25 41/49/25
f 42/50/26 43/51/26 35/52/26
f 41/53/27 42/50/27 35/52/27
f 43/51/28 40/54/28 35/52/28
f 38/55/29 47/56/29 39/57/29
f 37/58/30 40/54/30 36/59/30
f 38/55/30 41/53/30 37/58/30
f 36/59/30 43/51/30 39/57/30
f 39/57/30 42/50/30 38/55/30
f 37/58/31 46/60/31 38/55/31
f 39/57/32 44/61/32 36/59/32
f 36/59/33 45/62/33 37/58/33
f 38/55/29 46/60/29 47/56/29
f 37/58/30 41/53/30 40/54/30
f 38/55/30 42/50/30 41/53/30
f 36/59/30 40/54/30 43/51/30
f 39/57/30 43/51/30 42/50/30
f 37/58/31 45/62/31 46/60/31
f 39/57/32 47/56/32 44/61/32
f 36/59/33 44/61/33 45/62/33

View File

@@ -18,7 +18,7 @@
#include "window/Events.h"
#include "graphics/Mesh.h"
#include "graphics/Shader.h"
#include "render.h"
#include "render/render.h"
#define SPEED_FACTOR 2.5f

View File

@@ -3,14 +3,15 @@
//
#include "render.h"
#include "graphics/MeshLoader.h"
#include "graphics/Shader.h"
#include "../graphics/MeshLoader.h"
#include "../graphics/Shader.h"
#include <glm/ext/matrix_transform.hpp>
static Mesh* mesh_xyz;
static Mesh* mesh_snowman;
static Mesh* mesh_three;
static Mesh* mesh_table;
static Shader* shader;
@@ -58,6 +59,8 @@ void renderScene(Camera& cam) {
shader->uniformMatrix("model", glm::mat4(1.0f));
mesh_xyz->draw();
mesh_table->draw();
drawStaticSnowman();
drawThree();
}
@@ -81,6 +84,12 @@ int loadResources() {
return -1;
}
mesh_table = MeshLoader::loadMesh("res/table");
if (mesh_table == nullptr) {
std::cerr << "Failed to load 'table' mesh!" << std::endl;
return -1;
}
shader = Shader::loadShader("res/main-colored.vsh", "res/main-colored.fsh");
if (shader == nullptr) {
return -1;
@@ -90,6 +99,7 @@ int loadResources() {
}
void unloadResources() {
delete mesh_table;
delete mesh_xyz;
delete mesh_snowman;
delete mesh_three;

View File

@@ -5,11 +5,10 @@
#ifndef GRAPHICS_LABS_RENDER_H
#define GRAPHICS_LABS_RENDER_H
#include "window/Camera.h"
#include "../window/Camera.h"
int loadResources();
void unloadResources();
void renderScene(Camera& cam);
#endif //GRAPHICS_LABS_RENDER_H