1
1
2
- const int voxelgi_resolution = 256 ;
3
- const vec3 voxelgi_half_extents = vec3 (1 , 1 , 1 );
2
+ const float voxelgi_resolution = 256.0 ;
3
+ const vec3 voxelgi_half_extents = vec3 (1.0 , 1.0 , 1.0 );
4
4
const float voxelgi_occ = 1.0 ;
5
5
const float voxelgi_step = 1.0 ;
6
6
const float voxelgi_range = 2.0 ;
7
7
const float MAX_DISTANCE = 1.73205080757 * voxelgi_range;
8
8
const float VOXEL_SIZE = (2.0 / voxelgi_resolution) * voxelgi_step;
9
9
10
10
vec3 tangent(const vec3 n) {
11
- vec3 t1 = cross (n, vec3 (0 , 0 , 1 ));
12
- vec3 t2 = cross (n, vec3 (0 , 1 , 0 ));
11
+ vec3 t1 = cross (n, vec3 (0.0 , 0.0 , 1.0 ));
12
+ vec3 t2 = cross (n, vec3 (0.0 , 1.0 , 0. 0 ));
13
13
if (length (t1) > length (t2)) return normalize (t1);
14
14
else return normalize (t2);
15
15
}
@@ -23,9 +23,9 @@ float trace_cone_ao(sampler3D voxels, const vec3 origin, vec3 dir, const float a
23
23
while (sample_col < 1.0 && dist < max_dist) {
24
24
sample_pos = dir * dist + origin;
25
25
float mip = max (log2 (diam * voxelgi_resolution), 0.0 );
26
- float mip_sample = textureLod(voxels, sample_pos * 0.5 + vec3 (0.5 , 0.5 , 0.5 ), mip).r;
26
+ float mip_sample = textureLod(voxels, sample_pos * vec3 ( 0.5 , 0.5 , 0.5 ) + vec3 (0.5 , 0.5 , 0.5 ), mip).r;
27
27
sample_col += (1 - sample_col) * mip_sample;
28
- dist += max (diam / 2 , VOXEL_SIZE);
28
+ dist += max (diam / 2.0 , VOXEL_SIZE);
29
29
diam = dist * aperture;
30
30
}
31
31
return sample_col;
@@ -36,12 +36,12 @@ float trace_shadow(sampler3D voxels, const vec3 origin, const vec3 dir) {
36
36
}
37
37
38
38
float trace_ao(const vec3 origin, const vec3 normal, sampler3D voxels) {
39
- const float angle_mix = 0 .5f ;
39
+ const float angle_mix = 0.5 ;
40
40
const float aperture = 0.55785173935 ;
41
41
vec3 o1 = normalize (tangent(normal));
42
42
vec3 o2 = normalize (cross (o1, normal));
43
- vec3 c1 = 0 .5f * (o1 + o2);
44
- vec3 c2 = 0 .5f * (o1 - o2);
43
+ vec3 c1 = vec3 ( 0.5 , 0.5 , 0.5 ) * (o1 + o2);
44
+ vec3 c2 = vec3 ( 0.5 , 0.5 , 0.5 ) * (o1 - o2);
45
45
46
46
#ifdef HLSL
47
47
const float factor = voxelgi_occ * 0.93 ;
@@ -55,6 +55,4 @@ float trace_ao(const vec3 origin, const vec3 normal, sampler3D voxels) {
55
55
col += trace_cone_ao(voxels, origin, mix (normal, - c1, angle_mix), aperture, MAX_DISTANCE);
56
56
col += trace_cone_ao(voxels, origin, mix (normal, - c2, angle_mix), aperture, MAX_DISTANCE);
57
57
return (col / 5.0 ) * factor;
58
-
59
- return 0.0 ;
60
58
}
0 commit comments