Добавлен ресурсы пункта 1 по методичке для лабы 2

This commit is contained in:
vlad 2023-04-06 16:36:22 +03:00
parent e8fe646155
commit b6a9f07e8b
7 changed files with 128221 additions and 0 deletions

View File

@ -0,0 +1,75 @@
//
// Created by vlad on 23.03.23.
//
#include "render.h"
#include "../graphics/MeshLoader.h"
#include "../graphics/Shader.h"
#include <glm/ext/matrix_transform.hpp>
static Mesh* mesh_xyz;
static Mesh* mesh_sphere;
static Mesh* mesh_cone;
static Shader* shader;
void renderScene(Camera& cam) {
auto projview = cam.getProjection() * cam.getView();
shader->use();
shader->uniformMatrix("projview", projview);
// мировой центр
shader->uniformMatrix("model", glm::mat4(1.0f));
mesh_xyz->draw();
// снеговик, типа в ряд по частям по оси X
mesh_sphere->draw();
auto translate = glm::translate(glm::mat4(1.0f), glm::vec3(2, 0 ,0));
auto scale_0_5 = glm::scale(glm::mat4(1.0f), glm::vec3(0.5, 0.5 ,0.5));
shader->uniformMatrix("model", translate * scale_0_5);
mesh_sphere->draw();
shader->uniformMatrix("model", translate * translate * scale_0_5 * scale_0_5);
mesh_sphere->draw();
shader->uniformMatrix("model", translate * translate * translate * scale_0_5);
mesh_cone->draw();
}
int loadResources() {
mesh_xyz = MeshLoader::loadMesh("res/xyz");
if (mesh_xyz == nullptr) {
std::cerr << "Failed to load 'xyz' mesh!" << std::endl;
return -1;
}
mesh_sphere = MeshLoader::loadMesh("res/sphere");
if (mesh_sphere == nullptr) {
std::cerr << "Failed to load 'sphere' mesh!" << std::endl;
return -1;
}
mesh_cone = MeshLoader::loadMesh("res/cone");
if (mesh_cone == nullptr) {
std::cerr << "Failed to load 'cone' mesh!" << std::endl;
return -1;
}
shader = Shader::loadShader("res/main-colored.vsh", "res/main-colored.fsh");
if (shader == nullptr) {
return -1;
}
return 0;
}
void unloadResources() {
delete mesh_xyz;
delete mesh_cone;
delete mesh_sphere;
delete shader;
}

12
res/cone.mtl Normal file
View File

@ -0,0 +1,12 @@
# Blender MTL File: 'None'
# Material Count: 1
newmtl Material.002
Ns 250.000000
Ka 1.000000 1.000000 1.000000
Kd 0.800000 0.028972 0.000000
Ks 0.500000 0.500000 0.500000
Ke 0.000000 0.000000 0.000000
Ni 1.450000
d 1.000000
illum 2

134
res/cone.obj Normal file
View File

@ -0,0 +1,134 @@
# Blender v3.4.1 OBJ File: ''
# www.blender.org
mtllib cone.mtl
o Cone
v 0.000000 -1.000000 -1.000000
v 0.195090 -1.000000 -0.980785
v 0.382683 -1.000000 -0.923880
v 0.555570 -1.000000 -0.831470
v 0.707107 -1.000000 -0.707107
v 0.831470 -1.000000 -0.555570
v 0.923880 -1.000000 -0.382683
v 0.980785 -1.000000 -0.195090
v 1.000000 -1.000000 0.000000
v 0.980785 -1.000000 0.195090
v 0.923880 -1.000000 0.382683
v 0.831470 -1.000000 0.555570
v 0.707107 -1.000000 0.707107
v 0.555570 -1.000000 0.831470
v 0.382683 -1.000000 0.923880
v 0.195090 -1.000000 0.980785
v 0.000000 -1.000000 1.000000
v -0.195090 -1.000000 0.980785
v -0.382683 -1.000000 0.923880
v -0.555570 -1.000000 0.831470
v -0.707107 -1.000000 0.707107
v -0.831470 -1.000000 0.555570
v -0.923880 -1.000000 0.382683
v -0.980785 -1.000000 0.195090
v -1.000000 -1.000000 0.000000
v -0.980785 -1.000000 -0.195090
v -0.923880 -1.000000 -0.382683
v -0.831470 -1.000000 -0.555570
v -0.707107 -1.000000 -0.707107
v -0.555570 -1.000000 -0.831470
v -0.382683 -1.000000 -0.923880
v -0.195090 -1.000000 -0.980785
v 0.000000 1.000000 0.000000
vn 0.0878 0.4455 -0.8910
vn 0.2599 0.4455 -0.8567
vn 0.4220 0.4455 -0.7896
vn 0.5680 0.4455 -0.6921
vn 0.6921 0.4455 -0.5680
vn 0.7896 0.4455 -0.4220
vn 0.8567 0.4455 -0.2599
vn 0.8910 0.4455 -0.0878
vn 0.8910 0.4455 0.0878
vn 0.8567 0.4455 0.2599
vn 0.7896 0.4455 0.4220
vn 0.6921 0.4455 0.5680
vn 0.5680 0.4455 0.6921
vn 0.4220 0.4455 0.7896
vn 0.2599 0.4455 0.8567
vn 0.0878 0.4455 0.8910
vn -0.0878 0.4455 0.8910
vn -0.2599 0.4455 0.8567
vn -0.4220 0.4455 0.7896
vn -0.5680 0.4455 0.6921
vn -0.6921 0.4455 0.5680
vn -0.7896 0.4455 0.4220
vn -0.8567 0.4455 0.2599
vn -0.8910 0.4455 0.0878
vn -0.8910 0.4455 -0.0878
vn -0.8567 0.4455 -0.2599
vn -0.7896 0.4455 -0.4220
vn -0.6921 0.4455 -0.5680
vn -0.5680 0.4455 -0.6921
vn -0.4220 0.4455 -0.7896
vn 0.0000 -1.0000 0.0000
vn -0.2599 0.4455 -0.8567
vn -0.0878 0.4455 -0.8910
usemtl Material.002
s off
f 1//1 33//1 2//1
f 2//2 33//2 3//2
f 3//3 33//3 4//3
f 4//4 33//4 5//4
f 5//5 33//5 6//5
f 6//6 33//6 7//6
f 7//7 33//7 8//7
f 8//8 33//8 9//8
f 9//9 33//9 10//9
f 10//10 33//10 11//10
f 11//11 33//11 12//11
f 12//12 33//12 13//12
f 13//13 33//13 14//13
f 14//14 33//14 15//14
f 15//15 33//15 16//15
f 16//16 33//16 17//16
f 17//17 33//17 18//17
f 18//18 33//18 19//18
f 19//19 33//19 20//19
f 20//20 33//20 21//20
f 21//21 33//21 22//21
f 22//22 33//22 23//22
f 23//23 33//23 24//23
f 24//24 33//24 25//24
f 25//25 33//25 26//25
f 26//26 33//26 27//26
f 27//27 33//27 28//27
f 28//28 33//28 29//28
f 29//29 33//29 30//29
f 30//30 33//30 31//30
f 16//31 24//31 32//31
f 31//32 33//32 32//32
f 32//33 33//33 1//33
f 32//31 1//31 2//31
f 2//31 3//31 4//31
f 4//31 5//31 6//31
f 6//31 7//31 8//31
f 8//31 9//31 10//31
f 10//31 11//31 12//31
f 12//31 13//31 14//31
f 14//31 15//31 16//31
f 16//31 17//31 18//31
f 18//31 19//31 20//31
f 20//31 21//31 22//31
f 22//31 23//31 24//31
f 24//31 25//31 26//31
f 26//31 27//31 28//31
f 28//31 29//31 30//31
f 30//31 31//31 32//31
f 32//31 2//31 8//31
f 2//31 4//31 8//31
f 4//31 6//31 8//31
f 8//31 10//31 16//31
f 10//31 12//31 16//31
f 12//31 14//31 16//31
f 16//31 18//31 24//31
f 18//31 20//31 24//31
f 20//31 22//31 24//31
f 24//31 26//31 32//31
f 26//31 28//31 32//31
f 28//31 30//31 32//31
f 32//31 8//31 16//31

12
res/sphere.mtl Normal file
View File

@ -0,0 +1,12 @@
# Blender MTL File: 'None'
# Material Count: 1
newmtl Material.001
Ns 250.000000
Ka 1.000000 1.000000 1.000000
Kd 0.355321 0.510855 1.000000
Ks 0.500000 0.500000 0.500000
Ke 0.000000 0.000000 0.000000
Ni 1.450000
d 1.000000
illum 2

1987
res/sphere.obj Normal file

File diff suppressed because it is too large Load Diff

92
res/table.mtl Normal file
View File

@ -0,0 +1,92 @@
# Blender MTL File: 'None'
# Material Count: 9
newmtl ShaderfxShader2
Ns 199.999995
Ka 1.000000 1.000000 1.000000
Kd 1.000000 1.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 ShaderfxShader3
Ns 199.999995
Ka 1.000000 1.000000 1.000000
Kd 1.000000 1.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 ShaderfxShader4
Ns 199.999995
Ka 1.000000 1.000000 1.000000
Kd 1.000000 1.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 lambert10
Ns 199.999995
Ka 1.000000 1.000000 1.000000
Kd 0.500000 0.500000 0.500000
Ks 0.500000 0.500000 0.500000
Ke 0.000000 0.000000 0.000000
Ni 1.450000
d 1.000000
illum 2
newmtl lambert11
Ns 199.999995
Ka 1.000000 1.000000 1.000000
Kd 0.142857 0.142857 0.142857
Ks 0.500000 0.500000 0.500000
Ke 0.000000 0.000000 0.000000
Ni 1.450000
d 1.000000
illum 2
newmtl lambert12
Ns 199.999995
Ka 1.000000 1.000000 1.000000
Kd 0.201299 0.201299 0.201299
Ks 0.500000 0.500000 0.500000
Ke 0.000000 0.000000 0.000000
Ni 1.450000
d 1.000000
illum 2
newmtl phong1
Ns 199.999995
Ka 0.500000 0.500000 0.500000
Kd 0.500000 0.500000 0.500000
Ks 0.500000 0.500000 0.500000
Ke 0.000000 0.000000 0.000000
Ni 1.450000
d 1.000000
illum 3
newmtl standardSurface4
Ns 199.999995
Ka 1.000000 1.000000 1.000000
Kd 1.000000 1.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 three
Ns 199.999995
Ka 1.000000 1.000000 1.000000
Kd 0.076125 0.017521 0.000000
Ks 0.500000 0.500000 0.500000
Ke 0.000000 0.000000 0.000000
Ni 1.450000
d 1.000000
illum 2

125909
res/table.obj Normal file

File diff suppressed because it is too large Load Diff