diff --git a/projects/voxelization/resources/shaders/shader.frag b/projects/voxelization/resources/shaders/shader.frag index 42605c17d69724773a1090a6c7ca2800f2c5e078..a5793542b9f0ea2a79504cdf3ef67ec0d32124ad 100644 --- a/projects/voxelization/resources/shaders/shader.frag +++ b/projects/voxelization/resources/shaders/shader.frag @@ -46,8 +46,8 @@ vec3 cookTorrance(vec3 f0, float r, vec3 N, vec3 V, vec3 L){ return (F * D * G) / max(4 * NoV * NoL, 0.000001); } -float roughnessToConeAngle(float r){ - return mix(degreeToRadian(20), degreeToRadian(90), r); +float roughnessToConeAngleDegree(float r){ + return mix(degreeToRadian(3), degreeToRadian(60), r); } // from: "Next Generation Post Processing in Call Of Duty Advanced Warfare" slide page 123 @@ -99,7 +99,7 @@ void main() { vec3 diffuseTrace = diffuseVoxelTraceHemisphere(toSurface, passPos, voxelTexture, voxelSampler, voxelInfo); vec3 R = reflect(-V, N); - float reflectionConeAngle = degreeToRadian(roughnessToConeAngle(r)); + float reflectionConeAngle = roughnessToConeAngleDegree(r); vec3 offsetTraceStart = passPos + N_geo * 0.1f; offsetTraceStart += R * interleavedGradientNoise(gl_FragCoord.xy) * 0.5; vec3 specularTrace = voxelConeTrace(R, offsetTraceStart, reflectionConeAngle, voxelTexture, voxelSampler, voxelInfo); diff --git a/projects/voxelization/resources/shaders/voxel.inc b/projects/voxelization/resources/shaders/voxel.inc index 8e3fcfb69773333fc5238ecddb6ecb729b792c0b..a22ea032ccd371f9f131aa007a2b793b2e6091c0 100644 --- a/projects/voxelization/resources/shaders/voxel.inc +++ b/projects/voxelization/resources/shaders/voxel.inc @@ -149,7 +149,7 @@ vec3 voxelConeTrace(vec3 direction, vec3 startPosition, float coneAngleRadian, t color += (1 - a) * voxelSample.rgb; a += (1 - a) * voxelSample.a; - float minStepSize = 0.5f; + float minStepSize = 1.5f; d += max(coneDiameter, minStepSize); samplePos = startPosition + d * direction; sampleUV = worldToVoxelCoordinates(samplePos, voxelInfo);