MCPcopy Create free account
hub / github.com/MrNeRF/LichtFeld-Studio / renderSplatAssetPreview

Function renderSplatAssetPreview

src/python/lfs/py_rendering.cpp:154–201  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

152 }
153
154 [[nodiscard]] std::optional<core::Tensor> renderSplatAssetPreview(
155 vis::RenderingManager& rendering_manager,
156 core::SplatData& splat,
157 const int width,
158 const int height,
159 const float focal_length_mm,
160 const glm::mat3* custom_rotation = nullptr,
161 const glm::vec3* custom_translation = nullptr) {
162 if (splat.size() == 0) {
163 return std::nullopt;
164 }
165
166 Viewport preview_viewport(
167 static_cast<std::size_t>(width),
168 static_cast<std::size_t>(height));
169 if (custom_rotation && custom_translation) {
170 preview_viewport.setViewMatrix(*custom_rotation, *custom_translation);
171 } else {
172 preview_viewport.camera.resetToHome();
173 }
174
175 vis::SceneRenderState scene_state;
176 scene_state.combined_model = &splat;
177 scene_state.model_transforms = {
178 rendering::dataWorldTransformToVisualizerWorld(glm::mat4(1.0f)),
179 };
180 scene_state.transform_indices = std::make_shared<core::Tensor>(
181 core::Tensor::zeros(
182 {static_cast<std::size_t>(splat.size())},
183 core::Device::CUDA,
184 core::DataType::Int32));
185 scene_state.node_visibility_mask = {true};
186 scene_state.selected_node_mask = {true};
187 scene_state.visible_splat_count = 1;
188
189 const auto image = rendering_manager.renderPreviewImage(
190 splat,
191 std::move(scene_state),
192 preview_viewport.getRotationMatrix(),
193 preview_viewport.getTranslation(),
194 focal_length_mm,
195 width,
196 height);
197 if (!image || !image->is_valid()) {
198 return std::nullopt;
199 }
200 return image->clone();
201 }
202
203 [[nodiscard]] std::optional<core::Tensor> renderPointCloudAssetPreview(
204 vis::RenderingManager& rendering_manager,

Callers 1

Calls 10

moveFunction · 0.85
setViewMatrixMethod · 0.80
resetToHomeMethod · 0.80
renderPreviewImageMethod · 0.80
getRotationMatrixMethod · 0.80
getTranslationMethod · 0.80
sizeMethod · 0.45
is_validMethod · 0.45
cloneMethod · 0.45

Tested by

no test coverage detected