@@ -4,7 +4,7 @@ function project(
44 rotations:: AbstractMatrix{Float32} ;
55 rast:: GaussianRasterizer , camera:: Camera ,
66 near_plane:: Float32 , far_plane:: Float32 ,
7- radius_clip:: Float32 , blur_ϵ:: Float32 ,
7+ radius_clip:: Int32 , blur_ϵ:: Float32 ,
88)
99 (; width, height) = resolution (camera)
1010 @assert width % 16 == 0 && height % 16 == 0
@@ -57,7 +57,7 @@ function ∇project(
5757 conics:: AbstractMatrix{Float32} ;
5858 rast:: GaussianRasterizer , camera:: Camera ,
5959 near_plane:: Float32 , far_plane:: Float32 ,
60- radius_clip:: Float32 , blur_ϵ:: Float32 ,
60+ radius_clip:: Int32 , blur_ϵ:: Float32 ,
6161)
6262 K = camera. intrinsics
6363 R_w2c = SMatrix {3, 3, Float32} (camera. w2c[1 : 3 , 1 : 3 ])
@@ -110,7 +110,7 @@ function ChainRulesCore.rrule(::typeof(project),
110110
111111 rast:: GaussianRasterizer , camera:: Camera ,
112112 near_plane:: Float32 , far_plane:: Float32 ,
113- radius_clip:: Float32 , blur_ϵ:: Float32 ,
113+ radius_clip:: Int32 , blur_ϵ:: Float32 ,
114114)
115115 means_2d, conics, compensations, depths = project (
116116 means_3d, scales, rotations;
151151 # Config.
152152 near_plane:: Float32 ,
153153 far_plane:: Float32 ,
154- radius_clip:: Float32 ,
154+ radius_clip:: Int32 ,
155155 blur_ϵ:: Float32 ,
156156) where {C <: Maybe{AbstractMatrix{Float32}} , RM}
157157 i = @index (Global)
@@ -194,10 +194,10 @@ end
194194
195195 # Discard Gaussians outside of image plane.
196196 if (
197- (mean_2D[1 ] + radius) ≤ 0 ||
198- (mean_2D[1 ] - radius) ≥ resolution[1 ] ||
199- (mean_2D[2 ] + radius) ≤ 0 ||
200- (mean_2D[2 ] - radius) ≥ resolution[2 ]
197+ (mean_2D[1 ] + radius) ≤ 0f0 ||
198+ (mean_2D[1 ] - radius) ≥ Float32 ( resolution[1 ]) ||
199+ (mean_2D[2 ] + radius) ≤ 0f0 ||
200+ (mean_2D[2 ] - radius) ≥ Float32 ( resolution[2 ])
201201 )
202202 radii[i] = 0 i32
203203 return
0 commit comments