Signed-off-by: Slendi <slendi@socopon.com>
This commit is contained in:
2025-08-11 06:39:52 +03:00
parent c9590037aa
commit ef96c51566
14 changed files with 501 additions and 14 deletions

18
assets/linear_srgb.fs Normal file
View File

@@ -0,0 +1,18 @@
precision mediump float;
varying vec2 fragTexCoord;
varying vec4 fragColor;
uniform sampler2D texture0;
vec3 srgb_to_linear(vec3 c) {
bvec3 cutoff = lessThanEqual(c, vec3(0.04045));
vec3 low = c / 12.92;
vec3 high = pow((c + 0.055) / 1.055, vec3(2.4));
return mix(high, low, vec3(cutoff));
}
void main() {
vec4 c = texture2D(texture0, fragTexCoord) * fragColor;
c.rgb = srgb_to_linear(c.rgb); // decode to linear
gl_FragColor = c;
}

31
assets/skybox.fs Normal file
View File

@@ -0,0 +1,31 @@
#version 100
precision mediump float;
// Input vertex attributes (from vertex shader)
varying vec3 fragPosition;
// Input uniform values
uniform samplerCube environmentMap;
uniform bool vflipped;
uniform bool doGamma;
void main()
{
// Fetch color from texture map
vec4 texelColor = vec4(0.0);
if (vflipped) texelColor = textureCube(environmentMap, vec3(fragPosition.x, -fragPosition.y, fragPosition.z));
else texelColor = textureCube(environmentMap, fragPosition);
vec3 color = vec3(texelColor.x, texelColor.y, texelColor.z);
if (doGamma) // Apply gamma correction
{
color = color/(color + vec3(1.0));
color = pow(color, vec3(1.0/2.2));
}
// Calculate final fragment color
gl_FragColor = vec4(color, 1.0);
}

24
assets/skybox.vs Normal file
View File

@@ -0,0 +1,24 @@
#version 100
// Input vertex attributes
attribute vec3 vertexPosition;
// Input uniform values
uniform mat4 matProjection;
uniform mat4 matView;
// Output vertex attributes (to fragment shader)
varying vec3 fragPosition;
void main()
{
// Calculate fragment position based on model transformations
fragPosition = vertexPosition;
// Remove translation from the view matrix
mat4 rotView = mat4(mat3(matView));
vec4 clipPos = matProjection*rotView*vec4(vertexPosition, 1.0);
// Calculate final vertex position
gl_Position = clipPos;
}