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

Function renderViewOnViewerThread

src/python/lfs/py_rendering.cpp:480–542  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

478 }
479
480 [[nodiscard]] std::optional<core::Tensor> renderViewOnViewerThread(
481 const glm::mat3& rotation,
482 const glm::vec3& translation,
483 const int width,
484 const int height,
485 const float fov_degrees,
486 const PreviewReadback readback,
487 const std::optional<glm::vec3>& background_color_override,
488 const std::optional<bool> orthographic_override = std::nullopt,
489 const std::optional<float> ortho_scale_override = std::nullopt) {
490 if (width <= 0 || height <= 0 || !std::isfinite(fov_degrees) || fov_degrees <= 0.0f) {
491 return std::nullopt;
492 }
493
494 auto* const viewer = get_visualizer();
495 auto* const rendering_manager = viewer ? viewer->getRenderingManager() : nullptr;
496 auto* const scene_manager = viewer ? viewer->getSceneManager() : nullptr;
497 if (!rendering_manager || !scene_manager) {
498 return std::nullopt;
499 }
500
501 std::shared_ptr<core::Tensor> image;
502 if (readback == PreviewReadback::UInt8Rgba) {
503 image = rendering_manager->renderPreviewImageRgba8(
504 scene_manager,
505 rotation,
506 translation,
507 lfs::rendering::vFovToFocalLength(fov_degrees),
508 width,
509 height,
510 orthographic_override,
511 ortho_scale_override);
512 } else if (readback == PreviewReadback::UInt8Rgb) {
513 image = rendering_manager->renderPreviewImageRgb8(
514 scene_manager,
515 rotation,
516 translation,
517 lfs::rendering::vFovToFocalLength(fov_degrees),
518 width,
519 height,
520 background_color_override,
521 orthographic_override,
522 ortho_scale_override);
523 } else {
524 image = rendering_manager->renderPreviewImage(
525 scene_manager,
526 rotation,
527 translation,
528 lfs::rendering::vFovToFocalLength(fov_degrees),
529 width,
530 height,
531 background_color_override,
532 orthographic_override,
533 ortho_scale_override);
534 }
535 if (readback != PreviewReadback::FloatRgb) {
536 rendering_manager->releasePreviewImageResources();
537 }

Callers 1

renderViewThreadSafeFunction · 0.85

Calls 9

get_visualizerFunction · 0.85
vFovToFocalLengthFunction · 0.85
renderPreviewImageMethod · 0.80
getRenderingManagerMethod · 0.45
getSceneManagerMethod · 0.45
is_validMethod · 0.45

Tested by

no test coverage detected