Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,11 @@

- Added indirect lighting modifier.

### Changed

- Improved cone tracing direction selection.
- Removed cone tracing bias.

### Fixed

- Fixed the gizmos being drawn in Game View.
Expand Down
6 changes: 3 additions & 3 deletions ShaderLibrary/Radiances/Pixel.cginc
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@
float3 unit = Directions[i];
float NdotL = dot(data.vecN, unit);

if (NdotL <= 0.0) continue;
if (NdotL < ConeDirectionThreshold) continue;

float4 incoming = 0.0;
float size = 1.0;
Expand All @@ -89,7 +89,7 @@
for (
float3 coordinate = apex + direction;
incoming.a < 0.95 && TextureSDF(coordinate) > 0.0;
size *= 1.5, direction *= 1.5, coordinate = apex + direction
size *= 2.0, direction *= 2.0, coordinate = apex + direction
) {
incoming += 0.5 * (1.0 - incoming.a) * SampleRadiance(coordinate, size);
}
Expand All @@ -98,6 +98,6 @@
cones++;
}

return data.diffuseColor * radiance * 2.0 / cones;
return data.diffuseColor * radiance / cones;
}
#endif
6 changes: 3 additions & 3 deletions ShaderLibrary/Radiances/Voxel.cginc
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
float3 unit = Directions[i];
float NdotL = dot(data.vecN, unit);

if (NdotL <= 0.0) continue;
if (NdotL < ConeDirectionThreshold) continue;

float4 incoming = 0.0;
float size = 1.0;
Expand All @@ -64,7 +64,7 @@
for (
float3 coordinate = apex + direction;
incoming.a < 0.95 && TextureSDF(coordinate) > 0.0;
size *= 1.5, direction *= 1.5, coordinate = apex + direction
size *= 2.0, direction *= 2.0, coordinate = apex + direction
) {
incoming += 0.5 * (1.0 - incoming.a) * SampleRadiance(coordinate, size);
}
Expand All @@ -73,7 +73,7 @@
cones++;
}

return radiance * 2.0 / cones;
return radiance / cones;
}

float3 VoxelRadiance(VoxelLightingData data)
Expand Down
2 changes: 2 additions & 0 deletions ShaderLibrary/Variables.cginc
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
SamplerState linear_clamp_sampler;
StructuredBuffer<LightSource> LightSources;

static float ConeDirectionThreshold = sin(atan(1.0/3.0));

// Cone tracing direction for indirect diffuse calculations
static float3 Directions[32] = {
float3(+0.000000, +1.000000, +0.000000),
Expand Down