diff --git a/shaders/scene.f.glsl b/shaders/scene.f.glsl index ae68f11..2a6bbff 100644 --- a/shaders/scene.f.glsl +++ b/shaders/scene.f.glsl @@ -44,24 +44,15 @@ void mapMaterial( tIndex = 0; } -float box( vec3 p , vec3 sz ) -{ - vec3 n = abs( p ) - sz; - return max( max( n.x , n.y ) , n.z ); -} - vec2 RM_Map( vec3 pos ) { - pos = pos - vec3( 0 , 0 , 0 ); vec3 q = pos; - q.xy = mod( q.xy + 4. , 8. ) - 4.; - q.xz *= mat2( - cos( 1 ) , -sin(1) , - sin( 1 ) , cos( 1 ) ); - return vec2( mix( box( q , vec3( 1.5 ) ) , - length( q ) - 1.5 , + HG_pMod2( q.xy , vec2( 8. ) ); + HG_pR( q.xz , 1 ); + return vec2( mix( HG_fBox( q , vec3( 1.5 ) ) , + HG_fSphere( q , 1.5 ) , .35 ) , - step( 0. , 3 - length( pos.xy ) ) ); + step( 0. , -HG_fSphere( pos , 3 ) ) ); }