Hydra render engine #104712

Closed
Bogdan Nagirniak wants to merge 142 commits from BogdanNagirniak/blender:hydra-render into main

When changing the target branch, be careful to rebase the branch in your fork to match. See documentation.

142 Commits

Author SHA1 Message Date
Brecht Van Lommel 03d803636f Merge branch 'main' into hydra-render
buildbot/vexp-code-patch-coordinator Build done. Details
2023-08-04 15:00:53 +02:00
Brecht Van Lommel 5ea9d59e48 Cleanup: remove unnecessary extern "C" 2023-08-04 14:49:55 +02:00
Vasyl Pidhirskyi 4aefb65cc1 IBL has a wrong coordinates in render
### Purpose
IBL has a wrong coordinates in render.

### Technical steps
Removed transform property from WorldData.
Removed redundant code.
Format.

Pull Request BogdanNagirniak/blender#85
2023-08-03 17:19:55 +02:00
Brecht Van Lommel 0675bd324c Remove MaterialX and set_sync_settings
buildbot/vexp-code-patch-coordinator Build done. Details
The implementation of this is not ready yet, and we'll merge initial support
without it.
2023-08-03 15:59:26 +02:00
Brecht Van Lommel 77b60d04e9 Tests: use separate directories for USD/Hydra references renders
Not yet at a stage where these can be the same.
2023-08-03 15:59:26 +02:00
Brecht Van Lommel ba025ecab8 Cleanup: fix compiler warnings 2023-08-03 15:18:44 +02:00
Bogdan Nagirniak 53b9a55604 Adjusting code after merge
buildbot/vexp-code-patch-coordinator Build done. Details
2023-08-03 00:05:30 +03:00
Bogdan Nagirniak 1c717540d0 Merge branch 'main' into hydra-render 2023-08-02 21:47:17 +03:00
Bogdan Nagirniak e35c1f5b6a Optimized SubMesh to hold only used vertices
### Purpose
Following warning in Storm delegate could happen with multimaterials:
`Invalid Hydra prim '/scene/O_000001C64A534808/SM_0001': Vertex primvar points has 42 elements, while its topology references only upto element index 40.`

### Technical steps
Moved vertices to `MeshData::SubMesh`. Optimized SubMesh to hold only used vertices.

Pull Request BogdanNagirniak/blender#84
2023-08-02 16:44:57 +02:00
Bogdan Nagirniak 6132b88c7c Fixed rendering for MacOS
### Purpose
Crash on MacOS.

### Technical steps
1. For MacOS `RenderTaskDelegate` is created instead of `GPURenderTaskDelegate`.
2. Disabled `skydome_task` for MacOS.
3. Improved some logging.

### Notes
Need to fix Skydome.

Pull Request BogdanNagirniak/blender#82
2023-08-02 09:37:16 +02:00
Bogdan Nagirniak 9a4656fe0e Moved check of existing MaterialX addon from bpy_hydra.py to material.cc and log warning only once.
### Purpose
There are lot of warn logging when [MaterialX addon](https://projects.blender.org/BogdanNagirniak/blender-addons/src/branch/materialx-addon) doesn't exist. Moreover we don't plan to release it.

### Technical steps
Added check of existing MaterialX addon to `MaterialData::export_mtlx()`, removed its checking from `bpy_hydra.export_mtlx()`.
Made check and warn only once.

Pull Request BogdanNagirniak/blender#83
2023-08-02 07:44:54 +02:00
Bogdan Nagirniak debaa39dfe Hydra code cleanup
### Purpose
After code refactor in #75 there is good to adjust logging + do code polishing and improvement.

### Technical steps
1. Renamed logger `LOG_RENDER_HYDRA_SCENE -> LOG_HYDRA_SCENE` as "hydra.scene".
2. Renamed logger `LOG_RENDER_HYDRA -> LOG_HYDRA_RENDER` as "hydra.render".
3. Simplified `Engine` classes by adding `depsgraph_`, `context_` and `scene_` to class fields. Unified structure of `Engine` classes.
4. Moved AOV tokens map to `FinalEngine` as more related.
5. Made other code cleanups and improvements.

Pull Request BogdanNagirniak/blender#81
2023-08-01 21:35:13 +02:00
Georgiy Markelov c65880ad3f Support more AOVs
### Purpose
Support more AOVs

### Technical steps
Python:
* added empty `def update_render_passes` in base class (Must be overridden in child classes)

C++:
* improved code to utilize supported AOVs
* Added logging to tasks

### Note for reviewers
Use with:
HdRPR: https://github.com/bnagirniak/RPRHydraRenderBlenderAddon/pull/22/files
HdStorm: https://projects.blender.org/BogdanNagirniak/blender-addons#23

Pull Request BogdanNagirniak/blender#78
2023-07-29 14:45:03 +02:00
Bogdan Nagirniak eca3438772 Render fixes after refactoring
### Purpose
After refactoring PRs there are render issues such as crash with RPR delegate in viewport.

### Technical steps
1. Moved binding of framebuffer and VAO to `GPURenderTaskDelegate` and use it in Viewport render.
2. Made more correct viewport render for Storm delegate by rendering it to separate framebuffer.

Pull Request BogdanNagirniak/blender#79
2023-07-29 11:44:55 +02:00
Brecht Van Lommel 4be7a4667a Fix error in final render after landing changes 2023-07-27 20:20:09 +02:00
Brecht Van Lommel 12b40425a3 Refactor: remove need to use .as_pointer() for _bpy_hydra
buildbot/vexp-code-patch-coordinator Build done. Details
And remove some unnecessary includes.
2023-07-27 15:05:49 +02:00
Brecht Van Lommel 0c9d643b2d Move HydraRenderEngine to bpy.types, update Python API docs
* Makes it more consistent with other types that can be subclassed.
* Give bl_ prefix to delegate_id.
* Lazily import _bpy_hydra.
* Tweaks to API docs example.

Pull Request: BogdanNagirniak/blender#77
2023-07-27 15:05:49 +02:00
Brecht Van Lommel 905de27037 Replace custom register plugins API function by pxr API
Not sure why this was needed.
2023-07-27 15:05:49 +02:00
Brecht Van Lommel 6b07d1b251 Initialize PXR_MTLX_STDLIB_SEARCH_PATHS in same place as MATERIALX_SEARCH_PATH
More consistent, and avoids paths being added multiple times if multiple
hydra render engines are registered.
2023-07-27 15:05:48 +02:00
Brecht Van Lommel 5d537092c1 Make update happen at appropriate time, by binding GPU context
Otherwise the UI draw lock functionality does not work. Also renames
engine_sync to engine_update for consistency.
2023-07-27 15:05:48 +02:00
Brecht Van Lommel 335f3f3413 Cleanup: improve comment 2023-07-27 15:05:48 +02:00
Brecht Van Lommel a3fcd24dd0 Cleanup: use SPDX for copyright 2023-07-27 15:05:48 +02:00
Brecht Van Lommel f9a7410305 Change license to GPL v2
This code is part of Blender itself, and we want to be able to freely
copy and paste code from other parts of Blender.
2023-07-27 15:05:48 +02:00
Brecht Van Lommel b75b39c54b Refactor: follow style guide for class layout, includes, casting 2023-07-27 15:05:48 +02:00
Brecht Van Lommel 83219387fd Refactor: move Hydra scene delegate to io/usd module
To make it more clear that these are closely related and should stay in
sync as much as possible.

Also
* Rename BlenderSceneDelegate to HydraSceneDelegate, to go along with
  with USDSceneDelegate.
* Move MaterialX code into material.cc.

Pull Request: BogdanNagirniak/blender#75
2023-07-27 15:05:25 +02:00
Brecht Van Lommel 59814e1124 Build: use consistent CMake flags for both modules using USD 2023-07-27 13:53:43 +02:00
Brecht Van Lommel 62d2f0960f Fix invalid context access in scene delegate
The context is temporary and changes over time depending on the
operation Blender is doing. That means holding on to it in the scene
delegate is not safe. Instead extract the members from it beforehand.

Pull Request #76
2023-07-27 13:38:05 +02:00
Brecht Van Lommel 278981c26e Fix invalid memory write, causing crashes with longer scene names 2023-07-26 16:52:39 +02:00
Brecht Van Lommel 03f24159b8 Fix multi render layer rendering writing to the wrong buffers 2023-07-26 16:52:39 +02:00
Brecht Van Lommel f54b2310a0 Fix assert when due to use of filtering stencil texture
None of these textures need filtering or mipmaps. These are not scaled
for drawing, and even if they were used for image editor drawing with
zoom the consistent thing would still be to use nearest interpolation.
2023-07-26 16:52:39 +02:00
Brecht Van Lommel daa85797fa Fix OpenGL core profile issue with rendering when selecting objects
Use same workaround as for final render in the viewport.
2023-07-26 16:52:39 +02:00
Brecht Van Lommel 875716a7f8 Fix GCC compiler warnings 2023-07-26 16:52:39 +02:00
Bogdan Nagirniak 5e91a47f10 Support instancing for other objects: curves and volumes
### Purpose
Curves and volumes are supported objects but not working as instances.

### Technical steps
1. Changed `InstancerData::LightInstance` to `InstancerData::NonmeshInstance` which supports all other object types except mesh.
2. Adjusted `update_nonmesh_instance` to support all object types.
3. Made code adjustments and renamings.

Pull Request BogdanNagirniak/blender#74
2023-07-26 10:27:30 +02:00
Bogdan Nagirniak d4789b2d9a Hydra tasks refactor
### Purpose
Code for `RenderTaskDelegate` is obsolete + working with separate framebuffer for GPU engines instead of aov is hard to maintain.
This is preparation for supporting more AOVs and GL context with core profile mode.

### Technical steps
1. Moved working with `GPUTexture` and `GPUFramebuffer` to `RenderTaskDelegate`. Now it is working the same as AOVs. Added `class GPURenderTaskDelegate : public RenderTaskDelegate`. Improved structure of `class RenderTaskDelegate`.
2. Removed `FinalEngineGPU`, `PreviewEngineGPU` as not needed, as forking with render framebuffer moved to `RenderTaskDelegate`. Simplified `PreviewEngine`.
3. Additionally improved structure of `LightTasksDelegate` for easier to maintain.
4. Adjusted `FinalEngine` and `ViewportEngine`.

Pull Request BogdanNagirniak/blender#73
2023-07-25 22:13:10 +02:00
Vasyl Pidhirskyi 3517223676 Implement transparent background for Storm delegate
### Purpose
Implement transparent background for Storm delegate.

### Technical steps
Utilized scene.render.film_transparent build-in blender property for Storm delegate.
Adjusted clear_color to alpha 0.0 for final render.

### Notes for reviewers
Should be reviewed with the pull request BogdanNagirniak/blender-addons#21

Pull Request BogdanNagirniak/blender#71
2023-07-23 21:02:39 +02:00
Vasyl Pidhirskyi 47e030e465 PreviewEngine for Storm delegate
### Purpose
Make available Strom delegate to utilize for material preview.

### Technical steps
- Implemented PreviewEngineGPU::render. Similar to FinalEngineGPU::render.
- Adjusted python.cc to use PreviewEngineGPU.

### Notes for reviewers
Should be reviewed with the pull request BogdanNagirniak/blender-addons#20

Pull Request BogdanNagirniak/blender#69
2023-07-21 11:27:53 +02:00
Georgiy Markelov 288c9d6e04 Export volumes from object modifier (quick effect)
### Purpose
Add export volumes from object modifier (quick effect)

### Technical steps
Added new class `VolumeModifierData`
Added processing of Volume quick effect

Co-authored-by: Bogdan Nagirniak <bodyan@gmail.com>
Pull Request BogdanNagirniak/blender#62
2023-07-20 23:49:14 +02:00
Vasyl Pidhirskyi 9c3dcacd9c Make DomeLight visible for Storm delegate
### Purpose
Make world color and texture visible for Storm delegate.

### Technical steps
- Implemented LightTasksDelegate.
- Updates CMakeLists.txt with light_tasks_delegate.h, light_tasks_delegate.cc.
- Appended HdTaskSharedPtrVector with light_tasks_delegate_.

Pull Request BogdanNagirniak/blender#68
2023-07-20 22:35:36 +02:00
Bogdan Nagirniak 35ed6dbbda Refactor code after PR #57
### Purpose
Some code has to be refactored after BogdanNagirniak/blender#57:
- Remove unused code
- Improve structure of ID classes
This is preparation for instancing curves and volumes.

### Technical steps
1. Improved structure of classes `IdData` and `ObjectData`, adjusted child classes.
2. Changed inheritance: `WorldData: LightData`.
3. Added `ObjectData::get_or_create_material()`, simplified child classes.
4. Removed unused code.
5. Improved logging.
6. Fixed crash with `MaterialPreview`.

Pull Request BogdanNagirniak/blender#67
2023-07-20 22:34:22 +02:00
Brecht Van Lommel 85470c770f Add scene setting to export through either Hydra or USD, for debugging
The Hydra Storm add-on already had a setting to use a USD file, with
associated sync_usd API function. But this way works for all Hydra
engines and doesn't require manually exporting a USD file each time.

Pull Request #65
2023-07-14 19:41:00 +02:00
Brecht Van Lommel 9e7dd8bbc2 Fix various build issues and warnings on Linux
* Fix build when WITH_USD and WITH_MATERIALX are disabled
* Link issue with mixed Clang and GCC libs
* Unused arguments
* Different integer printf types on Windows and Linux

Pull Request #63
2023-07-13 20:26:34 +02:00
Brecht Van Lommel ee62b0b320 Add automated tests for Storm, with both Hydra and USD export methods
Needs WITH_OPENGL_RENDER_TESTS CMake option to be enabled.

Pull Request #66
2023-07-13 20:17:55 +02:00
Bogdan Nagirniak 496e79baf5 Merge branch 'main' into hydra-render 2023-07-13 01:53:17 +03:00
Bogdan Nagirniak bd3f747044 Fix rendering of Final render for Storm delegate
### Purpose
Final render for Storm delegate returns empty image.

### Technical steps
1. Added comment in `bpy_hydra.py` that if `bl_use_gpu_context` is enabled then `update()` should be empty and engine cretaion and syncing has to moved to `render()`. Corresponded PR for Storm Hydra addon BogdanNagirniak/blender-addons#17.
2. Renamed `FinalEngineGL -> FinalEngineGPU` as more related.
3. Fixed `FinalEngineGPU::render()` to works with Storm delegate.
4. Fixed CullStyle for mesh and material.
5. Improved logging.

Pull Request BogdanNagirniak/blender#61
2023-07-12 23:17:42 +02:00
Brecht Van Lommel 94523eb3de Merge branch 'main' into hydra-render 2023-07-12 17:03:28 +02:00
Brecht Van Lommel 9263c6428b Align light export with USD import and export
Companion to blender/blender#109795 and blender/blender#109929.

Pull Request #64
2023-07-12 13:48:14 +02:00
Bogdan Nagirniak ca0c3841e2 Make object visibility and instancing creation to be calculated via depsgraph
### Purpose
Fix code review comments:
#104712 (comment)
#104712 (comment)
#104712 (comment)

### Technical steps
1. Made getting object visibility from depsgraph without using custom functionality.
2. Made instancing creation to be calculated from depsgraph. Moved to to use one `InstancerData` in `BlenderSceneDelegate` for whole scene.
3. Removed unused code.

Pull Request BogdanNagirniak/blender#57
2023-07-08 10:09:32 +02:00
Bogdan Nagirniak 0a07bd1424 Fix crash when hydra render plugin isn't loaded
### Purpose
Render engine crashes when hydra render delegate isn't loaded.

### Technical steps
Added `throw` to `Engine` creation when `render_delegate_ ` wasn't created.
Added corresponding error logging in `python.cc`.
Adjusted `bpy_hydra.py`.

Pull Request BogdanNagirniak/blender#60
2023-07-04 10:22:26 +02:00
Georgiy Markelov c0dd92c641 Export volumes
### Purpose
Add support for volumes export

### Technical steps
Added new class `VolumeData`

Pull Request BogdanNagirniak/blender#58
2023-07-04 09:57:21 +02:00
Georgiy Markelov 7ae4cd82c5 Support EnvironmentTexture node for world
### Purpose
Add support `EnvironmentTexture` node for world

### Technical steps
* Add support `EnvironmentTexture` node for world
* added `DomeLight` transform not only for HdRPR
* fixed bug when image save options where not applied

Pull Request BogdanNagirniak/blender#59
2023-07-02 14:09:25 +02:00
Georgiy Markelov a34976e949 Implement Viewport render with material preview
### Purpose
Implement Viewport render with material preview

### Technical steps
* Fixed issue with wrong `std::string` usage which leads to incorrect behavior;
* Added special checks for various options of material preview;

Co-authored-by: Bogdan Nagirniak <bodyan@gmail.com>
Pull Request BogdanNagirniak/blender#56
2023-06-30 09:03:06 +02:00
Bogdan Nagirniak c20f181fab Adjusting code after merging with `main` branch 2023-06-14 16:52:38 +03:00
Bogdan Nagirniak 56cf53f6c7 Merge branch 'main' into hydra-render 2023-06-14 12:05:19 +03:00
Bogdan Nagirniak 70844a9a16 Fix DomeLight warning in console for Storm delegate.
### Purpose
Storm delegate produces warning if not texture in DomeLight: `Warning: in _GetResolvedDomeLightEnvironmentFilePath at line 320 of C:\db\build\S\VS1564R\build\usd\src\external_usd\pxr\imaging\hdSt\simpleLightingShader.cpp -- Dome light has no texture asset path.`

### Technical steps
Implemented cache_image_color() to image.cc.
Added pxr::HdLightTokens->textureFile to WorldData with colored texture if only color is available.

Pull Request BogdanNagirniak/blender#55
2023-06-13 19:13:24 +02:00
Georgiy Markelov bf4b914f28 Caching generated image leads to infinite loop in preview render
### Purpose
Fix infinite loop in preview render when generated image cached.

### Technical steps
Caching images moved from python to C++ part so caching no more triggers Depsgraph updates;
Added `cache_image_func`;
Fixed caching logic;

Co-authored-by: Bogdan Nagirniak <bodyan@gmail.com>
Pull Request BogdanNagirniak/blender#53
2023-06-13 18:39:19 +02:00
Bogdan Nagirniak 965a1f3a0e Fix texture render in HdStorm.
### Purpose
Mesh UV coords aren't translated to Storm delegate.

### Technical steps
Changed mesh primvar name for UVs to `st` which is primary name in HdStorm.
Added private token: `st`

Pull Request BogdanNagirniak/blender#54
2023-06-13 03:19:01 +02:00
Georgiy Markelov d4746cbd98 Add possibility to provide render delegate specific tokens to scene delegate
### Purpose
Add possibility to provide render delegate specific tokens to scene delegate.

### Technical steps
Added Map of tokens to scene delegate settings;
Fixed getting data for lights;

### Note for reviewers
Test with https://github.com/bnagirniak/RPRHydraRenderBlenderAddon/pull/18

Pull Request BogdanNagirniak/blender#52
2023-06-09 00:16:26 +02:00
Georgiy Markelov 6e0c502076 Fix review comments
### Purpose
Refactoring: fix Brecht's review comments

### Technical steps
* Removed unnecessary code
* Fixed widths, uvs and material for curves
* Code improvements
* Removed bypass to avoid `BKE_object_to_mesh`
* Removed `pxr::PlugRegistry::GetInstance().RegisterPlugins`, `init_func` and `get_render_plugins_func`

Pull Request BogdanNagirniak/blender#51
2023-06-08 18:10:42 +02:00
Vasyl Pidhirskyi 1c62eeb25c Change log severity for better maintability
### Purpose
Severity for LOG_RENDER_HYDRA_SCENE:

0: add/remove/update objects in BlenderSceneDelegate
1: add/remove/update objects in IdData classes
2: visibility, instances
3: getters

### Technical steps
Adjusted levels.

Pull Request BogdanNagirniak/blender#50
2023-06-05 19:46:01 +02:00
Bogdan Nagirniak b281552f56 Add possibility to render USD file for testing purposes
### Purpose
For testing purposes it'll be useful to have possibility to render USD stage.

### Technical steps
- Added `usd_delegate_ (class UsdImagingDelegate)` and `sync_usd()` to `class Engine`
- Added `engine_sync_usd_func()` in `python.cc`

### Notes
Can be tested with Storm delegate BogdanNagirniak/blender-addons#14

Pull Request BogdanNagirniak/blender#49
2023-06-02 13:07:20 +02:00
Vasyl Pidhirskyi 00167e6693 Move to use blender::Map container instead std::unordered_map
### Purpose
Move to use blender::Map container instead std::unordered_map.
Move to use blender::Set container instead std::set.

### Technical steps
Adjusted code according to `BLI_map.hh`, `BLI_set.hh`and `BLI_hash.hh` implementations.
Refactored `InstancerDataMap`, `ObjectDataMap`, `MaterialDataMap`, `mesh_instances_`, `light_instances_`, `available_objects`, and `available_materials`.

Pull Request BogdanNagirniak/blender#47
2023-06-02 12:02:30 +02:00
Georgiy Markelov c4c04e61d3 Remove timer from PreviewEngine
### Purpose
Remove timer from PreviewEngine

### Technical steps
Removed timer from PreviewEngine

Pull Request BogdanNagirniak/blender#48
2023-06-01 02:12:00 +02:00
Georgiy Markelov 03ac728432 Export curves
### Purpose
Implement Curves export.

### Technical steps
New class CurvesData.

### Note for reviewers
Applying any material on Curves causes wrong behavior and crash on RPR side (HdStorm work fine). Will discuss it with RPR team.

Pull Request BogdanNagirniak/blender#46
2023-05-29 11:45:31 +02:00
Georgiy Markelov 81316af497 Add copying hdStorm folder
Added copying hdStorm folder

Pull Request BogdanNagirniak/blender#45
2023-05-25 12:01:19 +02:00
Georgiy Markelov c7463a963f Fix visibility of instancer object
Purpose
Fix various visibility settings for objects and instances.

Technical steps
* Added static functions `is_visible` for `InstanceData` and `ObjectData`
* Instance visibility performed via `ObjectData::update_parent()`
* Fixed update on scene update
* Reworked algorithm of visibility identification

Co-authored-by: Bogdan Nagirniak <bodyan@gmail.com>
Pull Request BogdanNagirniak/blender#43
2023-05-24 13:44:24 +02:00
Bogdan Nagirniak 3f7774c002 Support multimaterials on one mesh
### Purpose
Hydra doesn't support multimaterials assigned to one mesh, therefore we have to split mesh to submeshes with one material.

### Technical steps
1. Changed structure of `MeshData` to support submeshes for one material:
    - added `MeshData::SubMesh`
    - moved mesh export to `write_submeshes()`
    - implemented more correct material assignment.
2. Adjusted `InstancerData` due to submeshes in `MeshData`.
3. Adjusted `BlenderSceneDelegate`.

Pull Request BogdanNagirniak/blender#44
2023-05-24 07:07:25 +02:00
Bogdan Nagirniak d14a315b7f Create possibility to provide render settings via BlenderSceneDelegate
### Purpose
Hydra render addons could provide additional settings for `BlenderSceneDelegate`, like HdRPR could ask for direct `MaterialXFilename`.

### Technical steps
1. Separated setting render and sync settings in `Engine`: added `Engine::set_sync_setting(), Engine::set_render_setting()`. Added corresponded functions to `python.cc` and `bpy_hydra.py`.
2. Added possibility to provide additional settings for `BlenderSceneDelegate`: `BlenderSceneDelegate::set_setting()`.
3. Separated `MaterialData::init()` to `export_mtlx()` and `write_material_network_map()`.
4. Adjusted code.

Pull Request BogdanNagirniak/blender#41
2023-05-19 20:19:06 +02:00
Bogdan Nagirniak a9034838f8 Adjust CMakeLists.txt after merging with main 2023-05-12 19:41:51 +03:00
Bogdan Nagirniak 9b3a5b1512 Merge branch 'main' into hydra-render 2023-05-12 14:33:10 +03:00
Bogdan Nagirniak 796398e8cc Fixing build on MacOS
### Purpose
There are compiling bugs on MacOS.

### Technical steps
1. Adjusted ID_LOG macros.
2. Added several includes.
3. Code improvements: removed some comments, added `namespace blender::render::hydra` to `mtlx_hydra_adapter.mtlx`.

Pull Request BogdanNagirniak/blender#39
2023-05-11 09:11:46 +02:00
Bogdan Nagirniak b918617073 Implement GetDoubleSided and GetCullStyle for BlenderSceneDelegate
### Purpose
GetDoubleSided and GetCullStyle has to be implemented for BlenderSceneDelegate. It is especially important for HdStorm.

### Technical steps
1. `double_sided` option is material property, not mesh, therefore it was translated from MaterialData to MeshData.
2. Implemented set of `DirtyDoubleSided` for mesh when it was changed for material.

Pull Request BogdanNagirniak/blender#38
2023-05-10 14:03:01 +02:00
Vasyl Pidhirskyi 1dd88bd713 Fix rendering of Car Demo scene
### Purpose
Fix rendering of Car Demo scene.

### Technical  steps
Improved support for instancers type of EMPTY object.
Adjusted condition for `update_instancers` and `available_objects`.

Pull Request BogdanNagirniak/blender#37
2023-05-05 20:55:36 +02:00
Georgiy Markelov a95359896d Recreate PreviewEngine when render_delegate_name is changed
### Purpose
Recreate `PreviewEngine` when `render_delegate_name` is changed.

### Technical  steps
Added comparison of `render_delegate_name` and `PreviewEngine` re-creation  on `PreviewEngine::update`
Added/updated some comments.

Pull Request BogdanNagirniak/blender#36
2023-05-05 14:49:20 +02:00
Georgiy Markelov 26f2b0b9d5 Need to do the same light power as Cycles in Watts for Hydra RPR
### Purpose
Adjust lights to match Cycles's results

### Technical steps
* Adjusted intensity
* Fixed wrong tokens
* Fixed light update
* Fixed wrong data types

Pull Request BogdanNagirniak/blender#34
2023-05-05 08:42:16 +02:00
Bogdan Nagirniak c53ee9af58 Implement instancing for light objects
### Purpose
Instancing of light objects isn't working yet. It differs from mesh instancing, because they light instances has to be created as separate light prims for HdRenderIndex.

### Technical steps
1. Separated `MeshInstance` and `LightInstance` in `Instancer` class.
2. Implemented `Instancer` to create light instances as separate prims for HdRenderIndex.
3. Fixed light update.
4. Fixed Instancer transform update for HdStorm.

Pull Request BogdanNagirniak/blender#35
2023-05-04 15:12:17 +02:00
Bogdan Nagirniak 00048d5054 Fix instances update when parent object is changed
### Purpose
Changing parent object for mesh doesn't influence to instancer, when parent object is instancer.

### Technical steps
1. Added `MeshData::parent_` field for checking parent object changes.
2. Implemented `InstancerData::update_as_parent()` and call it when parent is changed.
3. Fixed bug with positioning instance mesh after update.

Pull Request BogdanNagirniak/blender#33
2023-05-03 21:18:41 +02:00
Bogdan Nagirniak b9cd5b597e Move bpy_hydra.export_mtlx() exception handling to C code
### Purpose
Currently we catch all exceptions in `bpy_hydra.export_mtlx()`, because of memory issues.

### Technical steps
1. Removed `except:` and `traceback.print_exc()` from `bpy_hydra.export_mtlx()`.
2. Applied `PyErr_Fetch()` instead `PyErr_Print()` to correctly free exception data.

Pull Request BogdanNagirniak/blender#28
2023-05-03 21:15:42 +02:00
Georgiy Markelov e5c6ba142b Hotfix convert Path to string
Hotfix for this PR BogdanNagirniak/blender#30

Pull Request BogdanNagirniak/blender#32
2023-04-28 19:09:16 +02:00
Georgiy Markelov 486b6ea406 Fix wrong path for PXR_MTLX_STDLIB_SEARCH_PATHS
Fix setting `PXR_MTLX_STDLIB_SEARCH_PATHS` depending on the platform.

Pull Request BogdanNagirniak/blender#30
2023-04-28 11:43:50 +02:00
Bogdan Nagirniak 1ae026ef30 Merge branch 'main' into hydra-render 2023-04-28 08:48:46 +02:00
Georgiy Markelov 9bb6dbf82a Add IBL support
### Purpose
Add support for ".exr" image extention for DomeLight

### Technical steps
1. Refactored:
    - moved `cache_image_file()` from `utils.cc` to `scene_delegate/image.cc`
    - moved `gf_matrix_from_transform()` from `utils.cc` to `scene_delegate/object.cc`
    - removed `utils.cc` as not needed.
2. Implemented more correct image caching.
3. Adjusted passing image for DomeLight.
4. Added copying hioOiio folder.

Co-authored-by: Bogdan Nagirniak <bodyan@gmail.com>
Pull Request BogdanNagirniak/blender#29
2023-04-27 09:25:00 +02:00
Georgiy Markelov e9a52298f1 Fix review comments 2
### Purpose
Refactoring to match Blender's team requirements and code style.

### Technical steps
Simplified `FinalEngine`, `FinalEngineGL` and `PreviewEngine` with `FinalEngine::prepare_for_render`
Added `render_delegate_name` to `BlenderSceneDelegate` and `Engine`

Pull Request BogdanNagirniak/blender#31
2023-04-27 09:05:23 +02:00
Georgiy Markelov 3fba132714 Fix review comments
### Purpose
Refactoring to match Blender's team requirements and code style.

### Technical steps
* Replaced `utils.h/format_duration` with `BLI_timecode_string_from_time_simple`
* Made material names unique
* `LOG_EN` -> `LOG_RENDER_HYDRA`, `rhd.en` -> `render.hydra`
* `LOG_BSD` -> `LOG_RENDER_HYDRA_SCENE`, `rhd.bsd` -> `render.hydra.scene`
* Cached images now saved under `BKE_tempdir_session()//hydra_image_cache` folder

Pull Request BogdanNagirniak/blender#27
2023-04-21 15:02:33 +02:00
Bogdan Nagirniak 4c48fbb63c Code improvements and fixes
### Purpose
Made some code refactoring after implementing instances for better maintain code in future + added bug fixes.

### Technical steps
1. Refactor:
    - Moved `prim_id()` functions from `IdData` classes to `BlenderSceneDelegate` as more related
    - Moved to use `ObjectData::transform` as a field for better maintain it
    - Made some fields as public in `BlenderSceneDelegate` as logically more related and as they use in `IdData` classes. Made some fields in `IdData` as public. Removed some friends classes
    - Added `const` to some methods
    - Renamed some fields

2. Bug fixes:
    - Fixed crash with Storm delegate after finish render
    - Fixed scene update after removing world object from scene

Pull Request BogdanNagirniak/blender#26
2023-04-21 07:48:38 +02:00
Bogdan Nagirniak 40e3c2eb8c Support several instancers on one object
### Purpose
Instancer object could provide instances for its children objects, but we support only one instance object. Also removing/changing/adding of instancer object isn't working correctly.

### Technical steps
1. Restructured `InstancerData`:
    - now it could hold several `ObjectData` which are instances
    - restructured order of instancer and instance objects in `RenderIndex`.
2. Refactoring:
    - improved logging in `IdData` children classes
    - splitted `populate()` and `update_collection()` in `BlenderSceneDelegate` to several functions for more flexibility.
3. Improved/fixed:
    - object updates (transform, mesh update, remove) inside instancer
    - instancer updates (transform, update, remove).

Pull Request BogdanNagirniak/blender#24
2023-04-19 02:46:12 +02:00
Georgiy Markelov 7fa38c6b1e Rename some functions
### Purpose
Rename and reorder methods to match Blender's team requirements and code style.

Pull Request BogdanNagirniak/blender#25
2023-04-18 09:07:15 +02:00
Bogdan Nagirniak 0c2acaeac7 Adjust code after merge with main branch 2023-04-10 19:07:31 +03:00
Bogdan Nagirniak 28690ed45e Merge branch 'main' into hydra-render 2023-04-10 15:16:11 +03:00
Georgiy Markelov 3f97872f21 BLEN-365: Improve creation algorithm of PreviewEngine
**Purpose**
`PreviewEngine` shouldn’t be recreated every time when material is changed.

**Technical steps**
Python:
1. Creation and sync of engine moved to `def update`

C++:
1. Added delayed deletion for `PreviewEngine` (180 sec for now). Timer is refreshed with every change;
2. Moved creation of `BlenderSceneDelegate` from every `Engine`'s inheritor to `Engine::Engine`;
3. `PreviewEngine::sync` clears `render_index` and `scene_delegate`'s data;

Co-authored-by: Bogdan Nagirniak <bodyan@gmail.com>
Pull Request BogdanNagirniak/blender#21
2023-04-10 12:44:38 +02:00
Bogdan Nagirniak aa002fec8e Move to use the GPU API instead OpenGL
### Purpose
We have to use GPU API instead OpenGL

### Technical steps
1. Rewritten code in GLTexture, renamed GLTexture -> DrawTexture.
   Improved: moved GPUBatch creation to constructor instead creating it in draw().
2. Rewritten code in FinalEngineGL.
3. Cleaned up CMakeLists.txt.

### Notes
FinalEngineGL still shows empty picture, this bug isn't fixed here.

Pull Request [#23](BogdanNagirniak/blender#23)
2023-04-07 13:28:40 +02:00
Georgiy Markelov 8e6611dabe BLEN-358: Error in console after closing Blender
**Purpose**
BogdanNagirniak/blender-addons#4 doesn’t fix fully fix issue.

**Technical steps**
Added catching and print exception on Python side.

Pull Request [#22](BogdanNagirniak/blender#22)
2023-04-06 11:58:19 +02:00
Bogdan Nagirniak 5dff356a4e BLEN-359: Implement updates for instances in viewport
### Purpose
Instances aren't correctly applied in scene delegate + updates instances in viewport isn't working.

### Technical steps
1. Refactoring:
    * updated interface of IdData class: added base methods `init() insert() remove() update()` which should be overrided in child classes
    * moved object update to `update()` instead recreation of IdData
2. Implemented InstancerData class.
    * moved instancer related code to InstancerData, improved working with instances transforms
    * adjusted BlenderSceneDelegate code to work with InstancerData
3. Implemented updates of instanced due to:
    * parent object changes: transform, mesh changes, add/remove
    * base mesh changes: transform, mesh changes, add/remove

### Notes
This is not final changes in instances here. We work only with one instancer for parent object, but it could have several instancers.

Pull Request [#20](BogdanNagirniak/blender#20)
2023-04-05 11:47:28 +02:00
Georgiy Markelov 48acbd994b BLEN-374: Check normals and UVs for Storm delegate
**PURPOSE**
Fix incorrect application of material to object with HdStorm.

**TECHICAL STEPS**
Set subdivion scheme to None. Read: [about normals](https://openusd.org/dev/api/class_usd_geom_mesh.html#:~:text=A%20Note%20About%20Normals)

Pull Request [#19](BogdanNagirniak/blender#19)
2023-03-29 09:08:30 +02:00
Bogdan Nagirniak 38378e3db4 Adjusted MeshData::set_mesh()
Removed unused includes from CMakeLists.txt and fixed warning C4100.
2023-03-27 13:41:32 +03:00
Bogdan Nagirniak 7e7808a9d8 Merge branch 'main' into hydra-render 2023-03-26 13:58:15 +03:00
Bogdan Nagirniak 269deec0f6 BLEN-372: Fix copying hdStorm and usdShaders libraries
### Purpose
Fix build code due to code review comments.

### Technical steps
1. Set WITH_HYDRA option ON for all platforms.
2. Removed unnecessary build flags.
3. Removed copying plugin/usd/hdStorm, it has to be moved to Hydra storm addon

### Notes
Storm is working with BogdanNagirniak/blender-addons#6

Pull Request #18
2023-03-24 18:11:18 +01:00
Georgiy Markelov 34e1d9e631 BLEN-370: Find way not to modify PATH
**PURPOSE**
Move modifying env variables from Blender code to plugin side.

**TECHNICAL STEPS**
* Removed setting env variables in Blender code.
* Removed unused code.

**NOTE FOR REVIEWERS**
Use with:
https://github.com/bnagirniak/RPRHydraRenderBlenderAddon/pull/11

Pull Request #17
2023-03-23 12:59:12 +01:00
Bogdan Nagirniak 9af1f0ad0d BLEN-369: Change GLOG to CLOG
### Purpose
CLOG logger should be used.

### Technical steps
Changed logger from GLOG to CLOG, adjusted log messages. Improved some logs.

### Notes
CLOG_INFO can be tested by running `blender.exe --log-level 3 --log rhd.* <--log-show-timestamp> <--log-show-basename>`

Pull Request #16
2023-03-20 10:45:03 +01:00
Bogdan Nagirniak 14e7eedfd6 BLEN-368: Fixes in hydra.py
### Purpose
Fixing review comments #104712 related to release/scripts/modules/hydra.py module.

### Technical steps
1. Renamed module hydra.py -> bpy_hydra.py.
2. Renamed internal module `_hydra` -> `_bpy_hydra`.
3. Added docstrings to bpy_hydra.py with example of CustomHydraRenderEngine.
4. Removed `traceback` and Exception catch in `export_mtlx()`.
5. Changed `MaterialData::export_mtlx()` to send material object directly.

Pull Request #15
2023-03-16 14:42:56 +01:00
Georgiy Markelov b6e420f8b2 BLEN-367: Fix code style
1. renamed files
2. files formated with `make format`
3. camelCase -> snake_case for variables
4. capitalized `enum DirtyBits`
5. removed `using namespace`
6. rewritten `gf_matrix_from_transform`

Pull Request #14
2023-03-15 09:42:07 +01:00
Bogdan Nagirniak 6b83ff9ed4 BLEN-352: Move to use DNA API in engines
buildbot/vexp-code-patch-coordinator Build done. Details
### Purpose
There is still part of code which use RNA API instead of native DNA API.

### Technical steps
1. Changed to DNA API in: camera.cc/.h, engine files.
2. Added set_env_paths() to utils.
3. Made some renamings.

Pull Request #12
2023-03-10 17:37:55 +01:00
Georgiy Markelov 4697cf25da BLEN-351: Test/fix Hydra addon with different blender scenes
* added check for empty mesh returned by object.to_mesh() function
* added check for world input node
* removed OB_CURVES from list of supported objects

Pull Request #13
2023-03-10 17:16:48 +01:00
George Shakula aababbde86 BLEN-356: Automatically configure PXR_MTLX_STDLIB_SEARCH_PATHS
Pull Request #9
2023-03-06 17:29:07 +01:00
Bogdan Nagirniak 84048b6b0b BLEN-299: Export instances
### Purpose

Export blender instances.

### Technical steps
1. Added MeshData::add_instance(), MeshData::instancer_id and supported functions to MeshData.
2. Implemented override methods in BlenderSceneDelagate: GetInstancerId, GetInstancerPrototypes, GetInstanceIndices, GetInstancerTransform, SampleInstancerTransform, SamplePrimvar.
3. Removed unused instance.h/.cc.
4. Implemented export instances from depsgraph.

### Notes
Updates of instances isn't implemented here, it'll be done in separate task.

Co-authored-by: George Shakula <swrqmail@gmail.com>
Pull Request #11
2023-03-05 09:37:03 +01:00
Bogdan Nagirniak 50cbb727de Fix after merging BLEN-343: Create PreviewEngine.
Pull Request #8
2023-03-03 17:07:22 +02:00
Georgiy Markelov 722b766d20 BLEN-343: Create PreviewEngine
Added preview engine.

changed `pxr::HdSceneDelegate` to `BlenderSceneDelegate`
added `enum Engine::EngineType`
added `Engine::EngineType` to `BlenderSceneDelegate`

Use with https://github.com/bnagirniak/RPRHydraRenderBlenderAddon/pull/8

Pull Request #8
2023-03-03 14:55:19 +01:00
hshakula 85864b39a4 BLEN-326: Pass MaterialX to Hydra via hdMaterialNetwork
Created mtlxHydraAdapter.h\cc. Adjusted MaterialData.

Storm does not work correctly. It'll be fixed in a separate PR because they are unrelated to the mtlx integration.

Pull Request #5
2023-03-02 12:35:39 +01:00
hshakula c7c7d5cfb1 Fix lights rendering with Storm
Apparently, Storm's Hydra implementation is not fully encapsulated in the render delegate. It's partially contained in the Hdx module. Storm requires HdxSimpleLightTask to be present in the graph.

Pull Request #6
2023-03-01 09:17:19 +01:00
Georgiy Markelov c6d61f345b BLEN-341: Border render for FinalEngine
Added correct borders.
Fixed wrong resolution for calculating window ratio.
2023-02-23 12:21:27 +01:00
Georgiy Markelov e5dd65620a BLEN-342: Border render for ViewportEngine
Fixed wrong size of render buffer for viewport render.
2023-02-21 11:48:13 +01:00
Bogdan Nagirniak 7dcae7f50c BLEN-333: Use DNA instead RNA blender API for export/update depsgraph
### Purpose
RNA API supposed to use in python bindings. DNA API is much more flexible and powerful.

### Technical steps
1. Moved depsgraph export and updates to DNA API.
2. Moved update_visibility() implementation to update_collection().
3. Adjusted depsgraph and context pointers.
4. Preparations for export instances: added InstanceData class.
2023-02-21 09:48:22 +01:00
Bogdan Nagirniak 5570d04563 BLEN-345-Refactor export process
### Purpose
Move geometry export, working with HdRenderIndex to ObjectData classes, to be more flexible in future.
Fix area light visibility + normalize intensity.

### Technical steps
1. Refactored ObjectData class: separated code to hierarchic classes IdData, ObjectData, MaterialData, MeshData, LightData.
2. Moved working with HdRenderIndex (Insert/remove/mark_dirty) from BlenderSceneDelegate to \*Data classes.
3. Fixed area light visibility, normalized intensity.

Co-authored-by: Bogdan Nagirniak <bnagirniak@luxoft.com>
Pull Request #2
2023-02-18 08:00:20 +01:00
Georgiy Markelov df4c717f8e BLEN-335: Export environment light
### Purpose
Add initial implementation of export environment light to hydra. Both color and images supported.

### Technical steps

Added caching images.
Added new class `WorldData`.
How it works:
1. find output node for word light;
2. find linked node and read inputs;
3. if `color` linked with image - cache image on disk;

Use with https://github.com/bnagirniak/RPRHydraRenderBlenderAddon/pull/6

Co-authored-by: georgiy.m.markelov@gmail.com <georgiy.m.markelov@gmail.com>
Pull Request #1
2023-02-17 14:46:35 +01:00
Bogdan Nagirniak 17d96423af Merge branch 'main' into hydra-render 2023-02-13 17:51:29 +02:00
Bogdan Nagirniak 09aa07f2ee
BLEN-331: Cleanup code with Camera creation in viewport + change RNA->DNA (#73)
Moved camera export code to CameraData class in camera.cc/.h.
Changed camera export API to DNA.
Made code improvements.
2023-02-13 14:05:21 +02:00
Georgiy Markelov 13e131b519
BLEN-334: Export objects visibility (#72)
Added taking into accout objects visibility.

Co-authored-by: Bogdan Nagirniak <bnagirniak@luxoft.com>
2023-02-09 12:27:01 +02:00
Georgiy Markelov 2217d8a49e
BLEN-296: Export other geometry: metaball, text, nurbs (#71)
Added export of: metaball, text, curves, surface.
Added export of editable mesh.
2023-02-07 19:37:06 +02:00
Bogdan Nagirniak e2d09d1be0
BLEN-325: Refactor project due to suggestments in D16799. Part 2 (#70)
1. Changed syncing logic for objects, now they'll be stored in ObjectData class which holds required data for object like mesh (+meshables), light, camera. Not everything is implemented yet. Export of object data is moved to object.cc.
2. Iterating through depsgraph is still use RNA API.
3. Improved working with objects for future implementations.
4. BlenderSceneDelegate::Populate() funcions splitted to several functions for better support.
2023-02-03 19:57:37 +02:00
Bogdan Nagirniak db10625671 Merge branch 'master' into usdhydra-new 2023-01-30 20:06:36 +02:00
Bogdan Nagirniak 29821ea0f7 Fixed fresh build 2023-01-30 18:41:41 +02:00
Bogdan Nagirniak 20857a4a19
BLEN-305: Refactor project due to suggestments in D16799 (#69)
Refactor c++ part:
- moved project extern_usdhydra to blender/source/render/hydra and renamed to bf_render_hydra
- renamed cmake key: WITH_USDHYDRA -> WITH_HYDRA
- renamed namespace to blender::render::hydra
- moved code from finalEngineGL.cpp/.h to finalEngine.cpp/.h
- moved py api code from engine.cpp to python.cpp
- Renamed *.cpp -> *.cc.

Refactor python part:
- moved python code to release/scripts/modules/hydra.py
- removed storm and addon code, as it became a module.
2023-01-30 17:19:44 +02:00
Georgiy Markelov 1a8674f175
BLEN-308: Storm render delegate with BlenderSceneDelegate for final render (#67)
Implemented Storm render delegate with BlenderSceneDelegate for final render
2023-01-25 15:25:37 +02:00
Bogdan Nagirniak 48ed9a340a
BLEN-321: Fix export to mtlx with dependencies. (#66)
Adjusted code due to changes in materialx.utils.export_to_file().
2023-01-23 17:51:54 +02:00
Bogdan Nagirniak 2bd848b5c5
BLEN-294: Assign MaterialX materials (#65)
Implemented assignment of materials in BlenderSceneDelegate.
Made material conversion to .mtlx using MaterialX plugin by calling python code from c++.
Implemented material update/add/remove in viewport.
Added UVs export.
Made code improvements.
2023-01-23 12:27:07 +02:00
Georgiy Markelov e3baebc96f
BLEN-298: Storm render delegate with BlenderSceneDelegate (#64)
Implemented HdStorm renderer plugin for viewport
2023-01-19 20:53:08 +02:00
Georgiy Markelov 11593c9e74
BLEN-295: Light export (#63)
Added light export to Hydra. Made light to be updated, added/removed in viewport.
Added panel with Light properties.

Co-authored-by: Bogdan Nagirniak <bnagirniak@luxoft.com>
2023-01-12 17:27:42 +02:00
Bogdan Nagirniak dead249d1e Adjusted code in getting mesh vertices 2023-01-10 14:07:27 +02:00
Bogdan Nagirniak 19f9886652 Merge branch 'master' into usdhydra-new 2023-01-10 12:12:16 +02:00
Bogdan Nagirniak cb878d38c1
BLEN-301: Implement updates in viewport render (#62)
Implemented updates for mesh objects: transform, full mesh, add, remove.
2023-01-10 11:39:48 +02:00
Bogdan Nagirniak 1f8e9641bd
BLEN-297: Viewport render with BlenderSceneDelegate (#61)
Make code to use HdxRenderTask and HdxRenderTaskParams.
Implemented viewport render for RPR delegate.
Updated RenderTaskDelegate to support updates.
Splitted engine.h -> engine.h, finalEngine.h, viewportEngine.h
Removed unused code related to USD stages.
2022-12-23 15:59:06 +02:00
Bogdan Nagirniak 96f18bfe2e Fixed build to run HdRPR 2022-12-15 21:51:11 +02:00
Georgiy Markelov 70f4f2af83 BLEN-288: Fix debug build of Blender with usdhydra (#59)
Fix definitons and linked libs for debug build

Co-authored-by: markyandex@gmail.com <markyandex@gmail.com>
2022-12-15 17:36:38 +02:00
Georgiy Markelov 67eafc8ff1 BLEN-287: Create build against vfx-platform-2023 branch from blender libs (#57)
- Fixed registering USD plugins
- Added copying necessary usd/plugin folders

Co-authored-by: markyandex@gmail.com <markyandex@gmail.com>
2022-12-15 17:36:23 +02:00
Bogdan Nagirniak 2faee2473b Merge branch 'master' into usdhydra-new 2022-12-15 17:34:37 +02:00
Bogdan Nagirniak 2b960a1c1e
BLEN-281: Render with BlenderSceneDelegate (#60)
Refactoring render process:
- Removed UsdImagingLite, moved render code into Engines directly.
- Simplifying rendering process.

Added sceneDelegate/scene.h(.cpp).

Fixed bug BLEN-293: Fix normals in BlenderSceneDelegate.
2022-12-15 11:08:47 +02:00
Bogdan Nagirniak b0220cf008
BLEN-279: Create initial BlenderSceneDelegate. BLEN-280: Implement syncing of mesh, light and camera (#58)
Added initial code for Blender scene delegate.
Made UsdImagingLite to use BlenderSceneDelegate.
Basic implementation providing mesh data in BlenderSceneDelegate.
2022-12-08 17:12:15 +02:00
Bogdan Nagirniak c6e98e7fd5
BLEN-266: Create new HdRPR USDHydra render addon (#56)
Added more properties to Storm engine, renamed some parts.
Updated register_plugins_func().
Fixed showing some panels.
2022-11-24 23:55:16 +02:00
Bogdan Nagirniak ad4d536411
BLEN-276: Refactor/cleanup code: split Engine classes into several files (#55)
Refactor:
- Moved code from camera.cpp, view_settings.cpp to viewportEngine.cpp
- Moved related code to finalEngine.cpp and viewportEngine.cpp
- Removed stage.cpp/h, camera.cpp/h, view_settings.cpp/h.

Removed unused includes.
Removed unused functions.
Added stage_export_to_str_func() to engine.cpp.
2022-11-18 15:35:28 +02:00
Bogdan Nagirniak 6107598d23
BLEN-275: Adjust c++ code (#54)
Renamed session.h/cpp -> engine.h/cpp.
Created classes Engine, FinalEngine, ViewportEngine. Moved code from BlenderSession to Engine classes.
Simplified python and c++ code.
2022-11-18 11:02:14 +02:00
Bogdan Nagirniak 5b0a09b372 Merge branch 'master' into usdhydra-new 2022-11-15 17:40:30 +02:00
Bogdan Nagirniak e011e2a842
BLEN-263: Python API for new render delegates with HdStorm render engine (#53)
Simplified HydraRenderEngine.
Added storm/properties.py, storm/ui.py. Fixed/cleanuped python code.
Made small adjustments of c++ code.
2022-11-15 15:04:26 +02:00
Bogdan Nagirniak 16bb823b36
BLEN-262: Initial implementation (#52)
Added basic code
Updated addon structure
Fixing libs and build
2022-11-13 15:58:41 +02:00