Class: Gsplat::Ops::FullyFusedProjection
- Inherits:
-
Autograd::Function
- Object
- Autograd::Function
- Gsplat::Ops::FullyFusedProjection
- Defined in:
- lib/gsplat/ops/projection.rb
Overview
Fused world-to-camera transform, covariance projection, and culling.
Class Method Summary collapse
-
.apply(*inputs, calc_compensations: false, **options) ⇒ Object
private
Adds the optional compensation placeholder used by the public tuple.
-
.backward(context, _grad_radii, grad_means2d, grad_depths, grad_conics, grad_compensations = nil) ⇒ Object
rubocop:disable Metrics/ParameterLists.
-
.forward(context, means, covars, quaternions, scales, viewmats, intrinsics, width, height, **options) ⇒ Object
rubocop:disable Metrics/ParameterLists.
Class Method Details
.apply(*inputs, calc_compensations: false, **options) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Adds the optional compensation placeholder used by the public tuple.
16 17 18 19 |
# File 'lib/gsplat/ops/projection.rb', line 16 def apply(*inputs, calc_compensations: false, **) outputs = super calc_compensations ? outputs : [*outputs, nil] end |
.backward(context, _grad_radii, grad_means2d, grad_depths, grad_conics, grad_compensations = nil) ⇒ Object
rubocop:disable Metrics/ParameterLists
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/gsplat/ops/projection.rb', line 41 def backward(context, _grad_radii, grad_means2d, grad_depths, grad_conics, grad_compensations = nil) # rubocop:enable Metrics/ParameterLists means, covars, quaternions, scales, viewmats, intrinsics, width, height, = context.saved_values input_gradients = Backend.dispatch( :fully_fused_projection_backward, means, covars, quaternions, scales, viewmats, intrinsics, width, height, grad_means2d, grad_depths, grad_conics, grad_compensations, ** ) [*input_gradients, nil, nil, nil, nil] end |
.forward(context, means, covars, quaternions, scales, viewmats, intrinsics, width, height, **options) ⇒ Object
rubocop:disable Metrics/ParameterLists
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/gsplat/ops/projection.rb', line 22 def forward(context, means, covars, quaternions, scales, viewmats, intrinsics, width, height, **) # rubocop:enable Metrics/ParameterLists context.save(means, covars, quaternions, scales, viewmats, intrinsics, width, height, ) outputs = Backend.dispatch( :fully_fused_projection_forward, means, covars, quaternions, scales, viewmats, intrinsics, width, height, ** ) .fetch(:calc_compensations) ? outputs : outputs.first(4) end |