mirror of
https://github.com/FMS-Cat/condition.git
synced 2025-08-11 08:24:22 +02:00
performance: hey, raymarch can be started from the intersection
This commit is contained in:
@@ -2,6 +2,8 @@
|
||||
|
||||
layout (location = 0) in vec3 position;
|
||||
|
||||
out vec4 vPosition;
|
||||
|
||||
uniform vec2 resolution;
|
||||
uniform mat4 projectionMatrix;
|
||||
uniform mat4 viewMatrix;
|
||||
@@ -10,7 +12,8 @@ uniform mat4 modelMatrix;
|
||||
// ------
|
||||
|
||||
void main() {
|
||||
vec4 outPos = projectionMatrix * viewMatrix * modelMatrix * vec4( position, 1.0 );
|
||||
vPosition = modelMatrix * vec4( position, 1.0 );
|
||||
vec4 outPos = projectionMatrix * viewMatrix * vPosition;
|
||||
|
||||
outPos.x *= resolution.y / resolution.x;
|
||||
gl_Position = outPos;
|
||||
|
@@ -21,6 +21,8 @@ const float TAU = PI * 2.0;
|
||||
layout (location = 3) out vec4 fragWTF;
|
||||
#endif
|
||||
|
||||
in vec4 vPosition;
|
||||
|
||||
#ifdef SHADOW
|
||||
out vec4 fragColor;
|
||||
#endif
|
||||
@@ -111,7 +113,7 @@ void main() {
|
||||
vec3 rayOri = divideByW( inversePVM * vec4( p, 0.0, 1.0 ) );
|
||||
vec3 farPos = divideByW( inversePVM * vec4( p, 1.0, 1.0 ) );
|
||||
vec3 rayDir = normalize( farPos - rayOri );
|
||||
float rayLen = cameraNearFar.x;
|
||||
float rayLen = length( vPosition.xyz - cameraPos );
|
||||
vec3 rayPos = rayOri + rayDir * rayLen;
|
||||
float dist;
|
||||
|
||||
|
Reference in New Issue
Block a user