use existing resource directory

This commit is contained in:
Samuel Wilder 2019-09-26 10:54:54 -04:00
parent 4ce5b08c99
commit 79ee8f4373
10 changed files with 69 additions and 198 deletions

View file

@ -12,8 +12,8 @@ cube = rl.GenMeshCube(100, 100, 100)
skybox = rl.LoadModelFromMesh(cube) skybox = rl.LoadModelFromMesh(cube)
skybox.materials[0].shader = rl.LoadShader( skybox.materials[0].shader = rl.LoadShader(
b'res/shader/skybox.vs.glsl', b'resources/shaders/skybox.vs',
b'res/shader/skybox.fs.glsl' b'resources/shaders/skybox.fs'
) )
rl.SetShaderValue( rl.SetShaderValue(
@ -24,8 +24,8 @@ rl.SetShaderValue(
) )
shdrCubemap = rl.LoadShader( shdrCubemap = rl.LoadShader(
b'res/shader/cubemap.vs.glsl', b'resources/shaders/cubemap.vs',
b'res/shader/cubemap.fs.glsl' b'resources/shaders/cubemap.fs'
) )
rl.SetShaderValue( rl.SetShaderValue(
@ -35,7 +35,7 @@ rl.SetShaderValue(
rl.UNIFORM_INT rl.UNIFORM_INT
) )
texHDR = rl.LoadTexture(b'res/img/skymap.hdr') texHDR = rl.LoadTexture(b'resources/dresden_square.hdr')
skybox.materials[0].maps[rl.MAP_CUBEMAP].texture = rl.GenTextureCubemap(shdrCubemap, texHDR, 512); skybox.materials[0].maps[rl.MAP_CUBEMAP].texture = rl.GenTextureCubemap(shdrCubemap, texHDR, 512);

View file

@ -8,31 +8,31 @@
#version 330 #version 330
# Input vertex attributes (from vertex shader) // Input vertex attributes (from vertex shader)
in vec3 fragPos in vec3 fragPosition;
# Input uniform values // Input uniform values
uniform sampler2D equirectangularMap uniform sampler2D equirectangularMap;
# Output fragment color // Output fragment color
out vec4 finalColor out vec4 finalColor;
vec2 SampleSphericalMap(vec3 v) vec2 SampleSphericalMap(vec3 v)
[ {
vec2 uv = vec2(atan(v.z, v.x), asin(v.y)) vec2 uv = vec2(atan(v.z, v.x), asin(v.y));
uv *= vec2(0.1591, 0.3183) uv *= vec2(0.1591, 0.3183);
uv += 0.5 uv += 0.5;
return uv return uv;
] }
void main() void main()
[ {
# Normalize local position // Normalize local position
vec2 uv = SampleSphericalMap(normalize(fragPos)) vec2 uv = SampleSphericalMap(normalize(fragPosition));
# Fetch color from texture map // Fetch color from texture map
vec3 color = texture(equirectangularMap, uv).rgb vec3 color = texture(equirectangularMap, uv).rgb;
# Calculate final fragment color // Calculate final fragment color
finalColor = vec4(color, 1.0) finalColor = vec4(color, 1.0);
] }

View file

@ -8,21 +8,21 @@
#version 330 #version 330
# Input vertex attributes // Input vertex attributes
in vec3 vertexPosition in vec3 vertexPosition;
# Input uniform values // Input uniform values
uniform mat4 projection uniform mat4 projection;
uniform mat4 view uniform mat4 view;
# Output vertex attributes (to fragment shader) // Output vertex attributes (to fragment shader)
out vec3 fragPos out vec3 fragPosition;
void main() void main()
[ {
# Calculate fragment position based on model transformations // Calculate fragment position based on model transformations
fragPos = vertexPosition fragPosition = vertexPosition;
# Calculate final vertex position // Calculate final vertex position
gl_Position = projection*view*vec4(vertexPosition, 1.0) gl_Position = projection*view*vec4(vertexPosition, 1.0);
] }

View file

@ -8,24 +8,24 @@
#version 330 #version 330
# Input vertex attributes (from vertex shader) // Input vertex attributes (from vertex shader)
in vec3 fragPos in vec3 fragPosition;
# Input uniform values // Input uniform values
uniform samplerCube environmentMap uniform samplerCube environmentMap;
# Output fragment color // Output fragment color
out vec4 finalColor out vec4 finalColor;
void main() void main()
[ {
# Fetch color from texture map // Fetch color from texture map
vec3 color = texture(environmentMap, fragPos).rgb vec3 color = texture(environmentMap, fragPosition).rgb;
# Apply gamma correction // Apply gamma correction
color = color/(color + vec3(1.0)) color = color/(color + vec3(1.0));
color = pow(color, vec3(1.0/2.2)) color = pow(color, vec3(1.0/2.2));
# Calculate final fragment color // Calculate final fragment color
finalColor = vec4(color, 1.0) finalColor = vec4(color, 1.0);
] }

View file

@ -8,25 +8,25 @@
#version 330 #version 330
# Input vertex attributes // Input vertex attributes
in vec3 vertexPosition in vec3 vertexPosition;
# Input uniform values // Input uniform values
uniform mat4 projection uniform mat4 projection;
uniform mat4 view uniform mat4 view;
# Output vertex attributes (to fragment shader) // Output vertex attributes (to fragment shader)
out vec3 fragPos out vec3 fragPosition;
void main() void main()
[ {
# Calculate fragment position based on model transformations // Calculate fragment position based on model transformations
fragPos = vertexPosition fragPosition = vertexPosition;
# Remove translation from the view matrix // Remove translation from the view matrix
mat4 rotView = mat4(mat3(view)) mat4 rotView = mat4(mat3(view));
vec4 clipPos = projection*rotView*vec4(vertexPosition, 1.0) vec4 clipPos = projection*rotView*vec4(vertexPosition, 1.0);
# Calculate final vertex position // Calculate final vertex position
gl_Position = clipPos.xyww gl_Position = clipPos.xyzw;
] }

Binary file not shown.

View file

@ -1,38 +0,0 @@
/*******************************************************************************************
*
* rPBR [shader] - Equirectangular to cubemap fragment shader
*
* Copyright (c) 2017 Victor Fisac
*
**********************************************************************************************/
#version 330
// Input vertex attributes (from vertex shader)
in vec3 fragPosition;
// Input uniform values
uniform sampler2D equirectangularMap;
// Output fragment color
out vec4 finalColor;
vec2 SampleSphericalMap(vec3 v)
{
vec2 uv = vec2(atan(v.z, v.x), asin(v.y));
uv *= vec2(0.1591, 0.3183);
uv += 0.5;
return uv;
}
void main()
{
// Normalize local position
vec2 uv = SampleSphericalMap(normalize(fragPosition));
// Fetch color from texture map
vec3 color = texture(equirectangularMap, uv).rgb;
// Calculate final fragment color
finalColor = vec4(color, 1.0);
}

View file

@ -1,28 +0,0 @@
/*******************************************************************************************
*
* rPBR [shader] - Equirectangular to cubemap vertex shader
*
* Copyright (c) 2017 Victor Fisac
*
**********************************************************************************************/
#version 330
// Input vertex attributes
in vec3 vertexPosition;
// Input uniform values
uniform mat4 projection;
uniform mat4 view;
// Output vertex attributes (to fragment shader)
out vec3 fragPosition;
void main()
{
// Calculate fragment position based on model transformations
fragPosition = vertexPosition;
// Calculate final vertex position
gl_Position = projection*view*vec4(vertexPosition, 1.0);
}

View file

@ -1,31 +0,0 @@
/*******************************************************************************************
*
* rPBR [shader] - Background skybox fragment shader
*
* Copyright (c) 2017 Victor Fisac
*
**********************************************************************************************/
#version 330
// Input vertex attributes (from vertex shader)
in vec3 fragPosition;
// Input uniform values
uniform samplerCube environmentMap;
// Output fragment color
out vec4 finalColor;
void main()
{
// Fetch color from texture map
vec3 color = texture(environmentMap, fragPosition).rgb;
// Apply gamma correction
color = color/(color + vec3(1.0));
color = pow(color, vec3(1.0/2.2));
// Calculate final fragment color
finalColor = vec4(color, 1.0);
}

View file

@ -1,32 +0,0 @@
/*******************************************************************************************
*
* rPBR [shader] - Background skybox vertex shader
*
* Copyright (c) 2017 Victor Fisac
*
**********************************************************************************************/
#version 330
// Input vertex attributes
in vec3 vertexPosition;
// Input uniform values
uniform mat4 projection;
uniform mat4 view;
// Output vertex attributes (to fragment shader)
out vec3 fragPosition;
void main()
{
// Calculate fragment position based on model transformations
fragPosition = vertexPosition;
// Remove translation from the view matrix
mat4 rotView = mat4(mat3(view));
vec4 clipPos = projection*rotView*vec4(vertexPosition, 1.0);
// Calculate final vertex position
gl_Position = clipPos.xyzw;
}