techkaczynski.dev / code

summaryrefslogtreecommitdiff
path: root/res
diff options
context:
space:
mode:
Diffstat (limited to 'res')
-rw-r--r--res/mdl/psx-characters/male/rigged/male1.glbbin0 -> 409632 bytes
-rw-r--r--res/mdl/psx-characters/male/rigged/male1.raylib.glbbin0 -> 409632 bytes
-rw-r--r--res/mdl/psx-trees/dead_tree_rt_1.glbbin0 -> 302660 bytes
-rw-r--r--res/mdl/psx-trees/dead_tree_rt_2.glbbin0 -> 80152 bytes
-rw-r--r--res/mdl/psx-trees/small_tree_rt_1.glbbin0 -> 16040 bytes
-rw-r--r--res/mdl/psx-trees/tree_rt_1.glbbin0 -> 58664 bytes
-rw-r--r--res/mdl/psx-trees/tree_rt_2.glbbin0 -> 159940 bytes
-rw-r--r--res/mdl/psx-trees/tree_rt_2_1.glbbin0 -> 158828 bytes
-rw-r--r--res/mdl/psx-trees/tree_rt_3.glbbin0 -> 178696 bytes
-rw-r--r--res/mdl/psx-trees/tree_rt_4.glbbin0 -> 415296 bytes
-rw-r--r--res/save/scene.fgsbin14764 -> 172800 bytes
-rw-r--r--res/sdr/mdl_foliage.vs23
-rw-r--r--res/sdr/mdl_skinned_vtx_lit.vs59
13 files changed, 71 insertions, 11 deletions
diff --git a/res/mdl/psx-characters/male/rigged/male1.glb b/res/mdl/psx-characters/male/rigged/male1.glb
new file mode 100644
index 0000000..69272c1
--- /dev/null
+++ b/res/mdl/psx-characters/male/rigged/male1.glb
Binary files differ
diff --git a/res/mdl/psx-characters/male/rigged/male1.raylib.glb b/res/mdl/psx-characters/male/rigged/male1.raylib.glb
new file mode 100644
index 0000000..283a3d2
--- /dev/null
+++ b/res/mdl/psx-characters/male/rigged/male1.raylib.glb
Binary files differ
diff --git a/res/mdl/psx-trees/dead_tree_rt_1.glb b/res/mdl/psx-trees/dead_tree_rt_1.glb
new file mode 100644
index 0000000..fec0486
--- /dev/null
+++ b/res/mdl/psx-trees/dead_tree_rt_1.glb
Binary files differ
diff --git a/res/mdl/psx-trees/dead_tree_rt_2.glb b/res/mdl/psx-trees/dead_tree_rt_2.glb
new file mode 100644
index 0000000..0523544
--- /dev/null
+++ b/res/mdl/psx-trees/dead_tree_rt_2.glb
Binary files differ
diff --git a/res/mdl/psx-trees/small_tree_rt_1.glb b/res/mdl/psx-trees/small_tree_rt_1.glb
new file mode 100644
index 0000000..632de9d
--- /dev/null
+++ b/res/mdl/psx-trees/small_tree_rt_1.glb
Binary files differ
diff --git a/res/mdl/psx-trees/tree_rt_1.glb b/res/mdl/psx-trees/tree_rt_1.glb
new file mode 100644
index 0000000..0c7fa93
--- /dev/null
+++ b/res/mdl/psx-trees/tree_rt_1.glb
Binary files differ
diff --git a/res/mdl/psx-trees/tree_rt_2.glb b/res/mdl/psx-trees/tree_rt_2.glb
new file mode 100644
index 0000000..881f7d8
--- /dev/null
+++ b/res/mdl/psx-trees/tree_rt_2.glb
Binary files differ
diff --git a/res/mdl/psx-trees/tree_rt_2_1.glb b/res/mdl/psx-trees/tree_rt_2_1.glb
new file mode 100644
index 0000000..8c9669c
--- /dev/null
+++ b/res/mdl/psx-trees/tree_rt_2_1.glb
Binary files differ
diff --git a/res/mdl/psx-trees/tree_rt_3.glb b/res/mdl/psx-trees/tree_rt_3.glb
new file mode 100644
index 0000000..2ec3314
--- /dev/null
+++ b/res/mdl/psx-trees/tree_rt_3.glb
Binary files differ
diff --git a/res/mdl/psx-trees/tree_rt_4.glb b/res/mdl/psx-trees/tree_rt_4.glb
new file mode 100644
index 0000000..19963e1
--- /dev/null
+++ b/res/mdl/psx-trees/tree_rt_4.glb
Binary files differ
diff --git a/res/save/scene.fgs b/res/save/scene.fgs
index ae27721..b07fae4 100644
--- a/res/save/scene.fgs
+++ b/res/save/scene.fgs
Binary files differ
diff --git a/res/sdr/mdl_foliage.vs b/res/sdr/mdl_foliage.vs
index 1198009..366290a 100644
--- a/res/sdr/mdl_foliage.vs
+++ b/res/sdr/mdl_foliage.vs
@@ -27,20 +27,21 @@ out vec4 frag_colour;
out vec3 frag_lighting;
void main() {
- vec3 world_normal = normalize((matNormal * vec4(vertexNormal, 0.0)).xyz);
+ vec3 canopy_center = vec3(0.0, 4.0, 0.0);
+ vec3 canopy_normal = vertexNormal;
+ vec3 offset = vertexPosition - canopy_center;
- // float sun_diffuse = abs(dot(world_normal, sun_direction));
- // float moon_diffuse = abs(dot(world_normal, moon_direction));
+ if (dot(offset, offset) > 0.0001) {
+ canopy_normal = normalize(offset);
+ }
- // for stronger shading, use 0.3 + 0.7 * abs(...)
- // float sun_diffuse = 0.5 + 0.5 * abs(dot(world_normal, sun_direction));
- // float moon_diffuse = 0.5 + 0.5 * abs(dot(world_normal, moon_direction));
- float sun_diffuse = abs(dot(world_normal, sun_direction));
- float moon_diffuse = abs(dot(world_normal, moon_direction));
+ vec3 world_normal = normalize((matNormal * vec4(canopy_normal, 0.0)).xyz);
- // hack to fix lighting at midday
- float midday = smoothstep(0.7, 1.0, sun_direction.y);
- sun_diffuse = mix(sun_diffuse, 0.65, midday);
+ float sun_facing = dot(world_normal, sun_direction);
+ float moon_facing = dot(world_normal, moon_direction);
+
+ float sun_diffuse = max(sun_facing, 0.0) + 0.1 * max(-sun_facing, 0.0);
+ float moon_diffuse = max(moon_facing, 0.0) + 0.1 * max(-moon_facing, 0.0);
vec3 ambient_light = ambient_colour * ambient_intensity;
vec3 sun_light = sun_colour * sun_intensity * sun_diffuse;
diff --git a/res/sdr/mdl_skinned_vtx_lit.vs b/res/sdr/mdl_skinned_vtx_lit.vs
new file mode 100644
index 0000000..a6da15e
--- /dev/null
+++ b/res/sdr/mdl_skinned_vtx_lit.vs
@@ -0,0 +1,59 @@
+#version 330
+
+in vec3 vertexPosition;
+in vec2 vertexTexCoord;
+in vec3 vertexNormal;
+in vec4 vertexColor;
+
+uniform mat4 mvp;
+uniform mat4 matNormal;
+
+uniform vec3 sun_direction;
+uniform vec3 sun_colour;
+uniform float sun_intensity;
+
+uniform vec3 moon_direction;
+uniform vec3 moon_colour;
+uniform float moon_intensity;
+
+uniform vec3 ambient_colour;
+uniform float ambient_intensity;
+
+uniform vec2 uv_tiling;
+uniform vec2 uv_offset;
+
+out vec2 frag_texcoord;
+out vec4 frag_colour;
+out vec3 frag_lighting;
+out vec3 frag_normal;
+
+in vec4 vertexBoneIndices;
+in vec4 vertexBoneWeights;
+
+uniform mat4 boneMatrices[64];
+
+void main() {
+ mat4 skin =
+ vertexBoneWeights.x * boneMatrices[int(vertexBoneIndices.x)] +
+ vertexBoneWeights.y * boneMatrices[int(vertexBoneIndices.y)] +
+ vertexBoneWeights.z * boneMatrices[int(vertexBoneIndices.z)] +
+ vertexBoneWeights.w * boneMatrices[int(vertexBoneIndices.w)];
+
+ vec4 position = skin * vec4(vertexPosition, 1.0);
+ vec3 normal = (skin * vec4(vertexNormal, 0.0)).xyz;
+ vec3 world_normal = normalize((matNormal * vec4(normal, 0.0)).xyz);
+
+ float sun_diffuse = max(dot(world_normal, sun_direction), 0.0);
+ float moon_diffuse = max(dot(world_normal, moon_direction), 0.0);
+
+ vec3 ambient_light = ambient_colour * ambient_intensity;
+ vec3 sun_light = sun_colour * sun_intensity * sun_diffuse;
+ vec3 moon_light = moon_colour * moon_intensity * moon_diffuse;
+
+ frag_lighting = ambient_light + sun_light + moon_light;
+ frag_texcoord = vertexTexCoord * uv_tiling + uv_offset;
+ frag_colour = vertexColor;
+ frag_normal = world_normal;
+
+ gl_Position = mvp * position;
+}