ernie-renderer 0.1.0.dev196__tar.gz → 0.1.0.dev202__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/CMakeLists.txt +1 -1
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/PKG-INFO +2 -2
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/README.md +1 -1
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/demos/lighting/illuminants.cpp +7 -14
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/demos/lighting/illuminants.py +3 -6
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/demos/viewer/sun_panel.cpp +12 -12
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/demos/viewer/sun_panel.py +7 -10
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/docs/getting-started/demos.md +7 -7
- ernie_renderer-0.1.0.dev202/docs/js/sidebar.js +29 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/app/demo.cpp +96 -47
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/app/demo.h +15 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/CMakeLists.txt +2 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/embedded_shaders.h +2 -0
- ernie_renderer-0.1.0.dev202/ernie/kernel/film/filter_flare.slang +118 -0
- ernie_renderer-0.1.0.dev202/ernie/kernel/film/filter_stray_light.slang +99 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/film/sensor.slang +21 -2
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/python/demo.cpp +3 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/python/scene.cpp +9 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/raster/renderer.cpp +24 -2
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/isd.cpp +64 -3
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/isd.h +29 -6
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/sensor_filters.cpp +73 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/sensor_filters.h +8 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/fixtures/isd/README.md +1 -0
- ernie_renderer-0.1.0.dev202/ernie/test/fixtures/isd/jitterFramer.json +97 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/python/test_isd.py +14 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/raster_standard_filters_gpu_test.cpp +124 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/scene_isd_test.cpp +66 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/mkdocs.yml +4 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/.clang-format +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/.clang-tidy +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/.cmake-format.yaml +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/.gitattributes +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/.github/dependabot.yml +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/.github/pull_request_template.md +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/.github/scripts/ci_metrics.py +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/.github/workflows/ci-metrics.yml +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/.github/workflows/ci.yml +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/.gitignore +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/.pre-commit-config.yaml +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/CITATION.cff +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/CMakePresets.json +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/CONTRIBUTING.md +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/LICENSE +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/cmake/EmbedShaders.cmake +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/cmake/ErnieCPackOptions.cmake +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/cmake/ErnieConfig.cmake.in +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/cmake/ErnieInstall.cmake +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/cmake/ErnieLicenses.cmake +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/cmake/ErniePackaging.cmake +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/cmake/ErnieTesting.cmake +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/cmake/cppcheck/ernie.cfg +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/cmake/ernie_exports.map +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/cmake/third_party/dear_imgui/CMakeLists.txt +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/cmake/third_party/dear_imgui.cmake +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/cmake/third_party/dlpack.cmake +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/cmake/third_party/embed_file.cmake +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/cmake/third_party/glfw.cmake +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/cmake/third_party/glm.cmake +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/cmake/third_party/googletest.cmake +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/cmake/third_party/gui_fonts.cmake +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/cmake/third_party/imguizmo.cmake +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/cmake/third_party/implot.cmake +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/cmake/third_party/json.cmake +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/cmake/third_party/meshoptimizer.cmake +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/cmake/third_party/moltenvk.cmake +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/cmake/third_party/nanobind.cmake +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/cmake/third_party/openexr.cmake +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/cmake/third_party/slang.cmake +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/cmake/third_party/stb.cmake +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/cmake/third_party/tracy.cmake +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/cmake/third_party/vma/vma.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/cmake/third_party/vma.cmake +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/cmake/third_party/volk.cmake +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/cmake/third_party/vulkan_headers.cmake +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/demos/CMakeLists.txt +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/demos/batched/batch_camera.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/demos/batched/batch_camera.py +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/demos/main.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/demos/util.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/demos/util.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/docs/Makefile +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/docs/README.md +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/docs/api/cpp.md +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/docs/api/python/app.md +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/docs/api/python/astronomy.md +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/docs/api/python/batch.md +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/docs/api/python/cameras.md +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/docs/api/python/demo.md +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/docs/api/python/rendering.md +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/docs/api/python/scene.md +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/docs/api/python/schemas.md +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/docs/api/python/tokens.md +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/docs/concepts/cameras.md +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/docs/concepts/lighting.md +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/docs/concepts/materials.md +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/docs/concepts/scene.md +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/docs/concepts/sensor-filters.md +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/docs/concepts/shadows.md +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/docs/concepts/spectral.md +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/docs/concepts/star-fields.md +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/docs/concepts/terrain.md +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/docs/concepts/transforms.md +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/docs/css/extra.css +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/docs/extending/custom-aovs.md +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/docs/extending/custom-brdfs.md +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/docs/extending/custom-lenses.md +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/docs/extending/custom-panels.md +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/docs/extending/custom-render-delegates.md +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/docs/extending/custom-sensor-filters.md +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/docs/extending/custom-spectra.md +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/docs/extending/custom-star-catalogs.md +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/docs/extending/debug-draw.md +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/docs/extending/frame-callbacks.md +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/docs/extending/index.md +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/docs/getting-started/installation.md +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/docs/getting-started/quickstart.md +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/docs/getting-started/viewer.md +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/docs/guides/batched-rendering.md +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/docs/guides/gpu-interop.md +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/docs/guides/scenes.md +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/docs/index.md +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/docs/requirements.txt +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/CMakeLists.txt +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/app/CMakeLists.txt +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/app/app.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/app/builtin_panels.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/app/camera_panel.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/app/cli.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/app/cli.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/app/create.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/app/create.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/app/file_dialog.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/app/file_dialog.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/app/icons.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/app/log_panel.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/app/main.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/app/panel.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/app/panel.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/app/prim_icons.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/app/prim_icons.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/app/prim_schemas.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/app/prim_schemas.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/app/profiler_panel.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/app/properties_panel.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/app/property_fields.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/app/property_fields.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/app/session.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/app/session.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/app/settings_panel.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/app/stage_panel.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/app/theme.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/app/theme.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/app/viewer.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/app/viewer.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/device/CMakeLists.txt +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/device/buffer.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/device/buffer.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/device/compute_interop.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/device/compute_interop.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/device/cuda_interop.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/device/cuda_interop.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/device/frame_uploads.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/device/frame_uploads.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/device/gpu_profile.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/device/gpu_timer.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/device/gpu_timer.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/device/image.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/device/image.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/device/offscreen_target.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/device/offscreen_target.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/device/pipeline.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/device/pipeline.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/device/shader_compiler.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/device/shader_compiler.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/device/swapchain.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/device/swapchain.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/device/vulkan_context.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/device/vulkan_context.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/geometry/CMakeLists.txt +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/geometry/cube_sphere_lod.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/geometry/cube_sphere_lod.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/geometry/frustum.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/geometry/frustum.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/geometry/lod_quadtree.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/geometry/lod_quadtree.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/geometry/mesh_data.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/geometry/mesh_data.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/geometry/primitives.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/geometry/primitives.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/closure/brdf.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/closure/hapke.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/closure/lambert.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/closure/lommel_seeliger.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/closure/lunar_lambert.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/closure/oren_nayar.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/closure/preview_surface.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/film/cube_faces.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/film/filter_bayer.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/film/filter_blooming.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/film/filter_color_matrix.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/film/filter_compand.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/film/filter_compand_table.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/film/filter_dark_current.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/film/filter_defect_pixels.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/film/filter_defocus.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/film/filter_demosaic.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/film/filter_detector_pattern.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/film/filter_glare.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/film/filter_jpeg.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/film/filter_lag.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/film/filter_measured_qe.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/film/filter_psf.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/film/filter_readout_taps.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/film/filter_smear.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/film/filter_spectral_transmission.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/film/filter_tdi.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/film/filter_temporal_average.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/film/filter_tone_curve.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/film/filter_white_balance.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/film/lens.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/film/pyramid.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/raster/cull.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/raster/depth_range.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/raster/frame.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/raster/ground.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/raster/hzb.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/raster/instance_anchors.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/raster/instance_compose.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/raster/light_views.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/raster/mesh.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/raster/mesh_normals.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/raster/meter.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/raster/minimal_resolve.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/raster/motion.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/raster/motion_vectors.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/raster/overlay.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/raster/planet.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/raster/planet_color.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/raster/planet_shadow.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/raster/points.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/raster/present.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/raster/projection_pinhole.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/raster/projection_pushbroom.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/raster/shading.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/raster/surface.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/raster/terrain.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/raster/terrain_color.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/raster/terrain_horizon.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/raster/terrain_shadow.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/raster/terrain_update.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/kernel/raster/views.slang +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/python/CMakeLists.txt +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/python/app.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/python/bindings.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/python/ernie/__init__.py +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/python/ernie/__main__.py +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/python/ernie/app.py +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/python/ernie/batch.py +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/python/ernie/cli.py +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/python/ernie/demo.py +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/python/ernie/demos/__init__.py +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/python/ernie/demos/__main__.py +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/python/ernie/schema.py +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/python/module.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/python/render.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/python/scene_json.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/python/schema.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/python/stub_schema.py +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/python/tensor.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/raster/CMakeLists.txt +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/raster/delegate.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/raster/delegate.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/raster/drawable.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/raster/ground_drawable.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/raster/ground_drawable.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/raster/material.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/raster/material.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/raster/mesh_drawable.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/raster/mesh_drawable.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/raster/minimal_targets.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/raster/minimal_targets.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/raster/overlay_pass.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/raster/overlay_pass.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/raster/planet_drawable.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/raster/planet_drawable.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/raster/points_drawable.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/raster/points_drawable.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/raster/poisson_disk.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/raster/poisson_disk.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/raster/render_targets.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/raster/render_targets.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/raster/renderer.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/raster/sensor_plan.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/raster/sensor_plan.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/raster/shadow_cascades.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/raster/shadow_cascades.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/raster/terrain_drawable.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/raster/terrain_drawable.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/CMakeLists.txt +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/base_schemas.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/base_schemas.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/brdf.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/brdf.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/cahvore.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/cahvore.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/camera.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/camera.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/camera_schemas.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/camera_schemas.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/edit_history.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/edit_history.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/geometry_schemas.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/geometry_schemas.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/instruments.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/instruments.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/light_schemas.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/light_schemas.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/material.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/material_schemas.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/material_schemas.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/orbit_controller.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/orbit_controller.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/overlay.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/overlay.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/path.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/path.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/prim_type.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/prim_type.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/render_schemas.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/render_schemas.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/scene.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/scene.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/scene_json.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/scene_json.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/schema.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/schema.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/terrain_schemas.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/terrain_schemas.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/tokens.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/value.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/wide_view.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/wide_view.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/xform.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/scene/xform.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/session/CMakeLists.txt +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/session/backends.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/session/delegate.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/session/delegate.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/session/frame_params.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/session/frame_params.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/session/outputs.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/session/outputs.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/session/product_frame.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/session/renderer.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/session/renderer.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/session/resolve.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/session/resolve.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/session/sampling.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/CMakeLists.txt +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/app_demo_gpu_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/app_demo_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/app_file_dialog_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/app_panel_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/app_prim_schemas_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/app_session_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/app_theme_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/app_viewer_gpu_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/device_cuda_interop_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/device_frame_uploads_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/device_pipeline_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/device_shader_compiler_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/device_vulkan_context_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/fixtures/cahvore/README.md +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/fixtures/cahvore/m2020_camera_models.json +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/fixtures/images/grey16.png +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/fixtures/isd/constVelocityLineScan.json +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/fixtures/isd/ctxLineScan.json +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/fixtures/isd/dawnfc_radtan.json +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/fixtures/isd/lroWacPushFrame.json +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/fixtures/isd/orbitalFramer.json +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/fixtures/isd/orbitalLineScan.json +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/fixtures/isd/orbitalPushFrame.json +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/fixtures/isd/simpleFramerISD.json +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/fixtures/isd/toughLroNacLineScan.json +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/fixtures/scene_basic.json +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/geometry_cube_sphere_lod_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/geometry_frustum_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/geometry_lod_quadtree_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/geometry_mesh_data_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/geometry_primitives_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/install/CMakeLists.txt +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/install/consumer.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/install/run_install_test.cmake +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/python/conftest.py +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/python/test_app.py +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/python/test_batch.py +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/python/test_cahvore.py +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/python/test_cuda.py +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/python/test_demos.py +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/python/test_filters.py +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/python/test_instruments.py +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/python/test_map.py +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/python/test_materials.py +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/python/test_minimal.py +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/python/test_overlays.py +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/python/test_readme.py +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/python/test_render.py +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/python/test_scene.py +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/python/test_schema.py +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/python/test_schema_camera.py +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/python/test_schema_geometry.py +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/python/test_schema_material.py +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/python/test_schema_render.py +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/python/test_schema_terrain.py +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/python/test_stars.py +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/python/test_step.py +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/python/test_xform.py +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/python/test_xform_gpu.py +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/python/test_xform_gpu_cameras.py +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/python/test_xform_gpu_compose.py +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/python/test_xform_gpu_lights.py +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/python/test_xform_gpu_map.py +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/python/test_xform_gpu_points.py +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/raster_batch_gpu_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/raster_culling_gpu_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/raster_delegate_gpu_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/raster_delegate_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/raster_gpu_meshes_gpu_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/raster_gpu_terrain_gpu_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/raster_hex_tiling_gpu_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/raster_lens_rays_gpu_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/raster_lights_gpu_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/raster_mesh_drawable_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/raster_motion_gpu_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/raster_overlays_gpu_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/raster_planet_gpu_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/raster_points_gpu_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/raster_poisson_disk_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/raster_products_gpu_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/raster_sensor_filters_gpu_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/raster_sensor_plan_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/raster_shadow_cascades_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/raster_terrain_drawable_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/raster_textures_gpu_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/raster_zero_copy_gpu_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/scene_brdf_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/scene_brdf_vulkan_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/scene_cahvore_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/scene_camera_schemas_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/scene_camera_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/scene_edit_history_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/scene_geometry_schemas_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/scene_json_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/scene_material_schemas_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/scene_orbit_controller_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/scene_overlay_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/scene_path_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/scene_prim_type_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/scene_render_schemas_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/scene_scene_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/scene_schema_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/scene_sensor_filters_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/scene_terrain_schemas_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/scene_wide_view_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/scene_xform_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/session_delegate_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/session_frame_params_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/session_gpu_xform_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/session_lights_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/session_resolve_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/session_sampling_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/support/brdf_reference.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/support/delegate_scenes.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/support/delegate_scenes.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/support/terrain_harness.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/support/test_raster.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/support/vulkan_fixture.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/util_astronomy_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/util_ies_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/util_image_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/util_spectrum_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/test/util_tensor_test.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/util/CMakeLists.txt +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/util/astronomy.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/util/astronomy.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/util/ies.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/util/ies.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/util/image.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/util/image.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/util/least_squares.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/util/profile.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/util/profiler.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/util/profiler.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/util/raster_checks.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/util/raster_view.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/util/shader_source.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/util/spectrum.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/util/spectrum.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/util/tensor.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/ernie/util/tensor.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/pyproject.toml +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/third_party/README.md +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/third_party/cameramodelutilsjs/LICENSE +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/third_party/dlpack/LICENSE +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/third_party/dlpack/include/dlpack/dlpack.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/third_party/stb/LICENSE +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/third_party/stb/stb.cpp +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/third_party/stb/stb_easy_font.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/third_party/stb/stb_image.h +0 -0
- {ernie_renderer-0.1.0.dev196 → ernie_renderer-0.1.0.dev202}/third_party/stb/stb_image_write.h +0 -0
|
@@ -17,7 +17,7 @@ project(
|
|
|
17
17
|
# reads it here too (pyproject.toml), and the packages turn it into "~dev12".
|
|
18
18
|
# One line, as CI rewrites it and the wheel's version regex reads it.
|
|
19
19
|
# cmake-format: off
|
|
20
|
-
set(ERNIE_VERSION_SUFFIX ".
|
|
20
|
+
set(ERNIE_VERSION_SUFFIX ".dev202" CACHE STRING "Pre-release suffix of Ernie's version, such as .dev12")
|
|
21
21
|
# cmake-format: on
|
|
22
22
|
set(ERNIE_VERSION "${PROJECT_VERSION}${ERNIE_VERSION_SUFFIX}")
|
|
23
23
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ernie-renderer
|
|
3
|
-
Version: 0.1.0.
|
|
3
|
+
Version: 0.1.0.dev202
|
|
4
4
|
Summary: Efficient Renderer for Natural and Interplanetary Environments: a spectral Vulkan renderer with a USD-style scene and batched cameras
|
|
5
5
|
Keywords: rendering,spectral,vulkan,planetary,space,sensor-simulation,reinforcement-learning,robotics
|
|
6
6
|
Author: Alex Maietta
|
|
@@ -37,7 +37,7 @@ Description-Content-Type: text/markdown
|
|
|
37
37
|
|
|
38
38
|
Ernie is a physically accurate, real-time, spectral renderer for interplanetary environments.
|
|
39
39
|
|
|
40
|
-
We provide C++ and Python APIs and a Hydra-like scene API. It is a Vulkan 1.3 rasterizer that runs on Linux
|
|
40
|
+
We provide C++ and Python APIs and a Hydra-like scene API. It is a Vulkan 1.3 rasterizer that runs on Linux, and builds on Windows and macOS (experimental: not yet tested there). Ernie is designed around physical quantities rather than artistic parameters: lights, materials and cameras are described the way they are measured, so a render can be compared against a real instrument. For reinforcement learning, Ernie renders batches of cameras in one step, shares data zero copy with any DLPack tensor (PyTorch, JAX, Warp, NumPy), and has a fast mode with simpler shading.
|
|
41
41
|
|
|
42
42
|
Ernie's key features related to planetary robotics and sensing:
|
|
43
43
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
Ernie is a physically accurate, real-time, spectral renderer for interplanetary environments.
|
|
8
8
|
|
|
9
|
-
We provide C++ and Python APIs and a Hydra-like scene API. It is a Vulkan 1.3 rasterizer that runs on Linux
|
|
9
|
+
We provide C++ and Python APIs and a Hydra-like scene API. It is a Vulkan 1.3 rasterizer that runs on Linux, and builds on Windows and macOS (experimental: not yet tested there). Ernie is designed around physical quantities rather than artistic parameters: lights, materials and cameras are described the way they are measured, so a render can be compared against a real instrument. For reinforcement learning, Ernie renders batches of cameras in one step, shares data zero copy with any DLPack tensor (PyTorch, JAX, Warp, NumPy), and has a fast mode with simpler shading.
|
|
10
10
|
|
|
11
11
|
Ernie's key features related to planetary robotics and sensing:
|
|
12
12
|
|
|
@@ -28,8 +28,6 @@
|
|
|
28
28
|
#include "ernie/scene/xform.h"
|
|
29
29
|
#include "util.h"
|
|
30
30
|
|
|
31
|
-
#include <imgui.h>
|
|
32
|
-
|
|
33
31
|
#include <algorithm>
|
|
34
32
|
#include <array>
|
|
35
33
|
#include <cmath>
|
|
@@ -146,20 +144,15 @@ class IlluminantsDemo : public app::Demo {
|
|
|
146
144
|
.SetAmbient(0.0);
|
|
147
145
|
LightWith(0);
|
|
148
146
|
|
|
147
|
+
// The demo's option, in the Demos panel: the illuminant.
|
|
148
|
+
std::vector<std::string> names;
|
|
149
|
+
for (const Illuminant& illuminant : kIlluminants) {
|
|
150
|
+
names.emplace_back(illuminant.name);
|
|
151
|
+
}
|
|
152
|
+
Widgets().Combo("Illuminant", std::move(names), 0,
|
|
153
|
+
[this](std::size_t index) { LightWith(static_cast<int>(index)); });
|
|
149
154
|
if (viewer != nullptr) {
|
|
150
|
-
// In the viewer, a panel switches the illuminant.
|
|
151
155
|
viewer->SetActiveCamera("/World/Camera");
|
|
152
|
-
viewer->AddPanel("Illuminant", app::Dock::Right, [this](app::Viewer&) {
|
|
153
|
-
int index = illuminant_;
|
|
154
|
-
for (int i = 0; i < static_cast<int>(kIlluminants.size()); ++i) {
|
|
155
|
-
if (ImGui::RadioButton(kIlluminants[i].name, i == index)) {
|
|
156
|
-
index = i;
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
if (index != illuminant_) {
|
|
160
|
-
LightWith(index);
|
|
161
|
-
}
|
|
162
|
-
});
|
|
163
156
|
}
|
|
164
157
|
}
|
|
165
158
|
|
|
@@ -102,14 +102,11 @@ class Demo(ernie.demo.Demo):
|
|
|
102
102
|
resolution=(448, 300), ambient=0.0)
|
|
103
103
|
self.light_with(0)
|
|
104
104
|
|
|
105
|
+
# The demo's option, in the Demos panel: the illuminant.
|
|
106
|
+
self.widgets.combo("Illuminant", [name for name, _, _ in ILLUMINANTS], 0,
|
|
107
|
+
on_change=self.light_with)
|
|
105
108
|
if viewer is not None:
|
|
106
|
-
# In the viewer, a panel switches the illuminant.
|
|
107
|
-
from ernie.app import Dock
|
|
108
|
-
|
|
109
109
|
viewer.active_camera = camera.path
|
|
110
|
-
panel = viewer.add_panel("Illuminant", Dock.RIGHT)
|
|
111
|
-
panel.combo("Illuminant", [name for name, _, _ in ILLUMINANTS], 0,
|
|
112
|
-
on_change=self.light_with)
|
|
113
110
|
|
|
114
111
|
def light_with(self, index):
|
|
115
112
|
_, illuminant, kelvin = ILLUMINANTS[index]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// SPDX-License-Identifier: BSD-3-Clause
|
|
2
|
-
// Opens the viewer on a scene built in code, with
|
|
3
|
-
// twin of sun_panel.py.
|
|
2
|
+
// Opens the viewer on a scene built in code, with options in the Demos panel that move the sun.
|
|
3
|
+
// The C++ twin of sun_panel.py.
|
|
4
4
|
//
|
|
5
5
|
// ernie --demo viewer/sun_panel [--viewer null --output sun.png]
|
|
6
6
|
|
|
@@ -43,15 +43,15 @@ class SunPanelDemo : public app::Demo {
|
|
|
43
43
|
.SetFocalLength(24.0)
|
|
44
44
|
.SetTransform(LookAtTransform({0.0, -14.0, 6.0}, {0.0, 0.0, 0.5}, {0.0, 0.0, 1.0}));
|
|
45
45
|
AimSun();
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// The demo's options, in the Demos panel: sliders drawn with Dear ImGui that move the sun,
|
|
49
|
+
// which the next frame renders.
|
|
50
|
+
void Gui() override {
|
|
51
|
+
bool changed = ImGui::SliderFloat("Elevation", &elevation_, 1.0f, 90.0f);
|
|
52
|
+
changed |= ImGui::SliderFloat("Azimuth", &azimuth_, 0.0f, 360.0f);
|
|
53
|
+
if (changed) {
|
|
54
|
+
AimSun();
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
|
|
@@ -76,4 +76,4 @@ class SunPanelDemo : public app::Demo {
|
|
|
76
76
|
} // namespace
|
|
77
77
|
|
|
78
78
|
ERNIE_REGISTER_DEMO(SunPanelDemo, "viewer", "sun panel",
|
|
79
|
-
"A scene built in code, with
|
|
79
|
+
"A scene built in code, with options that move the sun.");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# SPDX-License-Identifier: BSD-3-Clause
|
|
2
|
-
"""Opens the viewer on a scene built in code, with
|
|
3
|
-
Python twin of sun_panel.cpp.
|
|
2
|
+
"""Opens the viewer on a scene built in code, with options in the Demos panel that move the sun.
|
|
3
|
+
The Python twin of sun_panel.cpp.
|
|
4
4
|
|
|
5
5
|
python -m ernie.demos viewer/sun_panel [--viewer null --output sun.png]
|
|
6
6
|
"""
|
|
@@ -31,14 +31,11 @@ class Demo(ernie.demo.Demo):
|
|
|
31
31
|
self.elevation = 45.0
|
|
32
32
|
self.azimuth = 30.0
|
|
33
33
|
self.aim_sun()
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
on_change=lambda value: self.aim_sun(elevation=value))
|
|
40
|
-
panel.slider("Azimuth", 0.0, 360.0, self.azimuth,
|
|
41
|
-
on_change=lambda value: self.aim_sun(azimuth=value))
|
|
34
|
+
# The demo's options, in the Demos panel: sliders that move the sun.
|
|
35
|
+
self.widgets.slider("Elevation", 1.0, 90.0, self.elevation,
|
|
36
|
+
on_change=lambda value: self.aim_sun(elevation=value))
|
|
37
|
+
self.widgets.slider("Azimuth", 0.0, 360.0, self.azimuth,
|
|
38
|
+
on_change=lambda value: self.aim_sun(azimuth=value))
|
|
42
39
|
|
|
43
40
|
def aim_sun(self, elevation=None, azimuth=None):
|
|
44
41
|
self.elevation = self.elevation if elevation is None else elevation
|
|
@@ -24,7 +24,7 @@ python -m ernie.demos lighting/illuminants # one by name, with its options af
|
|
|
24
24
|
|
|
25
25
|
From a checkout, run the files themselves (`PYTHONPATH=build/python python demos/lighting/illuminants.py`), or a C++ demo's own program, which `-DERNIE_BUILD_DEMOS=ON` builds as `demo_<category>_<name>` (`build/bin/demo_lighting_illuminants`).
|
|
26
26
|
|
|
27
|
-
Each opens the viewer with a Demos panel
|
|
27
|
+
Each opens the viewer with a Demos panel at the bottom, a tab beside the Log and Stats. It lists the demos in the same language under a collapsing header per category; choosing one clears the scene and builds that demo in the same window. Below the list it pauses, single-steps and resets the running demo, describes it, and shows its options.
|
|
28
28
|
|
|
29
29
|
Every demo takes these options:
|
|
30
30
|
|
|
@@ -76,10 +76,9 @@ class Demo(ernie.demo.Demo):
|
|
|
76
76
|
tokens.TRANSFORM, ernie.distant_light_transform((0.4, -0.6, 0.7)))
|
|
77
77
|
world.define("Camera", ernie.Camera).set(
|
|
78
78
|
tokens.TRANSFORM, ernie.look_at_transform((0, -8, 3), (0, 0, 0.5)))
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
on_change=lambda value: self.ball.set(radius=value))
|
|
79
|
+
# The demo's options, shown in the Demos panel.
|
|
80
|
+
self.widgets.slider("Radius", 0.1, 2.0, 0.5,
|
|
81
|
+
on_change=lambda value: self.ball.set(radius=value))
|
|
83
82
|
|
|
84
83
|
def step(self):
|
|
85
84
|
self.ball.set(translate=(2.0 * self.time, 0, 0.5))
|
|
@@ -94,7 +93,8 @@ if __name__ == "__main__":
|
|
|
94
93
|
|
|
95
94
|
What to know:
|
|
96
95
|
|
|
97
|
-
-
|
|
96
|
+
- A demo's own controls go in the Demos panel's Options section: add widgets to `self.widgets` (sliders, checkboxes, combos, buttons, plots), which works with or without a viewer. C++ demos can also override `Gui()` and draw there with Dear ImGui, as Newton's examples' `gui(ui)` does.
|
|
97
|
+
- `viewer` is `None` under `--viewer null`, so put other viewer calls (such as `active_camera`) under `if viewer is not None`. Give the scene a camera of its own: without a viewer, and in tests, the scene renders through it.
|
|
98
98
|
- In a window `frame_dt` is the real time since the last frame (at most `max_frame_dt`). Without one it is `fixed_dt`, so runs repeat exactly. `self.time` is the demo's clock at the start of the step.
|
|
99
99
|
- A demo uses the viewer as any application does: `add_panel`, `on_frame`, `add_hud_item`, `active_camera`, `viewport_display`. A demo registers in a scope of its own (`Viewer.scope`), so when the Demos panel switches away, what it added is removed, and the viewport's display settings are restored. A camera, lighting or RenderSettings it chooses is kept over the viewer's reset of its session.
|
|
100
100
|
- Add your own options by overriding the class method `create_parser`, adding to what `super().create_parser()` returns. Give every option a default: the Demos panel opens demos with their defaults.
|
|
@@ -119,7 +119,7 @@ class BallDemo : public ernie::app::Demo {
|
|
|
119
119
|
: Demo(viewer, options) {
|
|
120
120
|
numFrames = 120;
|
|
121
121
|
ernie::Sphere::Define(GetScene(), "/World/Ball").SetRadius(0.5);
|
|
122
|
-
// ... a sun
|
|
122
|
+
// ... a sun, a camera, and options: Widgets().Slider(...), or override Gui()
|
|
123
123
|
}
|
|
124
124
|
|
|
125
125
|
void Step() override {
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// The readthedocs theme brings the current page's sidebar entry into view with scrollIntoView(),
|
|
2
|
+
// which scrolls every scrollable ancestor, the page included, so the page jumps to line up with the
|
|
3
|
+
// entry. Keep the theme's highlighting and expanding, but scroll only the sidebar, and only when
|
|
4
|
+
// the entry is out of its view.
|
|
5
|
+
(function () {
|
|
6
|
+
var nav = window.SphinxRtdTheme && window.SphinxRtdTheme.Navigation;
|
|
7
|
+
if (!nav || typeof nav.reset !== "function") {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
var reset = nav.reset;
|
|
11
|
+
nav.reset = function () {
|
|
12
|
+
var scrollIntoView = Element.prototype.scrollIntoView;
|
|
13
|
+
Element.prototype.scrollIntoView = function () {
|
|
14
|
+
var sidebar = document.querySelector("div.wy-side-scroll");
|
|
15
|
+
if (!sidebar || !sidebar.contains(this)) {
|
|
16
|
+
return scrollIntoView.apply(this, arguments);
|
|
17
|
+
}
|
|
18
|
+
var top = this.getBoundingClientRect().top - sidebar.getBoundingClientRect().top;
|
|
19
|
+
if (top < 0 || top > sidebar.clientHeight - this.offsetHeight) {
|
|
20
|
+
sidebar.scrollTop += top - sidebar.clientHeight / 3;
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
try {
|
|
24
|
+
return reset.apply(this, arguments);
|
|
25
|
+
} finally {
|
|
26
|
+
Element.prototype.scrollIntoView = scrollIntoView;
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
})();
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
#include "ernie/app/panel.h"
|
|
5
5
|
|
|
6
|
+
#include <imgui.h>
|
|
6
7
|
#include <stb_image_write.h>
|
|
7
8
|
|
|
8
9
|
#include <algorithm>
|
|
@@ -199,6 +200,19 @@ void Demo::TestFinal() {
|
|
|
199
200
|
|
|
200
201
|
void Demo::Close() {}
|
|
201
202
|
|
|
203
|
+
void Demo::Gui() {}
|
|
204
|
+
|
|
205
|
+
WidgetPanel& Demo::Widgets() {
|
|
206
|
+
return *SharedWidgets();
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
std::shared_ptr<WidgetPanel> Demo::SharedWidgets() {
|
|
210
|
+
if (!widgets_) {
|
|
211
|
+
widgets_ = std::make_shared<WidgetPanel>("Options", Dock::Floating);
|
|
212
|
+
}
|
|
213
|
+
return widgets_;
|
|
214
|
+
}
|
|
215
|
+
|
|
202
216
|
std::uint64_t Demo::NumFrames() const {
|
|
203
217
|
return numFrames;
|
|
204
218
|
}
|
|
@@ -320,12 +334,12 @@ struct DemoRunner::State {
|
|
|
320
334
|
Viewer::Gizmo gizmo = Viewer::Gizmo::None;
|
|
321
335
|
bool gizmoLocal = false;
|
|
322
336
|
|
|
323
|
-
// The Demos panel and what it asked for during the last frame.
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
337
|
+
// The Demos panel, the demo it shows, and what it asked for during the last frame.
|
|
338
|
+
Panel* panel = nullptr;
|
|
339
|
+
Demo* running = nullptr;
|
|
340
|
+
std::string about; ///< The running demo's description.
|
|
341
|
+
bool paused = false;
|
|
327
342
|
std::optional<std::size_t> switchTo;
|
|
328
|
-
std::optional<bool> pausedRequest;
|
|
329
343
|
bool resetRequested = false;
|
|
330
344
|
bool singleStep = false;
|
|
331
345
|
|
|
@@ -340,11 +354,9 @@ struct DemoRunner::State {
|
|
|
340
354
|
}
|
|
341
355
|
|
|
342
356
|
void Announce(Demo& demo) {
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
panel->Set(about, description);
|
|
347
|
-
}
|
|
357
|
+
running = &demo;
|
|
358
|
+
about = DescriptionOf(demo);
|
|
359
|
+
viewer->Log(LogLevel::Info, "Demo: " + (about.empty() ? "untitled" : about));
|
|
348
360
|
}
|
|
349
361
|
|
|
350
362
|
std::string DescriptionOf(Demo& demo) const {
|
|
@@ -355,35 +367,77 @@ struct DemoRunner::State {
|
|
|
355
367
|
return description;
|
|
356
368
|
}
|
|
357
369
|
|
|
358
|
-
void AddPanel(
|
|
370
|
+
void AddPanel() {
|
|
359
371
|
const std::uint64_t previous = viewer->Scope();
|
|
360
372
|
viewer->SetScope(0);
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
std::vector<std::string> labels;
|
|
366
|
-
for (const DemoInfo& info : catalog) {
|
|
367
|
-
labels.push_back(info.Label());
|
|
368
|
-
}
|
|
369
|
-
panel->Combo("Demo", std::move(labels), current,
|
|
370
|
-
[this](std::size_t index) { switchTo = index; });
|
|
373
|
+
// In the bottom dock with the Log and Stats, the Log staying in front.
|
|
374
|
+
panel = &viewer->AddPanel("Demos", Dock::Bottom, [this](Viewer& v) { DrawPanel(v); });
|
|
375
|
+
if (viewer->FindPanel("Log") != nullptr) {
|
|
376
|
+
viewer->FocusPanel("Log");
|
|
371
377
|
}
|
|
372
|
-
panel->Separator();
|
|
373
|
-
panel->Checkbox("Paused", options.paused, [this](bool on) { pausedRequest = on; });
|
|
374
|
-
panel->Button("Step", [this] { singleStep = true; });
|
|
375
|
-
panel->Button("Reset", [this] { resetRequested = true; });
|
|
376
|
-
status = panel->Text("");
|
|
377
|
-
panel->Separator();
|
|
378
|
-
about = panel->Text(DescriptionOf(demo));
|
|
379
378
|
viewer->SetScope(previous);
|
|
380
379
|
}
|
|
381
380
|
|
|
381
|
+
/// The Demos panel, after Newton's example browser: a menu of the demos with a node per
|
|
382
|
+
/// category, the running demo's controls and description, and its own options.
|
|
383
|
+
void DrawPanel(Viewer& v) {
|
|
384
|
+
// A collapsing header per category, the catalogue listing each category's demos
|
|
385
|
+
// together; the running demo's opens first.
|
|
386
|
+
for (std::size_t first = 0; first < catalog.size();) {
|
|
387
|
+
const std::string& category = catalog[first].category;
|
|
388
|
+
std::size_t end = first;
|
|
389
|
+
while (end < catalog.size() && catalog[end].category == category) {
|
|
390
|
+
++end;
|
|
391
|
+
}
|
|
392
|
+
ImGui::SetNextItemOpen(current >= first && current < end, ImGuiCond_Appearing);
|
|
393
|
+
if (ImGui::CollapsingHeader(category.c_str())) {
|
|
394
|
+
ImGui::Indent();
|
|
395
|
+
for (std::size_t i = first; i < end; ++i) {
|
|
396
|
+
if (ImGui::Selectable(catalog[i].name.c_str(),
|
|
397
|
+
i == current && running != nullptr)) {
|
|
398
|
+
switchTo = i;
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
ImGui::Unindent();
|
|
402
|
+
}
|
|
403
|
+
first = end;
|
|
404
|
+
}
|
|
405
|
+
ImGui::SeparatorText(running != nullptr && current < catalog.size()
|
|
406
|
+
? catalog[current].Label().c_str()
|
|
407
|
+
: "No demo");
|
|
408
|
+
ImGui::Checkbox("Paused", &paused);
|
|
409
|
+
ImGui::SameLine();
|
|
410
|
+
if (ImGui::Button("Step")) {
|
|
411
|
+
singleStep = true;
|
|
412
|
+
}
|
|
413
|
+
ImGui::SameLine();
|
|
414
|
+
if (ImGui::Button("Reset")) {
|
|
415
|
+
resetRequested = true;
|
|
416
|
+
}
|
|
417
|
+
if (running == nullptr) {
|
|
418
|
+
return;
|
|
419
|
+
}
|
|
420
|
+
ImGui::SameLine();
|
|
421
|
+
ImGui::TextDisabled("frame %llu, %.2f s", static_cast<unsigned long long>(running->frame),
|
|
422
|
+
running->time);
|
|
423
|
+
if (!about.empty()) {
|
|
424
|
+
ImGui::TextWrapped("%s", about.c_str());
|
|
425
|
+
}
|
|
426
|
+
ImGui::SeparatorText("Options");
|
|
427
|
+
ImGui::PushID("options");
|
|
428
|
+
running->Widgets().Draw(v);
|
|
429
|
+
running->Gui();
|
|
430
|
+
ImGui::PopID();
|
|
431
|
+
}
|
|
432
|
+
|
|
382
433
|
/// Replaces `old` with a new build of the catalogue's demo `index`; null, with the error in
|
|
383
434
|
/// the log, if it cannot be built.
|
|
384
435
|
std::shared_ptr<Demo> Load(std::shared_ptr<Demo> old, std::size_t index) {
|
|
436
|
+
running = nullptr;
|
|
385
437
|
if (old) {
|
|
386
438
|
old->Close();
|
|
439
|
+
// Its widgets' callbacks may hold it (in Python, a cycle through C++).
|
|
440
|
+
old->Widgets().Clear();
|
|
387
441
|
}
|
|
388
442
|
viewer->RemoveScope(scope);
|
|
389
443
|
RestoreDisplay();
|
|
@@ -407,9 +461,7 @@ struct DemoRunner::State {
|
|
|
407
461
|
viewer->RemoveScope(scope);
|
|
408
462
|
viewer->ClearScene();
|
|
409
463
|
viewer->ResetSession();
|
|
410
|
-
|
|
411
|
-
panel->Set(about, std::string());
|
|
412
|
-
}
|
|
464
|
+
about.clear();
|
|
413
465
|
return nullptr;
|
|
414
466
|
}
|
|
415
467
|
}
|
|
@@ -417,6 +469,7 @@ struct DemoRunner::State {
|
|
|
417
469
|
/// Removes the running demo's registrations and the panel, which hold the demo (and in
|
|
418
470
|
/// Python, through it the viewer).
|
|
419
471
|
void Release() {
|
|
472
|
+
running = nullptr;
|
|
420
473
|
if (!viewer) {
|
|
421
474
|
return;
|
|
422
475
|
}
|
|
@@ -519,20 +572,18 @@ std::shared_ptr<Demo> DemoRunner::Run(std::shared_ptr<Demo> demo) {
|
|
|
519
572
|
try {
|
|
520
573
|
if (viewer != nullptr) {
|
|
521
574
|
viewer->ResetSession();
|
|
522
|
-
|
|
523
|
-
|
|
575
|
+
// The Demos panel, also in a hidden viewer, whose window captures show it; not in
|
|
576
|
+
// test runs, which check one demo.
|
|
577
|
+
if (!o.test) {
|
|
578
|
+
s.AddPanel();
|
|
524
579
|
}
|
|
525
580
|
s.Announce(*demo);
|
|
526
581
|
}
|
|
527
|
-
|
|
582
|
+
s.paused = o.paused && o.Windowed();
|
|
528
583
|
std::optional<Clock::time_point> timerStart;
|
|
529
584
|
std::uint64_t timedFrames = 0;
|
|
530
585
|
Clock::time_point last = Clock::now();
|
|
531
586
|
while (viewer == nullptr || viewer->IsOpen()) {
|
|
532
|
-
if (s.pausedRequest) {
|
|
533
|
-
paused = *s.pausedRequest;
|
|
534
|
-
s.pausedRequest.reset();
|
|
535
|
-
}
|
|
536
587
|
if (s.switchTo || s.resetRequested) {
|
|
537
588
|
const std::size_t index = s.switchTo.value_or(s.current);
|
|
538
589
|
s.switchTo.reset();
|
|
@@ -543,13 +594,6 @@ std::shared_ptr<Demo> DemoRunner::Run(std::shared_ptr<Demo> demo) {
|
|
|
543
594
|
viewer->Step();
|
|
544
595
|
continue;
|
|
545
596
|
}
|
|
546
|
-
if (s.panel != nullptr) {
|
|
547
|
-
char status[96];
|
|
548
|
-
std::snprintf(status, sizeof(status), "frame %llu, %.2f s%s",
|
|
549
|
-
static_cast<unsigned long long>(demo->frame), demo->time,
|
|
550
|
-
paused ? " (paused)" : "");
|
|
551
|
-
s.panel->Set(s.status, std::string(status));
|
|
552
|
-
}
|
|
553
597
|
const std::optional<std::uint64_t> limit =
|
|
554
598
|
o.numFrames ? o.numFrames
|
|
555
599
|
: (o.Windowed() ? std::nullopt
|
|
@@ -563,8 +607,8 @@ std::shared_ptr<Demo> DemoRunner::Run(std::shared_ptr<Demo> demo) {
|
|
|
563
607
|
demo->MaxFrameDt())
|
|
564
608
|
: demo->FixedDt();
|
|
565
609
|
last = now;
|
|
566
|
-
bool stepping = !paused;
|
|
567
|
-
if (paused && s.singleStep) {
|
|
610
|
+
bool stepping = !s.paused;
|
|
611
|
+
if (s.paused && s.singleStep) {
|
|
568
612
|
stepping = true;
|
|
569
613
|
s.singleStep = false;
|
|
570
614
|
}
|
|
@@ -621,8 +665,13 @@ std::shared_ptr<Demo> DemoRunner::Run(std::shared_ptr<Demo> demo) {
|
|
|
621
665
|
std::fflush(stdout);
|
|
622
666
|
if (demo) {
|
|
623
667
|
demo->Close();
|
|
668
|
+
// Its widgets' callbacks may hold it (in Python, a cycle through C++).
|
|
669
|
+
demo->Widgets().Clear();
|
|
624
670
|
}
|
|
625
671
|
} catch (...) {
|
|
672
|
+
if (demo) {
|
|
673
|
+
demo->Widgets().Clear();
|
|
674
|
+
}
|
|
626
675
|
s.Release();
|
|
627
676
|
throw;
|
|
628
677
|
}
|
|
@@ -106,6 +106,20 @@ class Demo {
|
|
|
106
106
|
/// replaces it; for timing reports and the like.
|
|
107
107
|
virtual void Close();
|
|
108
108
|
|
|
109
|
+
/// Draws the demo's own controls with Dear ImGui (`#include <imgui.h>`) in the Demos panel's
|
|
110
|
+
/// Options section each frame, after its `Widgets`, as Newton's examples' `gui(ui)` does;
|
|
111
|
+
/// nothing by default. Runs only in a viewer.
|
|
112
|
+
virtual void Gui();
|
|
113
|
+
|
|
114
|
+
/// The demo's controls in the Demos panel's Options section, as widgets (sliders, checkboxes,
|
|
115
|
+
/// combos) rather than ImGui calls, as Python demos add theirs (`widgets`). Add them in the
|
|
116
|
+
/// constructor, with or without a viewer; the runner drops them, with their callbacks, when
|
|
117
|
+
/// the demo ends or is replaced.
|
|
118
|
+
WidgetPanel& Widgets();
|
|
119
|
+
|
|
120
|
+
/// `Widgets` shared, for holders that may outlive the demo, such as its Python wrapper.
|
|
121
|
+
std::shared_ptr<WidgetPanel> SharedWidgets();
|
|
122
|
+
|
|
109
123
|
/// Frames to run without a window when `--num-frames` is not given: `numFrames`.
|
|
110
124
|
virtual std::uint64_t NumFrames() const;
|
|
111
125
|
/// Seconds a step advances without a window, for runs that repeat: `fixedDt`.
|
|
@@ -160,6 +174,7 @@ class Demo {
|
|
|
160
174
|
DemoOptions options_;
|
|
161
175
|
std::shared_ptr<Scene> ownScene_;
|
|
162
176
|
std::shared_ptr<Renderer> renderer_;
|
|
177
|
+
std::shared_ptr<WidgetPanel> widgets_;
|
|
163
178
|
Tensor image_;
|
|
164
179
|
bool untestedSteps_ = false;
|
|
165
180
|
bool untestedFinal_ = false;
|
|
@@ -21,6 +21,7 @@ set(ernie_shaders
|
|
|
21
21
|
film/filter_defect_pixels.slang=kFilterDefectPixelsSlang
|
|
22
22
|
film/filter_demosaic.slang=kFilterDemosaicSlang
|
|
23
23
|
film/filter_detector_pattern.slang=kFilterDetectorPatternSlang
|
|
24
|
+
film/filter_flare.slang=kFilterFlareSlang
|
|
24
25
|
film/filter_glare.slang=kFilterGlareSlang
|
|
25
26
|
film/filter_jpeg.slang=kFilterJpegSlang
|
|
26
27
|
film/filter_lag.slang=kFilterLagSlang
|
|
@@ -29,6 +30,7 @@ set(ernie_shaders
|
|
|
29
30
|
film/filter_readout_taps.slang=kFilterReadoutTapsSlang
|
|
30
31
|
film/filter_smear.slang=kFilterSmearSlang
|
|
31
32
|
film/filter_spectral_transmission.slang=kFilterSpectralTransmissionSlang
|
|
33
|
+
film/filter_stray_light.slang=kFilterStrayLightSlang
|
|
32
34
|
film/filter_tdi.slang=kFilterTdiSlang
|
|
33
35
|
film/filter_temporal_average.slang=kFilterTemporalAverageSlang
|
|
34
36
|
film/filter_tone_curve.slang=kFilterToneCurveSlang
|
|
@@ -44,6 +44,7 @@ extern const char kFilterDemosaicSlang[];
|
|
|
44
44
|
extern const char kFilterJpegSlang[];
|
|
45
45
|
extern const char kFilterSmearSlang[];
|
|
46
46
|
extern const char kFilterDetectorPatternSlang[];
|
|
47
|
+
extern const char kFilterFlareSlang[];
|
|
47
48
|
extern const char kFilterGlareSlang[];
|
|
48
49
|
extern const char kFilterLagSlang[];
|
|
49
50
|
extern const char kFilterMeasuredQeSlang[];
|
|
@@ -52,6 +53,7 @@ extern const char kFilterReadoutTapsSlang[];
|
|
|
52
53
|
extern const char kFilterTdiSlang[];
|
|
53
54
|
extern const char kFilterTemporalAverageSlang[];
|
|
54
55
|
extern const char kFilterSpectralTransmissionSlang[];
|
|
56
|
+
extern const char kFilterStrayLightSlang[];
|
|
55
57
|
extern const char kFilterToneCurveSlang[];
|
|
56
58
|
extern const char kFilterWhiteBalanceSlang[];
|
|
57
59
|
|