diff --git a/src/main.cpp b/src/main.cpp index 9d73706..455bce1 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -68,7 +68,7 @@ static float volume_sfx = 50.0f; static bool Running = true; static float camera_fovy_degrees = 31.0f; -static float camera_tilt = 25.5f; +static float camera_tilt = 10.0f; static float camera_distance = 13.5f; static mat4x4 view_matrix; diff --git a/src/shaders/spirv/character.spv b/src/shaders/spirv/character.spv index a2ab796..9b779e6 100644 Binary files a/src/shaders/spirv/character.spv and b/src/shaders/spirv/character.spv differ diff --git a/src/shaders/spirv/character_shadow.spv b/src/shaders/spirv/character_shadow.spv index c8add25..7d7b046 100644 Binary files a/src/shaders/spirv/character_shadow.spv and b/src/shaders/spirv/character_shadow.spv differ diff --git a/src/shaders/spirv/tree.spv b/src/shaders/spirv/tree.spv index 5e39881..95a09ae 100644 Binary files a/src/shaders/spirv/tree.spv and b/src/shaders/spirv/tree.spv differ diff --git a/src/shaders/src/character.slang b/src/shaders/src/character.slang index 984db1c..9ea81f6 100644 --- a/src/shaders/src/character.slang +++ b/src/shaders/src/character.slang @@ -37,7 +37,7 @@ VertexShaderOutput main_vertex(VertexShaderInput input) { default: {} } - output.pos = mul(float4(input.world_pos + vertex_pos, 0, 1), view_projection_matrix); + output.pos = mul(float4(input.world_pos + vertex_pos + float2(0, 0.35), 0, 1), view_projection_matrix); uint sprite_x = bitfieldExtract(input.sprite_selection, 16, 16); uint sprite_y = bitfieldExtract(input.sprite_selection, 0, 16); diff --git a/src/shaders/src/character_shadow.slang b/src/shaders/src/character_shadow.slang index d6b29ec..6b62ea7 100644 --- a/src/shaders/src/character_shadow.slang +++ b/src/shaders/src/character_shadow.slang @@ -38,7 +38,7 @@ VertexShaderOutput main_vertex(VertexShaderInput input) { vertex_pos *= 0.5; - output.pos = mul(float4(input.world_pos + vertex_pos + float2(0, -0.35), 0, 1), view_projection_matrix); + output.pos = mul(float4(input.world_pos + vertex_pos, 0, 1), view_projection_matrix); output.uv = vertex_uv; return output; diff --git a/src/shaders/src/tree.slang b/src/shaders/src/tree.slang index 4b2297b..514f54a 100644 --- a/src/shaders/src/tree.slang +++ b/src/shaders/src/tree.slang @@ -23,7 +23,7 @@ struct FragmentShaderOutput { float4 color : SV_Target; }; -static const float2 offset = float2(0, 0.5); +static const float2 offset = float2(0, 0.25); [shader("vertex")] VertexShaderOutput main_vertex(VertexShaderInput input) { diff --git a/src/shaders/wgsl/character.wgsl b/src/shaders/wgsl/character.wgsl index f50d42e..85dbc4b 100644 --- a/src/shaders/wgsl/character.wgsl +++ b/src/shaders/wgsl/character.wgsl @@ -70,7 +70,7 @@ fn main_vertex( _S1 : vertexInput_0, @builtin(vertex_index) vertex_index_0 : u32 vertex_uv_0 = _S2; } } - output_0.pos_0 = (((mat4x4(view_projection_matrix_0.data_0[i32(0)][i32(0)], view_projection_matrix_0.data_0[i32(1)][i32(0)], view_projection_matrix_0.data_0[i32(2)][i32(0)], view_projection_matrix_0.data_0[i32(3)][i32(0)], view_projection_matrix_0.data_0[i32(0)][i32(1)], view_projection_matrix_0.data_0[i32(1)][i32(1)], view_projection_matrix_0.data_0[i32(2)][i32(1)], view_projection_matrix_0.data_0[i32(3)][i32(1)], view_projection_matrix_0.data_0[i32(0)][i32(2)], view_projection_matrix_0.data_0[i32(1)][i32(2)], view_projection_matrix_0.data_0[i32(2)][i32(2)], view_projection_matrix_0.data_0[i32(3)][i32(2)], view_projection_matrix_0.data_0[i32(0)][i32(3)], view_projection_matrix_0.data_0[i32(1)][i32(3)], view_projection_matrix_0.data_0[i32(2)][i32(3)], view_projection_matrix_0.data_0[i32(3)][i32(3)])) * (vec4(_S1.world_pos_0 + vertex_pos_0, 0.0f, 1.0f)))); + output_0.pos_0 = (((mat4x4(view_projection_matrix_0.data_0[i32(0)][i32(0)], view_projection_matrix_0.data_0[i32(1)][i32(0)], view_projection_matrix_0.data_0[i32(2)][i32(0)], view_projection_matrix_0.data_0[i32(3)][i32(0)], view_projection_matrix_0.data_0[i32(0)][i32(1)], view_projection_matrix_0.data_0[i32(1)][i32(1)], view_projection_matrix_0.data_0[i32(2)][i32(1)], view_projection_matrix_0.data_0[i32(3)][i32(1)], view_projection_matrix_0.data_0[i32(0)][i32(2)], view_projection_matrix_0.data_0[i32(1)][i32(2)], view_projection_matrix_0.data_0[i32(2)][i32(2)], view_projection_matrix_0.data_0[i32(3)][i32(2)], view_projection_matrix_0.data_0[i32(0)][i32(3)], view_projection_matrix_0.data_0[i32(1)][i32(3)], view_projection_matrix_0.data_0[i32(2)][i32(3)], view_projection_matrix_0.data_0[i32(3)][i32(3)])) * (vec4(_S1.world_pos_0 + vertex_pos_0 + vec2(0.0f, 0.34999999403953552f), 0.0f, 1.0f)))); output_0.uv_0 = (vec2(f32((u32(_S1.sprite_selection_0>>(u32(16)))&((((u32(1)<>(u32(0)))&((((u32(1)<(0.25f); return output_0; } diff --git a/src/shaders/wgsl/character_shadow.wgsl b/src/shaders/wgsl/character_shadow.wgsl index f08b69d..186115b 100644 --- a/src/shaders/wgsl/character_shadow.wgsl +++ b/src/shaders/wgsl/character_shadow.wgsl @@ -71,7 +71,7 @@ fn main_vertex( _S1 : vertexInput_0, @builtin(vertex_index) vertex_index_0 : u32 vertex_pos_0 = _S2; } } - output_0.pos_0 = (((mat4x4(view_projection_matrix_0.data_0[i32(0)][i32(0)], view_projection_matrix_0.data_0[i32(1)][i32(0)], view_projection_matrix_0.data_0[i32(2)][i32(0)], view_projection_matrix_0.data_0[i32(3)][i32(0)], view_projection_matrix_0.data_0[i32(0)][i32(1)], view_projection_matrix_0.data_0[i32(1)][i32(1)], view_projection_matrix_0.data_0[i32(2)][i32(1)], view_projection_matrix_0.data_0[i32(3)][i32(1)], view_projection_matrix_0.data_0[i32(0)][i32(2)], view_projection_matrix_0.data_0[i32(1)][i32(2)], view_projection_matrix_0.data_0[i32(2)][i32(2)], view_projection_matrix_0.data_0[i32(3)][i32(2)], view_projection_matrix_0.data_0[i32(0)][i32(3)], view_projection_matrix_0.data_0[i32(1)][i32(3)], view_projection_matrix_0.data_0[i32(2)][i32(3)], view_projection_matrix_0.data_0[i32(3)][i32(3)])) * (vec4(_S1.world_pos_0 + vertex_pos_0 * vec2(0.5f) + vec2(0.0f, -0.34999999403953552f), 0.0f, 1.0f)))); + output_0.pos_0 = (((mat4x4(view_projection_matrix_0.data_0[i32(0)][i32(0)], view_projection_matrix_0.data_0[i32(1)][i32(0)], view_projection_matrix_0.data_0[i32(2)][i32(0)], view_projection_matrix_0.data_0[i32(3)][i32(0)], view_projection_matrix_0.data_0[i32(0)][i32(1)], view_projection_matrix_0.data_0[i32(1)][i32(1)], view_projection_matrix_0.data_0[i32(2)][i32(1)], view_projection_matrix_0.data_0[i32(3)][i32(1)], view_projection_matrix_0.data_0[i32(0)][i32(2)], view_projection_matrix_0.data_0[i32(1)][i32(2)], view_projection_matrix_0.data_0[i32(2)][i32(2)], view_projection_matrix_0.data_0[i32(3)][i32(2)], view_projection_matrix_0.data_0[i32(0)][i32(3)], view_projection_matrix_0.data_0[i32(1)][i32(3)], view_projection_matrix_0.data_0[i32(2)][i32(3)], view_projection_matrix_0.data_0[i32(3)][i32(3)])) * (vec4(_S1.world_pos_0 + vertex_pos_0 * vec2(0.5f), 0.0f, 1.0f)))); output_0.uv_0 = vertex_uv_0; return output_0; } diff --git a/src/shaders/wgsl/tree.wgsl b/src/shaders/wgsl/tree.wgsl index b9c17d9..e5e9d08 100644 --- a/src/shaders/wgsl/tree.wgsl +++ b/src/shaders/wgsl/tree.wgsl @@ -75,7 +75,7 @@ fn main_vertex( _S1 : vertexInput_0, @builtin(vertex_index) vertex_index_0 : u32 vertex_pos_0 = _S2; } } - output_0.pos_0 = (((mat4x4(view_projection_matrix_0.data_0[i32(0)][i32(0)], view_projection_matrix_0.data_0[i32(1)][i32(0)], view_projection_matrix_0.data_0[i32(2)][i32(0)], view_projection_matrix_0.data_0[i32(3)][i32(0)], view_projection_matrix_0.data_0[i32(0)][i32(1)], view_projection_matrix_0.data_0[i32(1)][i32(1)], view_projection_matrix_0.data_0[i32(2)][i32(1)], view_projection_matrix_0.data_0[i32(3)][i32(1)], view_projection_matrix_0.data_0[i32(0)][i32(2)], view_projection_matrix_0.data_0[i32(1)][i32(2)], view_projection_matrix_0.data_0[i32(2)][i32(2)], view_projection_matrix_0.data_0[i32(3)][i32(2)], view_projection_matrix_0.data_0[i32(0)][i32(3)], view_projection_matrix_0.data_0[i32(1)][i32(3)], view_projection_matrix_0.data_0[i32(2)][i32(3)], view_projection_matrix_0.data_0[i32(3)][i32(3)])) * (vec4(vec2(_S1.pos_1) + (vertex_pos_0 + vec2(0.0f, 0.5f)), 0.0f, 1.0f)))); + output_0.pos_0 = (((mat4x4(view_projection_matrix_0.data_0[i32(0)][i32(0)], view_projection_matrix_0.data_0[i32(1)][i32(0)], view_projection_matrix_0.data_0[i32(2)][i32(0)], view_projection_matrix_0.data_0[i32(3)][i32(0)], view_projection_matrix_0.data_0[i32(0)][i32(1)], view_projection_matrix_0.data_0[i32(1)][i32(1)], view_projection_matrix_0.data_0[i32(2)][i32(1)], view_projection_matrix_0.data_0[i32(3)][i32(1)], view_projection_matrix_0.data_0[i32(0)][i32(2)], view_projection_matrix_0.data_0[i32(1)][i32(2)], view_projection_matrix_0.data_0[i32(2)][i32(2)], view_projection_matrix_0.data_0[i32(3)][i32(2)], view_projection_matrix_0.data_0[i32(0)][i32(3)], view_projection_matrix_0.data_0[i32(1)][i32(3)], view_projection_matrix_0.data_0[i32(2)][i32(3)], view_projection_matrix_0.data_0[i32(3)][i32(3)])) * (vec4(vec2(_S1.pos_1) + (vertex_pos_0 + vec2(0.0f, 0.25f)), 0.0f, 1.0f)))); output_0.uv_0 = vertex_uv_0; output_0.kind_0 = _S1.kind_1; return output_0;