Move shaders into glsl and hlsl directories
Move `data/shaders` to `data/shaders/glsl` Move `data/hlsl` to `data/shaders/hlsl` Fix up shader paths in the cpp files to point to the new glsl location. `data/shaders/hlsl/compile.py` still overwrites the glsl .spv files (for now). Issue: #723
This commit is contained in:
parent
cac1d2e850
commit
ca884587a4
1043 changed files with 1207 additions and 1201 deletions
4
data/shaders/glsl/multithreading/generate-spirv.bat
Normal file
4
data/shaders/glsl/multithreading/generate-spirv.bat
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
glslangvalidator -V phong.vert -o phong.vert.spv
|
||||
glslangvalidator -V phong.frag -o phong.frag.spv
|
||||
glslangvalidator -V starsphere.vert -o starsphere.vert.spv
|
||||
glslangvalidator -V starsphere.frag -o starsphere.frag.spv
|
||||
20
data/shaders/glsl/multithreading/phong.frag
Normal file
20
data/shaders/glsl/multithreading/phong.frag
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
#version 450
|
||||
|
||||
layout (location = 0) in vec3 inNormal;
|
||||
layout (location = 1) in vec3 inColor;
|
||||
layout (location = 3) in vec3 inViewVec;
|
||||
layout (location = 4) in vec3 inLightVec;
|
||||
|
||||
layout (location = 0) out vec4 outFragColor;
|
||||
|
||||
|
||||
void main()
|
||||
{
|
||||
vec3 N = normalize(inNormal);
|
||||
vec3 L = normalize(inLightVec);
|
||||
vec3 V = normalize(inViewVec);
|
||||
vec3 R = reflect(-L, N);
|
||||
vec3 diffuse = max(dot(N, L), 0.0) * inColor;
|
||||
vec3 specular = pow(max(dot(R, V), 0.0), 8.0) * vec3(0.75);
|
||||
outFragColor = vec4(diffuse + specular, 1.0);
|
||||
}
|
||||
BIN
data/shaders/glsl/multithreading/phong.frag.spv
Normal file
BIN
data/shaders/glsl/multithreading/phong.frag.spv
Normal file
Binary file not shown.
39
data/shaders/glsl/multithreading/phong.vert
Normal file
39
data/shaders/glsl/multithreading/phong.vert
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
#version 450
|
||||
|
||||
layout (location = 0) in vec3 inPos;
|
||||
layout (location = 1) in vec3 inNormal;
|
||||
layout (location = 2) in vec3 inColor;
|
||||
|
||||
layout (std140, push_constant) uniform PushConsts
|
||||
{
|
||||
mat4 mvp;
|
||||
vec3 color;
|
||||
} pushConsts;
|
||||
|
||||
layout (location = 0) out vec3 outNormal;
|
||||
layout (location = 1) out vec3 outColor;
|
||||
layout (location = 3) out vec3 outViewVec;
|
||||
layout (location = 4) out vec3 outLightVec;
|
||||
|
||||
void main()
|
||||
{
|
||||
outNormal = inNormal;
|
||||
|
||||
if ( (inColor.r == 1.0) && (inColor.g == 0.0) && (inColor.b == 0.0))
|
||||
{
|
||||
outColor = pushConsts.color;
|
||||
}
|
||||
else
|
||||
{
|
||||
outColor = inColor;
|
||||
}
|
||||
|
||||
gl_Position = pushConsts.mvp * vec4(inPos.xyz, 1.0);
|
||||
|
||||
vec4 pos = pushConsts.mvp * vec4(inPos, 1.0);
|
||||
outNormal = mat3(pushConsts.mvp) * inNormal;
|
||||
// vec3 lPos = ubo.lightPos.xyz;
|
||||
vec3 lPos = vec3(0.0);
|
||||
outLightVec = lPos - pos.xyz;
|
||||
outViewVec = -pos.xyz;
|
||||
}
|
||||
BIN
data/shaders/glsl/multithreading/phong.vert.spv
Normal file
BIN
data/shaders/glsl/multithreading/phong.vert.spv
Normal file
Binary file not shown.
39
data/shaders/glsl/multithreading/starsphere.frag
Normal file
39
data/shaders/glsl/multithreading/starsphere.frag
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
#version 450
|
||||
|
||||
layout (location = 0) in vec3 inUVW;
|
||||
|
||||
layout (location = 0) out vec4 outFragColor;
|
||||
|
||||
#define HASHSCALE3 vec3(443.897, 441.423, 437.195)
|
||||
#define STARFREQUENCY 0.01
|
||||
|
||||
// Hash function by Dave Hoskins (https://www.shadertoy.com/view/4djSRW)
|
||||
float hash33(vec3 p3)
|
||||
{
|
||||
p3 = fract(p3 * HASHSCALE3);
|
||||
p3 += dot(p3, p3.yxz+vec3(19.19));
|
||||
return fract((p3.x + p3.y)*p3.z + (p3.x+p3.z)*p3.y + (p3.y+p3.z)*p3.x);
|
||||
}
|
||||
|
||||
vec3 starField(vec3 pos)
|
||||
{
|
||||
vec3 color = vec3(0.0);
|
||||
float threshhold = (1.0 - STARFREQUENCY);
|
||||
float rnd = hash33(pos);
|
||||
if (rnd >= threshhold)
|
||||
{
|
||||
float starCol = pow((rnd - threshhold) / (1.0 - threshhold), 16.0);
|
||||
color += vec3(starCol);
|
||||
}
|
||||
return color;
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
// Fake atmosphere at the bottom
|
||||
vec3 atmosphere = clamp(vec3(0.1, 0.15, 0.4) * (inUVW.t - 5.0), 0.0, 1.0);
|
||||
|
||||
vec3 color = starField(inUVW) + atmosphere;
|
||||
|
||||
outFragColor = vec4(color, 1.0);
|
||||
}
|
||||
BIN
data/shaders/glsl/multithreading/starsphere.frag.spv
Normal file
BIN
data/shaders/glsl/multithreading/starsphere.frag.spv
Normal file
Binary file not shown.
16
data/shaders/glsl/multithreading/starsphere.vert
Normal file
16
data/shaders/glsl/multithreading/starsphere.vert
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
#version 450
|
||||
|
||||
layout (location = 0) in vec3 inPos;
|
||||
|
||||
layout (std140, push_constant) uniform PushConsts
|
||||
{
|
||||
mat4 mvp;
|
||||
} pushConsts;
|
||||
|
||||
layout (location = 0) out vec3 outUVW;
|
||||
|
||||
void main()
|
||||
{
|
||||
outUVW = inPos;
|
||||
gl_Position = pushConsts.mvp * vec4(inPos.xyz, 1.0);
|
||||
}
|
||||
BIN
data/shaders/glsl/multithreading/starsphere.vert.spv
Normal file
BIN
data/shaders/glsl/multithreading/starsphere.vert.spv
Normal file
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue