Рефакторинг лабы 2, добавлен пункт 1 по методичке
This commit is contained in:
@@ -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.
@@ -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
@@ -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);
|
||||
}
|
@@ -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.
@@ -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
|
4614
lab2/res/snowman.obj
4614
lab2/res/snowman.obj
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@@ -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
|
229
lab2/res/xyz.obj
229
lab2/res/xyz.obj
@@ -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
|
@@ -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
|
||||
|
@@ -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;
|
@@ -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
|
Reference in New Issue
Block a user