use existing resource directory
This commit is contained in:
parent
4ce5b08c99
commit
79ee8f4373
10 changed files with 69 additions and 198 deletions
|
@ -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);
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
]
|
}
|
||||||
|
|
|
@ -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);
|
||||||
]
|
}
|
||||||
|
|
|
@ -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);
|
||||||
]
|
}
|
||||||
|
|
|
@ -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.
|
@ -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);
|
|
||||||
}
|
|
|
@ -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);
|
|
||||||
}
|
|
|
@ -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);
|
|
||||||
}
|
|
|
@ -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;
|
|
||||||
}
|
|
Reference in a new issue