bättre ringworld
This commit is contained in:
27
src/Universe.App/Graphics/Shaders/ring-world.vert.glsl
Normal file
27
src/Universe.App/Graphics/Shaders/ring-world.vert.glsl
Normal file
@@ -0,0 +1,27 @@
|
||||
#version 330 core
|
||||
layout(location=0) in vec3 aPosition;
|
||||
layout(location=1) in vec3 aNormal;
|
||||
layout(location=2) in vec3 aDirection;
|
||||
uniform vec3 uChunkPosition;
|
||||
uniform vec3 uBodyOrigin;
|
||||
uniform float uRadius;
|
||||
uniform mat4 uViewProjection;
|
||||
uniform mat4 uBodyToWorld;
|
||||
uniform float uFar;
|
||||
uniform vec3 uMaterialAnchor;
|
||||
out vec3 vMaterial;
|
||||
out vec3 vBody;
|
||||
out vec3 vDirection;
|
||||
out vec3 vNormal;
|
||||
out vec3 vWorld;
|
||||
out float vFragDepth;
|
||||
void main() {
|
||||
vWorld=uChunkPosition+mat3(uBodyToWorld)*aPosition;
|
||||
vMaterial=aPosition+uMaterialAnchor;
|
||||
vBody=uBodyOrigin+aPosition/uRadius;
|
||||
vDirection=aDirection; vNormal=aNormal;
|
||||
vec4 clip=uViewProjection*vec4(vWorld,1);
|
||||
vFragDepth=clip.w+1.0;
|
||||
gl_Position=clip;
|
||||
gl_Position.z=(2.0*log2(max(.0001,vFragDepth))/log2(uFar+1.0)-1.0)*clip.w;
|
||||
}
|
||||
Reference in New Issue
Block a user