Compare commits

...

2 Commits

15 changed files with 3000 additions and 199510 deletions

3
.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule "src/assimp"]
path = src/assimp
url = git@github.com:assimp/assimp

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 MiB

View File

@ -1,16 +0,0 @@
# Blender MTL File: 'None'
# Material Count: 1
newmtl Scene_-_Root
Ns 225.000000
Ka 1.000000 1.000000 1.000000
Kd 0.800000 0.800000 0.800000
Ks 0.500000 0.500000 0.500000
Ke 0.0 0.0 0.0
Ni 1.450000
d 1.000000
illum 2
map_Kd diffuse.jpg
map_Bump normal.png
map_Ks specular.jpg

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 MiB

View File

@ -1,3 +0,0 @@
Model by Berk Gedik, from: https://sketchfab.com/3d-models/survival-guitar-backpack-low-poly-799f8c4511f84fab8c3f12887f7e6b36
Modified material assignment (Joey de Vries) for easier load in OpenGL model loading chapter, and renamed albedo to diffuse and metallic to specular to match non-PBR lighting setup.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 MiB

BIN
models/suzanne/diffuse.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

BIN
models/suzanne/specular.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 526 KiB

View File

@ -0,0 +1,12 @@
# Blender 4.3.2 MTL File: 'None'
# www.blender.org
newmtl Material
Ka 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
map_Kd diffuse.png
map_Ks specular.png

2977
models/suzanne/suzanne.obj Normal file

File diff suppressed because it is too large Load Diff

@ -1 +1 @@
Subproject commit 258cdfd2bc29a920bbe749962abbcd58caa76422 Subproject commit c35200e38ea8f058812b83de2ef32c6093b0ece2

View File

@ -164,8 +164,6 @@ int main() {
SDL_SetRelativeMouseMode(SDL_TRUE); SDL_SetRelativeMouseMode(SDL_TRUE);
SDL_WarpMouseInWindow(window, WINDOW_HALF_WIDTH, WINDOW_HALF_HEIGHT); SDL_WarpMouseInWindow(window, WINDOW_HALF_WIDTH, WINDOW_HALF_HEIGHT);
stbi_set_flip_vertically_on_load(true);
glViewport(0, 0, WINDOW_WIDTH, WINDOW_HEIGHT); glViewport(0, 0, WINDOW_WIDTH, WINDOW_HEIGHT);
glEnable(GL_DEPTH_TEST); glEnable(GL_DEPTH_TEST);
@ -213,7 +211,7 @@ int main() {
13, 15, 16 13, 15, 16
}; };
Model backpack = {"models/backpack/backpack.obj"}; Model backpack = {"models/suzanne/suzanne.obj"};
Mesh light = {vertices, indices, {}}; Mesh light = {vertices, indices, {}};
Shader main_shader {"shaders/vert.glsl", "shaders/frag.glsl"}; Shader main_shader {"shaders/vert.glsl", "shaders/frag.glsl"};
@ -244,18 +242,18 @@ int main() {
glm::vec3( 0.7f, 0.2f, 2.0f), glm::vec3( 0.7f, 0.2f, 2.0f),
glm::vec3( 2.3f, -3.3f, -4.0f), glm::vec3( 2.3f, -3.3f, -4.0f),
glm::vec3(-4.0f, 2.0f, -12.0f), glm::vec3(-4.0f, 2.0f, -12.0f),
glm::vec3( 0.0f, 0.0f, -3.0f) glm::vec3( 1.0f, 0.0f, -18.0f)
}; };
// Setup lights // Setup lights
main_shader.set_vec3("directional_light.direction", glm::vec3(-0.2f, -1.0f, -0.3f)); main_shader.set_vec3("directional_light.direction", glm::vec3(-0.2f, -1.0f, -0.3f));
main_shader.set_vec3("directional_light.ambient", light_ambient); main_shader.set_vec3("directional_light.ambient", light_ambient);
main_shader.set_vec3("directional_light.diffuse", light_diffuse); main_shader.set_vec3("directional_light.diffuse", light_diffuse * 0.25f);
main_shader.set_vec3("directional_light.specular", light_specular); main_shader.set_vec3("directional_light.specular", light_specular);
main_shader.set_vec3("spot_light.ambient", light_ambient); main_shader.set_vec3("spot_light.ambient", light_ambient);
main_shader.set_vec3("spot_light.diffuse", light_diffuse); main_shader.set_vec3("spot_light.diffuse", light_diffuse * 0.5f);
main_shader.set_vec3("spot_light.specular", light_specular); main_shader.set_vec3("spot_light.specular", light_specular * 0.25f);
for (int i = 0; i < point_light_positions.size(); ++i) { for (int i = 0; i < point_light_positions.size(); ++i) {
char base[256] = {0}; char base[256] = {0};
@ -278,8 +276,8 @@ int main() {
main_shader.set_vec3(position, point_light_positions[i]); main_shader.set_vec3(position, point_light_positions[i]);
main_shader.set_vec3(ambient, light_ambient); main_shader.set_vec3(ambient, light_ambient);
main_shader.set_vec3(diffuse, light_diffuse); main_shader.set_vec3(diffuse, light_diffuse * 0.25f);
main_shader.set_vec3(specular, light_specular); main_shader.set_vec3(specular, light_specular * 0.5f);
main_shader.set_float(constant, 1.0f); main_shader.set_float(constant, 1.0f);
main_shader.set_float(linear, 0.09f); main_shader.set_float(linear, 0.09f);
main_shader.set_float(quadratic, 0.032f); main_shader.set_float(quadratic, 0.032f);