ernie-renderer 0.1.0.dev189__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.
Files changed (508) hide show
  1. ernie_renderer-0.1.0.dev189/.clang-format +11 -0
  2. ernie_renderer-0.1.0.dev189/.clang-tidy +18 -0
  3. ernie_renderer-0.1.0.dev189/.cmake-format.yaml +11 -0
  4. ernie_renderer-0.1.0.dev189/.gitattributes +23 -0
  5. ernie_renderer-0.1.0.dev189/.github/ISSUE_TEMPLATE/bug_report.yml +58 -0
  6. ernie_renderer-0.1.0.dev189/.github/ISSUE_TEMPLATE/feature_request.yml +21 -0
  7. ernie_renderer-0.1.0.dev189/.github/dependabot.yml +14 -0
  8. ernie_renderer-0.1.0.dev189/.github/pull_request_template.md +11 -0
  9. ernie_renderer-0.1.0.dev189/.github/scripts/ci_metrics.py +103 -0
  10. ernie_renderer-0.1.0.dev189/.github/workflows/ci-metrics.yml +46 -0
  11. ernie_renderer-0.1.0.dev189/.github/workflows/ci.yml +489 -0
  12. ernie_renderer-0.1.0.dev189/.gitignore +17 -0
  13. ernie_renderer-0.1.0.dev189/.pre-commit-config.yaml +55 -0
  14. ernie_renderer-0.1.0.dev189/CITATION.cff +20 -0
  15. ernie_renderer-0.1.0.dev189/CMakeLists.txt +140 -0
  16. ernie_renderer-0.1.0.dev189/CMakePresets.json +46 -0
  17. ernie_renderer-0.1.0.dev189/CONTRIBUTING.md +70 -0
  18. ernie_renderer-0.1.0.dev189/LICENSE +28 -0
  19. ernie_renderer-0.1.0.dev189/PKG-INFO +247 -0
  20. ernie_renderer-0.1.0.dev189/README.md +216 -0
  21. ernie_renderer-0.1.0.dev189/cmake/EmbedShaders.cmake +18 -0
  22. ernie_renderer-0.1.0.dev189/cmake/ErnieCPackOptions.cmake +6 -0
  23. ernie_renderer-0.1.0.dev189/cmake/ErnieConfig.cmake.in +8 -0
  24. ernie_renderer-0.1.0.dev189/cmake/ErnieInstall.cmake +183 -0
  25. ernie_renderer-0.1.0.dev189/cmake/ErnieLicenses.cmake +101 -0
  26. ernie_renderer-0.1.0.dev189/cmake/ErniePackaging.cmake +132 -0
  27. ernie_renderer-0.1.0.dev189/cmake/ErnieTesting.cmake +47 -0
  28. ernie_renderer-0.1.0.dev189/cmake/cppcheck/ernie.cfg +12 -0
  29. ernie_renderer-0.1.0.dev189/cmake/ernie_exports.map +24 -0
  30. ernie_renderer-0.1.0.dev189/cmake/third_party/dear_imgui/CMakeLists.txt +19 -0
  31. ernie_renderer-0.1.0.dev189/cmake/third_party/dear_imgui.cmake +16 -0
  32. ernie_renderer-0.1.0.dev189/cmake/third_party/dlpack.cmake +3 -0
  33. ernie_renderer-0.1.0.dev189/cmake/third_party/embed_file.cmake +13 -0
  34. ernie_renderer-0.1.0.dev189/cmake/third_party/glfw.cmake +27 -0
  35. ernie_renderer-0.1.0.dev189/cmake/third_party/glm.cmake +21 -0
  36. ernie_renderer-0.1.0.dev189/cmake/third_party/googletest.cmake +17 -0
  37. ernie_renderer-0.1.0.dev189/cmake/third_party/gui_fonts.cmake +59 -0
  38. ernie_renderer-0.1.0.dev189/cmake/third_party/imguizmo.cmake +19 -0
  39. ernie_renderer-0.1.0.dev189/cmake/third_party/implot.cmake +19 -0
  40. ernie_renderer-0.1.0.dev189/cmake/third_party/json.cmake +16 -0
  41. ernie_renderer-0.1.0.dev189/cmake/third_party/meshoptimizer.cmake +22 -0
  42. ernie_renderer-0.1.0.dev189/cmake/third_party/moltenvk.cmake +23 -0
  43. ernie_renderer-0.1.0.dev189/cmake/third_party/nanobind.cmake +25 -0
  44. ernie_renderer-0.1.0.dev189/cmake/third_party/openexr.cmake +43 -0
  45. ernie_renderer-0.1.0.dev189/cmake/third_party/slang.cmake +69 -0
  46. ernie_renderer-0.1.0.dev189/cmake/third_party/stb.cmake +6 -0
  47. ernie_renderer-0.1.0.dev189/cmake/third_party/tracy.cmake +39 -0
  48. ernie_renderer-0.1.0.dev189/cmake/third_party/vma/vma.cpp +4 -0
  49. ernie_renderer-0.1.0.dev189/cmake/third_party/vma.cmake +23 -0
  50. ernie_renderer-0.1.0.dev189/cmake/third_party/volk.cmake +25 -0
  51. ernie_renderer-0.1.0.dev189/cmake/third_party/vulkan_headers.cmake +17 -0
  52. ernie_renderer-0.1.0.dev189/demos/CMakeLists.txt +34 -0
  53. ernie_renderer-0.1.0.dev189/demos/batched/batch_camera.py +203 -0
  54. ernie_renderer-0.1.0.dev189/demos/lighting/illuminants.cpp +219 -0
  55. ernie_renderer-0.1.0.dev189/demos/lighting/illuminants.py +150 -0
  56. ernie_renderer-0.1.0.dev189/demos/main.cpp +19 -0
  57. ernie_renderer-0.1.0.dev189/demos/util.cpp +96 -0
  58. ernie_renderer-0.1.0.dev189/demos/util.h +37 -0
  59. ernie_renderer-0.1.0.dev189/demos/viewer/sun_panel.cpp +79 -0
  60. ernie_renderer-0.1.0.dev189/demos/viewer/sun_panel.py +56 -0
  61. ernie_renderer-0.1.0.dev189/docs/Makefile +16 -0
  62. ernie_renderer-0.1.0.dev189/docs/README.md +10 -0
  63. ernie_renderer-0.1.0.dev189/docs/api/cpp.md +15 -0
  64. ernie_renderer-0.1.0.dev189/docs/api/python/app.md +7 -0
  65. ernie_renderer-0.1.0.dev189/docs/api/python/astronomy.md +15 -0
  66. ernie_renderer-0.1.0.dev189/docs/api/python/batch.md +7 -0
  67. ernie_renderer-0.1.0.dev189/docs/api/python/cameras.md +31 -0
  68. ernie_renderer-0.1.0.dev189/docs/api/python/demo.md +7 -0
  69. ernie_renderer-0.1.0.dev189/docs/api/python/rendering.md +23 -0
  70. ernie_renderer-0.1.0.dev189/docs/api/python/scene.md +25 -0
  71. ernie_renderer-0.1.0.dev189/docs/api/python/schemas.md +103 -0
  72. ernie_renderer-0.1.0.dev189/docs/api/python/tokens.md +8 -0
  73. ernie_renderer-0.1.0.dev189/docs/concepts/cameras.md +1 -0
  74. ernie_renderer-0.1.0.dev189/docs/concepts/lighting.md +1 -0
  75. ernie_renderer-0.1.0.dev189/docs/concepts/materials.md +1 -0
  76. ernie_renderer-0.1.0.dev189/docs/concepts/scene.md +1 -0
  77. ernie_renderer-0.1.0.dev189/docs/concepts/sensor-filters.md +1 -0
  78. ernie_renderer-0.1.0.dev189/docs/concepts/shadows.md +1 -0
  79. ernie_renderer-0.1.0.dev189/docs/concepts/spectral.md +1 -0
  80. ernie_renderer-0.1.0.dev189/docs/concepts/star-fields.md +1 -0
  81. ernie_renderer-0.1.0.dev189/docs/concepts/terrain.md +1 -0
  82. ernie_renderer-0.1.0.dev189/docs/concepts/transforms.md +1 -0
  83. ernie_renderer-0.1.0.dev189/docs/css/extra.css +9 -0
  84. ernie_renderer-0.1.0.dev189/docs/extending/custom-aovs.md +1 -0
  85. ernie_renderer-0.1.0.dev189/docs/extending/custom-brdfs.md +1 -0
  86. ernie_renderer-0.1.0.dev189/docs/extending/custom-lenses.md +1 -0
  87. ernie_renderer-0.1.0.dev189/docs/extending/custom-panels.md +1 -0
  88. ernie_renderer-0.1.0.dev189/docs/extending/custom-render-delegates.md +1 -0
  89. ernie_renderer-0.1.0.dev189/docs/extending/custom-sensor-filters.md +1 -0
  90. ernie_renderer-0.1.0.dev189/docs/extending/custom-spectra.md +1 -0
  91. ernie_renderer-0.1.0.dev189/docs/extending/custom-star-catalogs.md +1 -0
  92. ernie_renderer-0.1.0.dev189/docs/extending/debug-draw.md +1 -0
  93. ernie_renderer-0.1.0.dev189/docs/extending/frame-callbacks.md +1 -0
  94. ernie_renderer-0.1.0.dev189/docs/extending/index.md +1 -0
  95. ernie_renderer-0.1.0.dev189/docs/getting-started/demos.md +144 -0
  96. ernie_renderer-0.1.0.dev189/docs/getting-started/installation.md +1 -0
  97. ernie_renderer-0.1.0.dev189/docs/getting-started/quickstart.md +1 -0
  98. ernie_renderer-0.1.0.dev189/docs/getting-started/viewer.md +1 -0
  99. ernie_renderer-0.1.0.dev189/docs/guides/batched-rendering.md +1 -0
  100. ernie_renderer-0.1.0.dev189/docs/guides/gpu-interop.md +1 -0
  101. ernie_renderer-0.1.0.dev189/docs/guides/scenes.md +497 -0
  102. ernie_renderer-0.1.0.dev189/docs/index.md +1 -0
  103. ernie_renderer-0.1.0.dev189/docs/requirements.txt +11 -0
  104. ernie_renderer-0.1.0.dev189/ernie/CMakeLists.txt +59 -0
  105. ernie_renderer-0.1.0.dev189/ernie/app/CMakeLists.txt +48 -0
  106. ernie_renderer-0.1.0.dev189/ernie/app/app.h +31 -0
  107. ernie_renderer-0.1.0.dev189/ernie/app/builtin_panels.h +36 -0
  108. ernie_renderer-0.1.0.dev189/ernie/app/camera_panel.cpp +161 -0
  109. ernie_renderer-0.1.0.dev189/ernie/app/cli.cpp +146 -0
  110. ernie_renderer-0.1.0.dev189/ernie/app/cli.h +32 -0
  111. ernie_renderer-0.1.0.dev189/ernie/app/create.cpp +236 -0
  112. ernie_renderer-0.1.0.dev189/ernie/app/create.h +48 -0
  113. ernie_renderer-0.1.0.dev189/ernie/app/demo.cpp +685 -0
  114. ernie_renderer-0.1.0.dev189/ernie/app/demo.h +270 -0
  115. ernie_renderer-0.1.0.dev189/ernie/app/file_dialog.cpp +445 -0
  116. ernie_renderer-0.1.0.dev189/ernie/app/file_dialog.h +175 -0
  117. ernie_renderer-0.1.0.dev189/ernie/app/icons.h +44 -0
  118. ernie_renderer-0.1.0.dev189/ernie/app/log_panel.cpp +76 -0
  119. ernie_renderer-0.1.0.dev189/ernie/app/main.cpp +13 -0
  120. ernie_renderer-0.1.0.dev189/ernie/app/panel.cpp +232 -0
  121. ernie_renderer-0.1.0.dev189/ernie/app/panel.h +115 -0
  122. ernie_renderer-0.1.0.dev189/ernie/app/prim_icons.cpp +251 -0
  123. ernie_renderer-0.1.0.dev189/ernie/app/prim_icons.h +25 -0
  124. ernie_renderer-0.1.0.dev189/ernie/app/prim_schemas.cpp +299 -0
  125. ernie_renderer-0.1.0.dev189/ernie/app/prim_schemas.h +34 -0
  126. ernie_renderer-0.1.0.dev189/ernie/app/profiler_panel.cpp +395 -0
  127. ernie_renderer-0.1.0.dev189/ernie/app/properties_panel.cpp +417 -0
  128. ernie_renderer-0.1.0.dev189/ernie/app/property_fields.cpp +591 -0
  129. ernie_renderer-0.1.0.dev189/ernie/app/property_fields.h +87 -0
  130. ernie_renderer-0.1.0.dev189/ernie/app/session.cpp +189 -0
  131. ernie_renderer-0.1.0.dev189/ernie/app/session.h +71 -0
  132. ernie_renderer-0.1.0.dev189/ernie/app/settings_panel.cpp +205 -0
  133. ernie_renderer-0.1.0.dev189/ernie/app/stage_panel.cpp +511 -0
  134. ernie_renderer-0.1.0.dev189/ernie/app/theme.cpp +149 -0
  135. ernie_renderer-0.1.0.dev189/ernie/app/theme.h +50 -0
  136. ernie_renderer-0.1.0.dev189/ernie/app/viewer.cpp +3343 -0
  137. ernie_renderer-0.1.0.dev189/ernie/app/viewer.h +502 -0
  138. ernie_renderer-0.1.0.dev189/ernie/device/CMakeLists.txt +29 -0
  139. ernie_renderer-0.1.0.dev189/ernie/device/buffer.cpp +171 -0
  140. ernie_renderer-0.1.0.dev189/ernie/device/buffer.h +99 -0
  141. ernie_renderer-0.1.0.dev189/ernie/device/compute_interop.cpp +20 -0
  142. ernie_renderer-0.1.0.dev189/ernie/device/compute_interop.h +151 -0
  143. ernie_renderer-0.1.0.dev189/ernie/device/cuda_interop.cpp +845 -0
  144. ernie_renderer-0.1.0.dev189/ernie/device/cuda_interop.h +74 -0
  145. ernie_renderer-0.1.0.dev189/ernie/device/frame_uploads.cpp +132 -0
  146. ernie_renderer-0.1.0.dev189/ernie/device/frame_uploads.h +80 -0
  147. ernie_renderer-0.1.0.dev189/ernie/device/gpu_profile.h +60 -0
  148. ernie_renderer-0.1.0.dev189/ernie/device/gpu_timer.cpp +98 -0
  149. ernie_renderer-0.1.0.dev189/ernie/device/gpu_timer.h +57 -0
  150. ernie_renderer-0.1.0.dev189/ernie/device/image.cpp +306 -0
  151. ernie_renderer-0.1.0.dev189/ernie/device/image.h +167 -0
  152. ernie_renderer-0.1.0.dev189/ernie/device/offscreen_target.cpp +66 -0
  153. ernie_renderer-0.1.0.dev189/ernie/device/offscreen_target.h +67 -0
  154. ernie_renderer-0.1.0.dev189/ernie/device/pipeline.cpp +335 -0
  155. ernie_renderer-0.1.0.dev189/ernie/device/pipeline.h +176 -0
  156. ernie_renderer-0.1.0.dev189/ernie/device/shader_compiler.cpp +112 -0
  157. ernie_renderer-0.1.0.dev189/ernie/device/shader_compiler.h +48 -0
  158. ernie_renderer-0.1.0.dev189/ernie/device/swapchain.cpp +176 -0
  159. ernie_renderer-0.1.0.dev189/ernie/device/swapchain.h +97 -0
  160. ernie_renderer-0.1.0.dev189/ernie/device/vulkan_context.cpp +758 -0
  161. ernie_renderer-0.1.0.dev189/ernie/device/vulkan_context.h +273 -0
  162. ernie_renderer-0.1.0.dev189/ernie/geometry/CMakeLists.txt +11 -0
  163. ernie_renderer-0.1.0.dev189/ernie/geometry/cube_sphere_lod.cpp +348 -0
  164. ernie_renderer-0.1.0.dev189/ernie/geometry/cube_sphere_lod.h +204 -0
  165. ernie_renderer-0.1.0.dev189/ernie/geometry/frustum.cpp +32 -0
  166. ernie_renderer-0.1.0.dev189/ernie/geometry/frustum.h +31 -0
  167. ernie_renderer-0.1.0.dev189/ernie/geometry/lod_quadtree.cpp +281 -0
  168. ernie_renderer-0.1.0.dev189/ernie/geometry/lod_quadtree.h +186 -0
  169. ernie_renderer-0.1.0.dev189/ernie/geometry/mesh_data.cpp +55 -0
  170. ernie_renderer-0.1.0.dev189/ernie/geometry/mesh_data.h +48 -0
  171. ernie_renderer-0.1.0.dev189/ernie/geometry/primitives.cpp +258 -0
  172. ernie_renderer-0.1.0.dev189/ernie/geometry/primitives.h +57 -0
  173. ernie_renderer-0.1.0.dev189/ernie/kernel/CMakeLists.txt +85 -0
  174. ernie_renderer-0.1.0.dev189/ernie/kernel/closure/brdf.slang +196 -0
  175. ernie_renderer-0.1.0.dev189/ernie/kernel/closure/hapke.slang +94 -0
  176. ernie_renderer-0.1.0.dev189/ernie/kernel/closure/lambert.slang +9 -0
  177. ernie_renderer-0.1.0.dev189/ernie/kernel/closure/lommel_seeliger.slang +13 -0
  178. ernie_renderer-0.1.0.dev189/ernie/kernel/closure/lunar_lambert.slang +14 -0
  179. ernie_renderer-0.1.0.dev189/ernie/kernel/closure/oren_nayar.slang +22 -0
  180. ernie_renderer-0.1.0.dev189/ernie/kernel/closure/preview_surface.slang +173 -0
  181. ernie_renderer-0.1.0.dev189/ernie/kernel/embedded_shaders.h +112 -0
  182. ernie_renderer-0.1.0.dev189/ernie/kernel/film/cube_faces.slang +58 -0
  183. ernie_renderer-0.1.0.dev189/ernie/kernel/film/filter_bayer.slang +37 -0
  184. ernie_renderer-0.1.0.dev189/ernie/kernel/film/filter_blooming.slang +43 -0
  185. ernie_renderer-0.1.0.dev189/ernie/kernel/film/filter_color_matrix.slang +30 -0
  186. ernie_renderer-0.1.0.dev189/ernie/kernel/film/filter_compand.slang +23 -0
  187. ernie_renderer-0.1.0.dev189/ernie/kernel/film/filter_compand_table.slang +38 -0
  188. ernie_renderer-0.1.0.dev189/ernie/kernel/film/filter_dark_current.slang +30 -0
  189. ernie_renderer-0.1.0.dev189/ernie/kernel/film/filter_defect_pixels.slang +27 -0
  190. ernie_renderer-0.1.0.dev189/ernie/kernel/film/filter_defocus.slang +63 -0
  191. ernie_renderer-0.1.0.dev189/ernie/kernel/film/filter_demosaic.slang +97 -0
  192. ernie_renderer-0.1.0.dev189/ernie/kernel/film/filter_detector_pattern.slang +30 -0
  193. ernie_renderer-0.1.0.dev189/ernie/kernel/film/filter_glare.slang +38 -0
  194. ernie_renderer-0.1.0.dev189/ernie/kernel/film/filter_jpeg.slang +95 -0
  195. ernie_renderer-0.1.0.dev189/ernie/kernel/film/filter_lag.slang +22 -0
  196. ernie_renderer-0.1.0.dev189/ernie/kernel/film/filter_measured_qe.slang +34 -0
  197. ernie_renderer-0.1.0.dev189/ernie/kernel/film/filter_psf.slang +45 -0
  198. ernie_renderer-0.1.0.dev189/ernie/kernel/film/filter_readout_taps.slang +34 -0
  199. ernie_renderer-0.1.0.dev189/ernie/kernel/film/filter_smear.slang +32 -0
  200. ernie_renderer-0.1.0.dev189/ernie/kernel/film/filter_spectral_transmission.slang +18 -0
  201. ernie_renderer-0.1.0.dev189/ernie/kernel/film/filter_tdi.slang +42 -0
  202. ernie_renderer-0.1.0.dev189/ernie/kernel/film/filter_temporal_average.slang +23 -0
  203. ernie_renderer-0.1.0.dev189/ernie/kernel/film/filter_tone_curve.slang +21 -0
  204. ernie_renderer-0.1.0.dev189/ernie/kernel/film/filter_white_balance.slang +20 -0
  205. ernie_renderer-0.1.0.dev189/ernie/kernel/film/lens.slang +153 -0
  206. ernie_renderer-0.1.0.dev189/ernie/kernel/film/pyramid.slang +41 -0
  207. ernie_renderer-0.1.0.dev189/ernie/kernel/film/sensor.slang +1071 -0
  208. ernie_renderer-0.1.0.dev189/ernie/kernel/raster/cull.slang +362 -0
  209. ernie_renderer-0.1.0.dev189/ernie/kernel/raster/depth_range.slang +50 -0
  210. ernie_renderer-0.1.0.dev189/ernie/kernel/raster/frame.slang +296 -0
  211. ernie_renderer-0.1.0.dev189/ernie/kernel/raster/ground.slang +163 -0
  212. ernie_renderer-0.1.0.dev189/ernie/kernel/raster/hzb.slang +46 -0
  213. ernie_renderer-0.1.0.dev189/ernie/kernel/raster/instance_anchors.slang +86 -0
  214. ernie_renderer-0.1.0.dev189/ernie/kernel/raster/instance_compose.slang +204 -0
  215. ernie_renderer-0.1.0.dev189/ernie/kernel/raster/light_views.slang +189 -0
  216. ernie_renderer-0.1.0.dev189/ernie/kernel/raster/mesh.slang +507 -0
  217. ernie_renderer-0.1.0.dev189/ernie/kernel/raster/mesh_normals.slang +56 -0
  218. ernie_renderer-0.1.0.dev189/ernie/kernel/raster/meter.slang +48 -0
  219. ernie_renderer-0.1.0.dev189/ernie/kernel/raster/minimal_resolve.slang +119 -0
  220. ernie_renderer-0.1.0.dev189/ernie/kernel/raster/motion.slang +112 -0
  221. ernie_renderer-0.1.0.dev189/ernie/kernel/raster/motion_vectors.slang +51 -0
  222. ernie_renderer-0.1.0.dev189/ernie/kernel/raster/overlay.slang +277 -0
  223. ernie_renderer-0.1.0.dev189/ernie/kernel/raster/planet.slang +180 -0
  224. ernie_renderer-0.1.0.dev189/ernie/kernel/raster/planet_color.slang +110 -0
  225. ernie_renderer-0.1.0.dev189/ernie/kernel/raster/planet_shadow.slang +9 -0
  226. ernie_renderer-0.1.0.dev189/ernie/kernel/raster/points.slang +212 -0
  227. ernie_renderer-0.1.0.dev189/ernie/kernel/raster/present.slang +179 -0
  228. ernie_renderer-0.1.0.dev189/ernie/kernel/raster/projection_pinhole.slang +35 -0
  229. ernie_renderer-0.1.0.dev189/ernie/kernel/raster/projection_pushbroom.slang +138 -0
  230. ernie_renderer-0.1.0.dev189/ernie/kernel/raster/shading.slang +1175 -0
  231. ernie_renderer-0.1.0.dev189/ernie/kernel/raster/surface.slang +311 -0
  232. ernie_renderer-0.1.0.dev189/ernie/kernel/raster/terrain.slang +103 -0
  233. ernie_renderer-0.1.0.dev189/ernie/kernel/raster/terrain_color.slang +87 -0
  234. ernie_renderer-0.1.0.dev189/ernie/kernel/raster/terrain_horizon.slang +80 -0
  235. ernie_renderer-0.1.0.dev189/ernie/kernel/raster/terrain_shadow.slang +9 -0
  236. ernie_renderer-0.1.0.dev189/ernie/kernel/raster/terrain_update.slang +101 -0
  237. ernie_renderer-0.1.0.dev189/ernie/kernel/raster/views.slang +194 -0
  238. ernie_renderer-0.1.0.dev189/ernie/python/CMakeLists.txt +129 -0
  239. ernie_renderer-0.1.0.dev189/ernie/python/app.cpp +530 -0
  240. ernie_renderer-0.1.0.dev189/ernie/python/bindings.h +102 -0
  241. ernie_renderer-0.1.0.dev189/ernie/python/demo.cpp +224 -0
  242. ernie_renderer-0.1.0.dev189/ernie/python/ernie/__init__.py +161 -0
  243. ernie_renderer-0.1.0.dev189/ernie/python/ernie/__main__.py +8 -0
  244. ernie_renderer-0.1.0.dev189/ernie/python/ernie/app.py +39 -0
  245. ernie_renderer-0.1.0.dev189/ernie/python/ernie/batch.py +170 -0
  246. ernie_renderer-0.1.0.dev189/ernie/python/ernie/cli.py +34 -0
  247. ernie_renderer-0.1.0.dev189/ernie/python/ernie/demo.py +395 -0
  248. ernie_renderer-0.1.0.dev189/ernie/python/ernie/demos/__init__.py +62 -0
  249. ernie_renderer-0.1.0.dev189/ernie/python/ernie/demos/__main__.py +8 -0
  250. ernie_renderer-0.1.0.dev189/ernie/python/ernie/schema.py +425 -0
  251. ernie_renderer-0.1.0.dev189/ernie/python/module.cpp +14 -0
  252. ernie_renderer-0.1.0.dev189/ernie/python/render.cpp +566 -0
  253. ernie_renderer-0.1.0.dev189/ernie/python/scene.cpp +1820 -0
  254. ernie_renderer-0.1.0.dev189/ernie/python/scene_json.cpp +71 -0
  255. ernie_renderer-0.1.0.dev189/ernie/python/schema.cpp +169 -0
  256. ernie_renderer-0.1.0.dev189/ernie/python/stub_schema.py +155 -0
  257. ernie_renderer-0.1.0.dev189/ernie/python/tensor.cpp +187 -0
  258. ernie_renderer-0.1.0.dev189/ernie/raster/CMakeLists.txt +23 -0
  259. ernie_renderer-0.1.0.dev189/ernie/raster/delegate.cpp +2408 -0
  260. ernie_renderer-0.1.0.dev189/ernie/raster/delegate.h +427 -0
  261. ernie_renderer-0.1.0.dev189/ernie/raster/drawable.h +186 -0
  262. ernie_renderer-0.1.0.dev189/ernie/raster/ground_drawable.cpp +200 -0
  263. ernie_renderer-0.1.0.dev189/ernie/raster/ground_drawable.h +112 -0
  264. ernie_renderer-0.1.0.dev189/ernie/raster/material.cpp +425 -0
  265. ernie_renderer-0.1.0.dev189/ernie/raster/material.h +198 -0
  266. ernie_renderer-0.1.0.dev189/ernie/raster/mesh_drawable.cpp +2746 -0
  267. ernie_renderer-0.1.0.dev189/ernie/raster/mesh_drawable.h +733 -0
  268. ernie_renderer-0.1.0.dev189/ernie/raster/minimal_targets.cpp +144 -0
  269. ernie_renderer-0.1.0.dev189/ernie/raster/minimal_targets.h +113 -0
  270. ernie_renderer-0.1.0.dev189/ernie/raster/overlay_pass.cpp +235 -0
  271. ernie_renderer-0.1.0.dev189/ernie/raster/overlay_pass.h +96 -0
  272. ernie_renderer-0.1.0.dev189/ernie/raster/planet_drawable.cpp +469 -0
  273. ernie_renderer-0.1.0.dev189/ernie/raster/planet_drawable.h +161 -0
  274. ernie_renderer-0.1.0.dev189/ernie/raster/points_drawable.cpp +711 -0
  275. ernie_renderer-0.1.0.dev189/ernie/raster/points_drawable.h +215 -0
  276. ernie_renderer-0.1.0.dev189/ernie/raster/poisson_disk.cpp +54 -0
  277. ernie_renderer-0.1.0.dev189/ernie/raster/poisson_disk.h +23 -0
  278. ernie_renderer-0.1.0.dev189/ernie/raster/render_targets.cpp +253 -0
  279. ernie_renderer-0.1.0.dev189/ernie/raster/render_targets.h +185 -0
  280. ernie_renderer-0.1.0.dev189/ernie/raster/renderer.cpp +3135 -0
  281. ernie_renderer-0.1.0.dev189/ernie/raster/renderer.h +756 -0
  282. ernie_renderer-0.1.0.dev189/ernie/raster/sensor_plan.cpp +500 -0
  283. ernie_renderer-0.1.0.dev189/ernie/raster/sensor_plan.h +108 -0
  284. ernie_renderer-0.1.0.dev189/ernie/raster/shadow_cascades.cpp +134 -0
  285. ernie_renderer-0.1.0.dev189/ernie/raster/shadow_cascades.h +74 -0
  286. ernie_renderer-0.1.0.dev189/ernie/raster/terrain_drawable.cpp +835 -0
  287. ernie_renderer-0.1.0.dev189/ernie/raster/terrain_drawable.h +309 -0
  288. ernie_renderer-0.1.0.dev189/ernie/scene/CMakeLists.txt +33 -0
  289. ernie_renderer-0.1.0.dev189/ernie/scene/base_schemas.cpp +33 -0
  290. ernie_renderer-0.1.0.dev189/ernie/scene/base_schemas.h +90 -0
  291. ernie_renderer-0.1.0.dev189/ernie/scene/brdf.cpp +224 -0
  292. ernie_renderer-0.1.0.dev189/ernie/scene/brdf.h +107 -0
  293. ernie_renderer-0.1.0.dev189/ernie/scene/cahvore.cpp +434 -0
  294. ernie_renderer-0.1.0.dev189/ernie/scene/cahvore.h +135 -0
  295. ernie_renderer-0.1.0.dev189/ernie/scene/camera.cpp +519 -0
  296. ernie_renderer-0.1.0.dev189/ernie/scene/camera.h +381 -0
  297. ernie_renderer-0.1.0.dev189/ernie/scene/camera_schemas.cpp +35 -0
  298. ernie_renderer-0.1.0.dev189/ernie/scene/camera_schemas.h +217 -0
  299. ernie_renderer-0.1.0.dev189/ernie/scene/edit_history.cpp +267 -0
  300. ernie_renderer-0.1.0.dev189/ernie/scene/edit_history.h +142 -0
  301. ernie_renderer-0.1.0.dev189/ernie/scene/geometry_schemas.cpp +52 -0
  302. ernie_renderer-0.1.0.dev189/ernie/scene/geometry_schemas.h +230 -0
  303. ernie_renderer-0.1.0.dev189/ernie/scene/instruments.cpp +501 -0
  304. ernie_renderer-0.1.0.dev189/ernie/scene/instruments.h +270 -0
  305. ernie_renderer-0.1.0.dev189/ernie/scene/isd.cpp +1113 -0
  306. ernie_renderer-0.1.0.dev189/ernie/scene/isd.h +384 -0
  307. ernie_renderer-0.1.0.dev189/ernie/scene/light_schemas.cpp +49 -0
  308. ernie_renderer-0.1.0.dev189/ernie/scene/light_schemas.h +248 -0
  309. ernie_renderer-0.1.0.dev189/ernie/scene/material.h +98 -0
  310. ernie_renderer-0.1.0.dev189/ernie/scene/material_schemas.cpp +20 -0
  311. ernie_renderer-0.1.0.dev189/ernie/scene/material_schemas.h +194 -0
  312. ernie_renderer-0.1.0.dev189/ernie/scene/orbit_controller.cpp +73 -0
  313. ernie_renderer-0.1.0.dev189/ernie/scene/orbit_controller.h +71 -0
  314. ernie_renderer-0.1.0.dev189/ernie/scene/overlay.cpp +337 -0
  315. ernie_renderer-0.1.0.dev189/ernie/scene/overlay.h +192 -0
  316. ernie_renderer-0.1.0.dev189/ernie/scene/path.cpp +90 -0
  317. ernie_renderer-0.1.0.dev189/ernie/scene/path.h +72 -0
  318. ernie_renderer-0.1.0.dev189/ernie/scene/prim_type.cpp +672 -0
  319. ernie_renderer-0.1.0.dev189/ernie/scene/prim_type.h +601 -0
  320. ernie_renderer-0.1.0.dev189/ernie/scene/render_schemas.cpp +46 -0
  321. ernie_renderer-0.1.0.dev189/ernie/scene/render_schemas.h +275 -0
  322. ernie_renderer-0.1.0.dev189/ernie/scene/scene.cpp +654 -0
  323. ernie_renderer-0.1.0.dev189/ernie/scene/scene.h +397 -0
  324. ernie_renderer-0.1.0.dev189/ernie/scene/scene_json.cpp +762 -0
  325. ernie_renderer-0.1.0.dev189/ernie/scene/scene_json.h +98 -0
  326. ernie_renderer-0.1.0.dev189/ernie/scene/schema.cpp +227 -0
  327. ernie_renderer-0.1.0.dev189/ernie/scene/schema.h +84 -0
  328. ernie_renderer-0.1.0.dev189/ernie/scene/sensor_filters.cpp +690 -0
  329. ernie_renderer-0.1.0.dev189/ernie/scene/sensor_filters.h +278 -0
  330. ernie_renderer-0.1.0.dev189/ernie/scene/terrain_schemas.cpp +19 -0
  331. ernie_renderer-0.1.0.dev189/ernie/scene/terrain_schemas.h +103 -0
  332. ernie_renderer-0.1.0.dev189/ernie/scene/tokens.h +555 -0
  333. ernie_renderer-0.1.0.dev189/ernie/scene/value.h +76 -0
  334. ernie_renderer-0.1.0.dev189/ernie/scene/wide_view.cpp +123 -0
  335. ernie_renderer-0.1.0.dev189/ernie/scene/wide_view.h +90 -0
  336. ernie_renderer-0.1.0.dev189/ernie/scene/xform.cpp +438 -0
  337. ernie_renderer-0.1.0.dev189/ernie/scene/xform.h +93 -0
  338. ernie_renderer-0.1.0.dev189/ernie/session/CMakeLists.txt +12 -0
  339. ernie_renderer-0.1.0.dev189/ernie/session/backends.cpp +29 -0
  340. ernie_renderer-0.1.0.dev189/ernie/session/delegate.cpp +63 -0
  341. ernie_renderer-0.1.0.dev189/ernie/session/delegate.h +239 -0
  342. ernie_renderer-0.1.0.dev189/ernie/session/frame_params.cpp +227 -0
  343. ernie_renderer-0.1.0.dev189/ernie/session/frame_params.h +463 -0
  344. ernie_renderer-0.1.0.dev189/ernie/session/outputs.cpp +326 -0
  345. ernie_renderer-0.1.0.dev189/ernie/session/outputs.h +204 -0
  346. ernie_renderer-0.1.0.dev189/ernie/session/product_frame.h +26 -0
  347. ernie_renderer-0.1.0.dev189/ernie/session/renderer.cpp +95 -0
  348. ernie_renderer-0.1.0.dev189/ernie/session/renderer.h +86 -0
  349. ernie_renderer-0.1.0.dev189/ernie/session/resolve.cpp +2537 -0
  350. ernie_renderer-0.1.0.dev189/ernie/session/resolve.h +441 -0
  351. ernie_renderer-0.1.0.dev189/ernie/session/sampling.h +51 -0
  352. ernie_renderer-0.1.0.dev189/ernie/test/CMakeLists.txt +142 -0
  353. ernie_renderer-0.1.0.dev189/ernie/test/app_demo_gpu_test.cpp +226 -0
  354. ernie_renderer-0.1.0.dev189/ernie/test/app_demo_test.cpp +57 -0
  355. ernie_renderer-0.1.0.dev189/ernie/test/app_file_dialog_test.cpp +159 -0
  356. ernie_renderer-0.1.0.dev189/ernie/test/app_panel_test.cpp +74 -0
  357. ernie_renderer-0.1.0.dev189/ernie/test/app_prim_schemas_test.cpp +170 -0
  358. ernie_renderer-0.1.0.dev189/ernie/test/app_session_test.cpp +260 -0
  359. ernie_renderer-0.1.0.dev189/ernie/test/app_theme_test.cpp +62 -0
  360. ernie_renderer-0.1.0.dev189/ernie/test/app_viewer_gpu_test.cpp +897 -0
  361. ernie_renderer-0.1.0.dev189/ernie/test/device_cuda_interop_test.cpp +180 -0
  362. ernie_renderer-0.1.0.dev189/ernie/test/device_frame_uploads_test.cpp +96 -0
  363. ernie_renderer-0.1.0.dev189/ernie/test/device_pipeline_test.cpp +158 -0
  364. ernie_renderer-0.1.0.dev189/ernie/test/device_shader_compiler_test.cpp +97 -0
  365. ernie_renderer-0.1.0.dev189/ernie/test/device_vulkan_context_test.cpp +160 -0
  366. ernie_renderer-0.1.0.dev189/ernie/test/fixtures/cahvore/README.md +3 -0
  367. ernie_renderer-0.1.0.dev189/ernie/test/fixtures/cahvore/m2020_camera_models.json +262 -0
  368. ernie_renderer-0.1.0.dev189/ernie/test/fixtures/images/grey16.png +0 -0
  369. ernie_renderer-0.1.0.dev189/ernie/test/fixtures/isd/README.md +11 -0
  370. ernie_renderer-0.1.0.dev189/ernie/test/fixtures/isd/constVelocityLineScan.json +169 -0
  371. ernie_renderer-0.1.0.dev189/ernie/test/fixtures/isd/ctxLineScan.json +2516 -0
  372. ernie_renderer-0.1.0.dev189/ernie/test/fixtures/isd/dawnfc_radtan.json +272 -0
  373. ernie_renderer-0.1.0.dev189/ernie/test/fixtures/isd/lroWacPushFrame.json +13379 -0
  374. ernie_renderer-0.1.0.dev189/ernie/test/fixtures/isd/orbitalFramer.json +92 -0
  375. ernie_renderer-0.1.0.dev189/ernie/test/fixtures/isd/orbitalLineScan.json +241 -0
  376. ernie_renderer-0.1.0.dev189/ernie/test/fixtures/isd/orbitalPushFrame.json +365 -0
  377. ernie_renderer-0.1.0.dev189/ernie/test/fixtures/isd/simpleFramerISD.json +95 -0
  378. ernie_renderer-0.1.0.dev189/ernie/test/fixtures/isd/toughLroNacLineScan.json +23408 -0
  379. ernie_renderer-0.1.0.dev189/ernie/test/fixtures/scene_basic.json +25 -0
  380. ernie_renderer-0.1.0.dev189/ernie/test/geometry_cube_sphere_lod_test.cpp +674 -0
  381. ernie_renderer-0.1.0.dev189/ernie/test/geometry_frustum_test.cpp +54 -0
  382. ernie_renderer-0.1.0.dev189/ernie/test/geometry_lod_quadtree_test.cpp +450 -0
  383. ernie_renderer-0.1.0.dev189/ernie/test/geometry_mesh_data_test.cpp +30 -0
  384. ernie_renderer-0.1.0.dev189/ernie/test/geometry_primitives_test.cpp +160 -0
  385. ernie_renderer-0.1.0.dev189/ernie/test/install/CMakeLists.txt +16 -0
  386. ernie_renderer-0.1.0.dev189/ernie/test/install/consumer.cpp +61 -0
  387. ernie_renderer-0.1.0.dev189/ernie/test/install/run_install_test.cmake +84 -0
  388. ernie_renderer-0.1.0.dev189/ernie/test/python/conftest.py +73 -0
  389. ernie_renderer-0.1.0.dev189/ernie/test/python/test_app.py +296 -0
  390. ernie_renderer-0.1.0.dev189/ernie/test/python/test_batch.py +146 -0
  391. ernie_renderer-0.1.0.dev189/ernie/test/python/test_cahvore.py +33 -0
  392. ernie_renderer-0.1.0.dev189/ernie/test/python/test_cuda.py +175 -0
  393. ernie_renderer-0.1.0.dev189/ernie/test/python/test_demos.py +220 -0
  394. ernie_renderer-0.1.0.dev189/ernie/test/python/test_filters.py +90 -0
  395. ernie_renderer-0.1.0.dev189/ernie/test/python/test_instruments.py +88 -0
  396. ernie_renderer-0.1.0.dev189/ernie/test/python/test_isd.py +68 -0
  397. ernie_renderer-0.1.0.dev189/ernie/test/python/test_map.py +58 -0
  398. ernie_renderer-0.1.0.dev189/ernie/test/python/test_materials.py +131 -0
  399. ernie_renderer-0.1.0.dev189/ernie/test/python/test_minimal.py +147 -0
  400. ernie_renderer-0.1.0.dev189/ernie/test/python/test_overlays.py +53 -0
  401. ernie_renderer-0.1.0.dev189/ernie/test/python/test_readme.py +33 -0
  402. ernie_renderer-0.1.0.dev189/ernie/test/python/test_render.py +158 -0
  403. ernie_renderer-0.1.0.dev189/ernie/test/python/test_scene.py +211 -0
  404. ernie_renderer-0.1.0.dev189/ernie/test/python/test_schema.py +304 -0
  405. ernie_renderer-0.1.0.dev189/ernie/test/python/test_schema_camera.py +51 -0
  406. ernie_renderer-0.1.0.dev189/ernie/test/python/test_schema_geometry.py +68 -0
  407. ernie_renderer-0.1.0.dev189/ernie/test/python/test_schema_material.py +66 -0
  408. ernie_renderer-0.1.0.dev189/ernie/test/python/test_schema_render.py +94 -0
  409. ernie_renderer-0.1.0.dev189/ernie/test/python/test_schema_terrain.py +40 -0
  410. ernie_renderer-0.1.0.dev189/ernie/test/python/test_stars.py +48 -0
  411. ernie_renderer-0.1.0.dev189/ernie/test/python/test_step.py +207 -0
  412. ernie_renderer-0.1.0.dev189/ernie/test/python/test_xform.py +411 -0
  413. ernie_renderer-0.1.0.dev189/ernie/test/python/test_xform_gpu.py +360 -0
  414. ernie_renderer-0.1.0.dev189/ernie/test/python/test_xform_gpu_cameras.py +195 -0
  415. ernie_renderer-0.1.0.dev189/ernie/test/python/test_xform_gpu_compose.py +252 -0
  416. ernie_renderer-0.1.0.dev189/ernie/test/python/test_xform_gpu_lights.py +79 -0
  417. ernie_renderer-0.1.0.dev189/ernie/test/python/test_xform_gpu_map.py +80 -0
  418. ernie_renderer-0.1.0.dev189/ernie/test/python/test_xform_gpu_points.py +134 -0
  419. ernie_renderer-0.1.0.dev189/ernie/test/raster_batch_gpu_test.cpp +921 -0
  420. ernie_renderer-0.1.0.dev189/ernie/test/raster_culling_gpu_test.cpp +399 -0
  421. ernie_renderer-0.1.0.dev189/ernie/test/raster_delegate_gpu_test.cpp +694 -0
  422. ernie_renderer-0.1.0.dev189/ernie/test/raster_delegate_test.cpp +157 -0
  423. ernie_renderer-0.1.0.dev189/ernie/test/raster_gpu_meshes_gpu_test.cpp +166 -0
  424. ernie_renderer-0.1.0.dev189/ernie/test/raster_gpu_terrain_gpu_test.cpp +180 -0
  425. ernie_renderer-0.1.0.dev189/ernie/test/raster_hex_tiling_gpu_test.cpp +202 -0
  426. ernie_renderer-0.1.0.dev189/ernie/test/raster_lens_rays_gpu_test.cpp +137 -0
  427. ernie_renderer-0.1.0.dev189/ernie/test/raster_lights_gpu_test.cpp +999 -0
  428. ernie_renderer-0.1.0.dev189/ernie/test/raster_mesh_drawable_test.cpp +449 -0
  429. ernie_renderer-0.1.0.dev189/ernie/test/raster_motion_gpu_test.cpp +543 -0
  430. ernie_renderer-0.1.0.dev189/ernie/test/raster_overlays_gpu_test.cpp +178 -0
  431. ernie_renderer-0.1.0.dev189/ernie/test/raster_planet_gpu_test.cpp +180 -0
  432. ernie_renderer-0.1.0.dev189/ernie/test/raster_points_gpu_test.cpp +191 -0
  433. ernie_renderer-0.1.0.dev189/ernie/test/raster_poisson_disk_test.cpp +52 -0
  434. ernie_renderer-0.1.0.dev189/ernie/test/raster_products_gpu_test.cpp +1181 -0
  435. ernie_renderer-0.1.0.dev189/ernie/test/raster_sensor_filters_gpu_test.cpp +232 -0
  436. ernie_renderer-0.1.0.dev189/ernie/test/raster_sensor_plan_test.cpp +166 -0
  437. ernie_renderer-0.1.0.dev189/ernie/test/raster_shadow_cascades_test.cpp +201 -0
  438. ernie_renderer-0.1.0.dev189/ernie/test/raster_standard_filters_gpu_test.cpp +809 -0
  439. ernie_renderer-0.1.0.dev189/ernie/test/raster_terrain_drawable_test.cpp +670 -0
  440. ernie_renderer-0.1.0.dev189/ernie/test/raster_textures_gpu_test.cpp +272 -0
  441. ernie_renderer-0.1.0.dev189/ernie/test/raster_zero_copy_gpu_test.cpp +176 -0
  442. ernie_renderer-0.1.0.dev189/ernie/test/scene_brdf_test.cpp +106 -0
  443. ernie_renderer-0.1.0.dev189/ernie/test/scene_brdf_vulkan_test.cpp +546 -0
  444. ernie_renderer-0.1.0.dev189/ernie/test/scene_cahvore_test.cpp +180 -0
  445. ernie_renderer-0.1.0.dev189/ernie/test/scene_camera_schemas_test.cpp +198 -0
  446. ernie_renderer-0.1.0.dev189/ernie/test/scene_camera_test.cpp +360 -0
  447. ernie_renderer-0.1.0.dev189/ernie/test/scene_edit_history_test.cpp +124 -0
  448. ernie_renderer-0.1.0.dev189/ernie/test/scene_geometry_schemas_test.cpp +236 -0
  449. ernie_renderer-0.1.0.dev189/ernie/test/scene_isd_test.cpp +628 -0
  450. ernie_renderer-0.1.0.dev189/ernie/test/scene_json_test.cpp +582 -0
  451. ernie_renderer-0.1.0.dev189/ernie/test/scene_material_schemas_test.cpp +163 -0
  452. ernie_renderer-0.1.0.dev189/ernie/test/scene_orbit_controller_test.cpp +143 -0
  453. ernie_renderer-0.1.0.dev189/ernie/test/scene_overlay_test.cpp +137 -0
  454. ernie_renderer-0.1.0.dev189/ernie/test/scene_path_test.cpp +50 -0
  455. ernie_renderer-0.1.0.dev189/ernie/test/scene_prim_type_test.cpp +325 -0
  456. ernie_renderer-0.1.0.dev189/ernie/test/scene_render_schemas_test.cpp +239 -0
  457. ernie_renderer-0.1.0.dev189/ernie/test/scene_scene_test.cpp +340 -0
  458. ernie_renderer-0.1.0.dev189/ernie/test/scene_schema_test.cpp +183 -0
  459. ernie_renderer-0.1.0.dev189/ernie/test/scene_sensor_filters_test.cpp +184 -0
  460. ernie_renderer-0.1.0.dev189/ernie/test/scene_terrain_schemas_test.cpp +123 -0
  461. ernie_renderer-0.1.0.dev189/ernie/test/scene_wide_view_test.cpp +164 -0
  462. ernie_renderer-0.1.0.dev189/ernie/test/scene_xform_test.cpp +872 -0
  463. ernie_renderer-0.1.0.dev189/ernie/test/session_delegate_test.cpp +110 -0
  464. ernie_renderer-0.1.0.dev189/ernie/test/session_frame_params_test.cpp +190 -0
  465. ernie_renderer-0.1.0.dev189/ernie/test/session_gpu_xform_test.cpp +454 -0
  466. ernie_renderer-0.1.0.dev189/ernie/test/session_lights_test.cpp +718 -0
  467. ernie_renderer-0.1.0.dev189/ernie/test/session_resolve_test.cpp +660 -0
  468. ernie_renderer-0.1.0.dev189/ernie/test/session_sampling_test.cpp +50 -0
  469. ernie_renderer-0.1.0.dev189/ernie/test/support/brdf_reference.h +166 -0
  470. ernie_renderer-0.1.0.dev189/ernie/test/support/delegate_scenes.cpp +170 -0
  471. ernie_renderer-0.1.0.dev189/ernie/test/support/delegate_scenes.h +72 -0
  472. ernie_renderer-0.1.0.dev189/ernie/test/support/terrain_harness.h +139 -0
  473. ernie_renderer-0.1.0.dev189/ernie/test/support/test_raster.h +88 -0
  474. ernie_renderer-0.1.0.dev189/ernie/test/support/vulkan_fixture.h +55 -0
  475. ernie_renderer-0.1.0.dev189/ernie/test/util_astronomy_test.cpp +62 -0
  476. ernie_renderer-0.1.0.dev189/ernie/test/util_ies_test.cpp +75 -0
  477. ernie_renderer-0.1.0.dev189/ernie/test/util_image_test.cpp +252 -0
  478. ernie_renderer-0.1.0.dev189/ernie/test/util_spectrum_test.cpp +131 -0
  479. ernie_renderer-0.1.0.dev189/ernie/test/util_tensor_test.cpp +233 -0
  480. ernie_renderer-0.1.0.dev189/ernie/util/CMakeLists.txt +17 -0
  481. ernie_renderer-0.1.0.dev189/ernie/util/astronomy.cpp +133 -0
  482. ernie_renderer-0.1.0.dev189/ernie/util/astronomy.h +74 -0
  483. ernie_renderer-0.1.0.dev189/ernie/util/ies.cpp +189 -0
  484. ernie_renderer-0.1.0.dev189/ernie/util/ies.h +46 -0
  485. ernie_renderer-0.1.0.dev189/ernie/util/image.cpp +206 -0
  486. ernie_renderer-0.1.0.dev189/ernie/util/image.h +87 -0
  487. ernie_renderer-0.1.0.dev189/ernie/util/least_squares.h +81 -0
  488. ernie_renderer-0.1.0.dev189/ernie/util/profile.h +41 -0
  489. ernie_renderer-0.1.0.dev189/ernie/util/profiler.cpp +156 -0
  490. ernie_renderer-0.1.0.dev189/ernie/util/profiler.h +82 -0
  491. ernie_renderer-0.1.0.dev189/ernie/util/raster_checks.h +33 -0
  492. ernie_renderer-0.1.0.dev189/ernie/util/raster_view.h +41 -0
  493. ernie_renderer-0.1.0.dev189/ernie/util/shader_source.h +14 -0
  494. ernie_renderer-0.1.0.dev189/ernie/util/spectrum.cpp +353 -0
  495. ernie_renderer-0.1.0.dev189/ernie/util/spectrum.h +167 -0
  496. ernie_renderer-0.1.0.dev189/ernie/util/tensor.cpp +257 -0
  497. ernie_renderer-0.1.0.dev189/ernie/util/tensor.h +171 -0
  498. ernie_renderer-0.1.0.dev189/mkdocs.yml +132 -0
  499. ernie_renderer-0.1.0.dev189/pyproject.toml +111 -0
  500. ernie_renderer-0.1.0.dev189/third_party/README.md +50 -0
  501. ernie_renderer-0.1.0.dev189/third_party/cameramodelutilsjs/LICENSE +201 -0
  502. ernie_renderer-0.1.0.dev189/third_party/dlpack/LICENSE +201 -0
  503. ernie_renderer-0.1.0.dev189/third_party/dlpack/include/dlpack/dlpack.h +647 -0
  504. ernie_renderer-0.1.0.dev189/third_party/stb/LICENSE +37 -0
  505. ernie_renderer-0.1.0.dev189/third_party/stb/stb.cpp +5 -0
  506. ernie_renderer-0.1.0.dev189/third_party/stb/stb_easy_font.h +305 -0
  507. ernie_renderer-0.1.0.dev189/third_party/stb/stb_image.h +7988 -0
  508. ernie_renderer-0.1.0.dev189/third_party/stb/stb_image_write.h +1724 -0
@@ -0,0 +1,11 @@
1
+ BasedOnStyle: LLVM
2
+ IndentWidth: 4
3
+ ColumnLimit: 100
4
+ PointerAlignment: Left
5
+ ReferenceAlignment: Left
6
+ BreakBeforeBraces: Attach
7
+ AllowShortFunctionsOnASingleLine: Empty
8
+ AllowShortIfStatementsOnASingleLine: Never
9
+ SortIncludes: CaseSensitive
10
+ IncludeBlocks: Preserve
11
+ SpacesBeforeTrailingComments: 2
@@ -0,0 +1,18 @@
1
+ ---
2
+ Checks: >
3
+ -*,
4
+ bugprone-*,
5
+ performance-*,
6
+ portability-*,
7
+ clang-analyzer-*,
8
+ modernize-use-nullptr,
9
+ modernize-use-override,
10
+ modernize-use-equals-default,
11
+ modernize-use-equals-delete,
12
+ readability-else-after-return,
13
+ readability-redundant-*,
14
+ -bugprone-easily-swappable-parameters
15
+
16
+ WarningsAsErrors: ''
17
+ HeaderFilterRegex: '.*/ernie/[a-z_]+/[^/]+\\.h$'
18
+ FormatStyle: file
@@ -0,0 +1,11 @@
1
+ format:
2
+ line_width: 100
3
+ tab_size: 4
4
+ max_subgroups_hwrap: 2
5
+ max_pargs_hwrap: 6
6
+ separate_ctrl_name_with_space: false
7
+ separate_fn_name_with_space: false
8
+ dangle_parens: false
9
+
10
+ markup:
11
+ enable_markup: false
@@ -0,0 +1,23 @@
1
+ # Normalize line endings for text files
2
+ * text=auto eol=lf
3
+
4
+ # Binary assets (images, rasters, meshes, fonts) are stored in Git LFS wherever they are
5
+ *.png filter=lfs diff=lfs merge=lfs -text
6
+ *.jpg filter=lfs diff=lfs merge=lfs -text
7
+ *.jpeg filter=lfs diff=lfs merge=lfs -text
8
+ *.exr filter=lfs diff=lfs merge=lfs -text
9
+ *.hdr filter=lfs diff=lfs merge=lfs -text
10
+ *.ktx2 filter=lfs diff=lfs merge=lfs -text
11
+ *.tif filter=lfs diff=lfs merge=lfs -text
12
+ *.tiff filter=lfs diff=lfs merge=lfs -text
13
+ *.gpkg filter=lfs diff=lfs merge=lfs -text
14
+ *.glb filter=lfs diff=lfs merge=lfs -text
15
+ *.bin filter=lfs diff=lfs merge=lfs -text
16
+ *.obj filter=lfs diff=lfs merge=lfs -text
17
+ *.ply filter=lfs diff=lfs merge=lfs -text
18
+ *.stl filter=lfs diff=lfs merge=lfs -text
19
+ *.ttf filter=lfs diff=lfs merge=lfs -text
20
+ *.otf filter=lfs diff=lfs merge=lfs -text
21
+
22
+ # Except the tests' small fixtures, kept in git itself so checkouts and CI need no LFS
23
+ ernie/test/fixtures/** -filter -diff -merge -text
@@ -0,0 +1,58 @@
1
+ name: Bug report
2
+ description: Something renders wrongly, crashes, or doesn't build.
3
+ labels: [bug]
4
+ body:
5
+ - type: textarea
6
+ id: what
7
+ attributes:
8
+ label: What happened
9
+ description: What you saw, and what you expected instead. Screenshots help with rendering bugs.
10
+ validations:
11
+ required: true
12
+ - type: textarea
13
+ id: reproduce
14
+ attributes:
15
+ label: How to reproduce
16
+ description: The smallest scene or script that shows it (Python or C++), or the commands for a build failure.
17
+ render: python
18
+ validations:
19
+ required: true
20
+ - type: input
21
+ id: version
22
+ attributes:
23
+ label: Ernie version
24
+ description: "`ernie --version`, `python -c 'import importlib.metadata as m; print(m.version(\"ernie\"))'`, or the commit"
25
+ validations:
26
+ required: true
27
+ - type: dropdown
28
+ id: install
29
+ attributes:
30
+ label: Installed from
31
+ options:
32
+ - pip
33
+ - DEB / RPM / TGZ package
34
+ - Built from source
35
+ - Docker image
36
+ validations:
37
+ required: true
38
+ - type: input
39
+ id: os
40
+ attributes:
41
+ label: Operating system
42
+ placeholder: Ubuntu 24.04
43
+ validations:
44
+ required: true
45
+ - type: input
46
+ id: gpu
47
+ attributes:
48
+ label: GPU and driver
49
+ description: "`vulkaninfo --summary` shows both; lavapipe counts too."
50
+ placeholder: NVIDIA RTX 4080, driver 580.65
51
+ validations:
52
+ required: true
53
+ - type: textarea
54
+ id: log
55
+ attributes:
56
+ label: Log output
57
+ description: Errors, stack traces, or Vulkan validation messages.
58
+ render: text
@@ -0,0 +1,21 @@
1
+ name: Feature request
2
+ description: A sensor, effect, prim type or API Ernie should have.
3
+ labels: [enhancement]
4
+ body:
5
+ - type: textarea
6
+ id: need
7
+ attributes:
8
+ label: What you're trying to do
9
+ description: The simulation or workflow, and what's missing today.
10
+ validations:
11
+ required: true
12
+ - type: textarea
13
+ id: proposal
14
+ attributes:
15
+ label: What you'd like
16
+ description: How it could look in the scene or API. For physical models, link the papers or instrument specs.
17
+ - type: textarea
18
+ id: alternatives
19
+ attributes:
20
+ label: Alternatives
21
+ description: Workarounds you've tried, or how other renderers do it.
@@ -0,0 +1,14 @@
1
+ version: 2
2
+ updates:
3
+ # The actions the workflows use: new major versions only, grouped into one pull request a month.
4
+ - package-ecosystem: github-actions
5
+ directory: /
6
+ schedule:
7
+ interval: monthly
8
+ groups:
9
+ actions:
10
+ patterns: ["*"]
11
+ update-types: ["major"]
12
+ ignore:
13
+ - dependency-name: "*"
14
+ update-types: ["version-update:semver-minor", "version-update:semver-patch"]
@@ -0,0 +1,11 @@
1
+ ## What and why
2
+
3
+ <!-- What this changes, and the problem it solves. Link the issue if there is one. -->
4
+
5
+ ## Testing
6
+
7
+ <!-- The tests you added or ran: unit, gpu (on which GPU, or lavapipe), python, install. For rendering changes, before/after images help. -->
8
+
9
+ - [ ] `pre-commit run --all-files` passes
10
+ - [ ] New behavior has tests
11
+ - [ ] Public API has `///` doc comments (with references for published techniques)
@@ -0,0 +1,103 @@
1
+ # SPDX-License-Identifier: BSD-3-Clause
2
+ """One CI run's metrics for github-action-benchmark (customSmallerIsBetter): the run's wall time,
3
+ each successful job's time and its build and test steps' from the Actions API, and from the jobs'
4
+ Ninja logs their compile time, compile count and ccache miss rate.
5
+
6
+ GH_TOKEN=... GITHUB_REPOSITORY=owner/repo python ci_metrics.py RUN_ID LOG_DIR OUTPUT
7
+
8
+ LOG_DIR holds one directory per job's artifact (ninja-log-<job>), each with the build's .ninja_log
9
+ and, where the job uses ccache, ccache-stats.tsv (`ccache --print-stats`).
10
+ """
11
+
12
+ import json
13
+ import os
14
+ import sys
15
+ import urllib.request
16
+ from datetime import datetime
17
+ from pathlib import Path
18
+
19
+ # The steps whose times are worth tracking on their own: building, testing, wheels and packages.
20
+ STEPS = ("Build", "Test on lavapipe", "Build the packages", "Run pypa/cibuildwheel")
21
+
22
+
23
+ def api(path):
24
+ request = urllib.request.Request(
25
+ f"https://api.github.com/repos/{os.environ['GITHUB_REPOSITORY']}/{path}",
26
+ headers={
27
+ "Authorization": f"Bearer {os.environ['GH_TOKEN']}",
28
+ "Accept": "application/vnd.github+json",
29
+ },
30
+ )
31
+ with urllib.request.urlopen(request) as response:
32
+ return json.load(response)
33
+
34
+
35
+ def seconds(start, end):
36
+ parse = lambda stamp: datetime.fromisoformat(stamp.replace("Z", "+00:00")) # noqa: E731
37
+ return (parse(end) - parse(start)).total_seconds()
38
+
39
+
40
+ def metric(name, unit, value):
41
+ return {"name": name, "unit": unit, "value": round(value, 2)}
42
+
43
+
44
+ def run_metrics(run_id):
45
+ run = api(f"actions/runs/{run_id}")
46
+ metrics = [metric("CI: wall time", "min", seconds(run["run_started_at"], run["updated_at"]) / 60)]
47
+ jobs = api(f"actions/runs/{run_id}/jobs?per_page=100")["jobs"]
48
+ for job in jobs:
49
+ if job["conclusion"] != "success" or not job["completed_at"]:
50
+ continue
51
+ name = job["name"]
52
+ metrics.append(metric(f"{name}: job", "min", seconds(job["started_at"], job["completed_at"]) / 60))
53
+ for step in job.get("steps", []):
54
+ if step["conclusion"] == "success" and step["name"].startswith(STEPS):
55
+ label = "wheel build" if step["name"].startswith("Run pypa/cibuildwheel") else step["name"]
56
+ duration = seconds(step["started_at"], step["completed_at"]) / 60
57
+ metrics.append(metric(f"{name}: {label}", "min", duration))
58
+ return metrics
59
+
60
+
61
+ def ninja_metrics(job, log):
62
+ """Compile time and count from a .ninja_log: a "# ninja log vN" header, then a line per
63
+ output (start and end in ms, mtime, output, hash), the last of an output rebuilt counting."""
64
+ outputs = {}
65
+ for line in log.read_text().splitlines():
66
+ fields = line.split("\t")
67
+ if line.startswith("#") or len(fields) < 4:
68
+ continue
69
+ outputs[fields[3]] = int(fields[1]) - int(fields[0])
70
+ compiles = [ms for output, ms in outputs.items() if output.endswith((".o", ".obj"))]
71
+ if not compiles:
72
+ return []
73
+ return [
74
+ metric(f"{job}: compile time", "min", sum(compiles) / 60000),
75
+ metric(f"{job}: compiles", "files", len(compiles)),
76
+ ]
77
+
78
+
79
+ def ccache_metrics(job, stats):
80
+ """The compiler cache's miss rate, from `ccache --print-stats` (key, tab, value per line)."""
81
+ values = dict(line.split("\t", 1) for line in stats.read_text().splitlines() if "\t" in line)
82
+ hits = int(values.get("direct_cache_hit", 0)) + int(values.get("preprocessed_cache_hit", 0))
83
+ misses = int(values.get("cache_miss", 0))
84
+ if hits + misses == 0:
85
+ return []
86
+ return [metric(f"{job}: ccache miss rate", "%", 100 * misses / (hits + misses))]
87
+
88
+
89
+ def main():
90
+ run_id, log_dir, output = sys.argv[1], Path(sys.argv[2]), Path(sys.argv[3])
91
+ metrics = run_metrics(run_id)
92
+ for artifact in sorted(log_dir.glob("ninja-log-*")):
93
+ job = artifact.name.removeprefix("ninja-log-")
94
+ if (artifact / ".ninja_log").exists():
95
+ metrics += ninja_metrics(job, artifact / ".ninja_log")
96
+ if (artifact / "ccache-stats.tsv").exists():
97
+ metrics += ccache_metrics(job, artifact / "ccache-stats.tsv")
98
+ output.write_text(json.dumps(metrics, indent=2))
99
+ print(f"{len(metrics)} metrics written to {output}")
100
+
101
+
102
+ if __name__ == "__main__":
103
+ main()
@@ -0,0 +1,46 @@
1
+ # Each CI run on main, recorded: its wall time, its jobs' and their build and test steps' times, and
2
+ # from the Ninja logs the compile time, compile count and ccache miss rate, kept on gh-pages under
3
+ # dev/ci with charts (https://alexmaietta.github.io/ernie/dev/ci/). A metric 30% worse than the last
4
+ # run's gets a commit comment.
5
+ name: CI metrics
6
+
7
+ on:
8
+ workflow_run:
9
+ workflows: [CI]
10
+ types: [completed]
11
+ branches: [main]
12
+
13
+ permissions:
14
+ contents: write
15
+ actions: read
16
+
17
+ jobs:
18
+ record:
19
+ if: github.event.workflow_run.event == 'push'
20
+ runs-on: ubuntu-24.04
21
+ steps:
22
+ - uses: actions/checkout@v7
23
+ - uses: actions/download-artifact@v8
24
+ with:
25
+ run-id: ${{ github.event.workflow_run.id }}
26
+ github-token: ${{ secrets.GITHUB_TOKEN }}
27
+ pattern: ninja-log-*
28
+ path: ninja-logs
29
+ - name: Collect the metrics
30
+ env:
31
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
32
+ run: python3 .github/scripts/ci_metrics.py "${{ github.event.workflow_run.id }}" ninja-logs metrics.json
33
+ - uses: benchmark-action/github-action-benchmark@v1
34
+ with:
35
+ name: CI
36
+ tool: customSmallerIsBetter
37
+ output-file-path: metrics.json
38
+ gh-pages-branch: gh-pages
39
+ benchmark-data-dir-path: dev/ci
40
+ ref: ${{ github.event.workflow_run.head_sha }}
41
+ github-token: ${{ secrets.GITHUB_TOKEN }}
42
+ auto-push: true
43
+ alert-threshold: "130%"
44
+ comment-on-alert: true
45
+ fail-on-alert: false
46
+ max-items-in-chart: 200