mirror of
https://github.com/FMS-Cat/condition.git
synced 2025-08-11 16:34:10 +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;
|
layout (location = 0) in vec3 position;
|
||||||
|
|
||||||
|
out vec4 vPosition;
|
||||||
|
|
||||||
uniform vec2 resolution;
|
uniform vec2 resolution;
|
||||||
uniform mat4 projectionMatrix;
|
uniform mat4 projectionMatrix;
|
||||||
uniform mat4 viewMatrix;
|
uniform mat4 viewMatrix;
|
||||||
@@ -10,7 +12,8 @@ uniform mat4 modelMatrix;
|
|||||||
// ------
|
// ------
|
||||||
|
|
||||||
void main() {
|
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;
|
outPos.x *= resolution.y / resolution.x;
|
||||||
gl_Position = outPos;
|
gl_Position = outPos;
|
||||||
|
@@ -21,6 +21,8 @@ const float TAU = PI * 2.0;
|
|||||||
layout (location = 3) out vec4 fragWTF;
|
layout (location = 3) out vec4 fragWTF;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
in vec4 vPosition;
|
||||||
|
|
||||||
#ifdef SHADOW
|
#ifdef SHADOW
|
||||||
out vec4 fragColor;
|
out vec4 fragColor;
|
||||||
#endif
|
#endif
|
||||||
@@ -111,7 +113,7 @@ void main() {
|
|||||||
vec3 rayOri = divideByW( inversePVM * vec4( p, 0.0, 1.0 ) );
|
vec3 rayOri = divideByW( inversePVM * vec4( p, 0.0, 1.0 ) );
|
||||||
vec3 farPos = divideByW( inversePVM * vec4( p, 1.0, 1.0 ) );
|
vec3 farPos = divideByW( inversePVM * vec4( p, 1.0, 1.0 ) );
|
||||||
vec3 rayDir = normalize( farPos - rayOri );
|
vec3 rayDir = normalize( farPos - rayOri );
|
||||||
float rayLen = cameraNearFar.x;
|
float rayLen = length( vPosition.xyz - cameraPos );
|
||||||
vec3 rayPos = rayOri + rayDir * rayLen;
|
vec3 rayPos = rayOri + rayDir * rayLen;
|
||||||
float dist;
|
float dist;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user