Module: Gsplat::Backend::RubyRasterizeToIndicesInRange
- Defined in:
- lib/gsplat/backend/ruby/rasterize_to_indices_in_range.rb
Overview
Reference implementation of contribution-index enumeration.
Class Method Summary collapse
-
.forward(range_start, range_end, transmittances, means2d, conics, opacities, width, height, tile_size, isect_offsets, flatten_ids) ⇒ Object
rubocop:disable Metrics/ParameterLists.
Class Method Details
.forward(range_start, range_end, transmittances, means2d, conics, opacities, width, height, tile_size, isect_offsets, flatten_ids) ⇒ Object
rubocop:disable Metrics/ParameterLists
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/gsplat/backend/ruby/rasterize_to_indices_in_range.rb', line 10 def forward(range_start, range_end, transmittances, means2d, conics, opacities, width, height, tile_size, isect_offsets, flatten_ids) # rubocop:enable Metrics/ParameterLists values = validate_inputs( range_start, range_end, transmittances, means2d, conics, opacities, width, height, tile_size, isect_offsets, flatten_ids ) transmittances, means2d, conics, opacities, offsets, ids = values gaussian_ids = [] pixel_ids = [] image_ids = [] means = means2d.reshape(means2d.shape[0] * means2d.shape[1], 2) conic_values = conics.reshape(conics.shape[0] * conics.shape[1], 3) opacity_values = opacities.flatten means2d.shape[0].times do |image| height.times do |row| width.times do |column| enumerate_pixel!( gaussian_ids, pixel_ids, image_ids, range_start, range_end, transmittances, means, conic_values, opacity_values, offsets, ids, image, row, column, means2d.shape[1], width, tile_size ) end end end [Numo::Int64.cast(gaussian_ids), Numo::Int64.cast(pixel_ids), Numo::Int64.cast(image_ids)] end |