Storm Hydra render addon #104597

Merged
Brecht Van Lommel merged 22 commits from BogdanNagirniak/blender-addons:storm-hydra-addon into main 2023-08-04 17:02:11 +02:00
Contributor

Purpose

As part of Hydra Render engine we are providing Hydra Storm render addon.
This is also could be an example of how to create Hydra render addon.

Technical steps

  1. Created class StormHydraRenderEngine(bpy_hydra.HydraRenderEngine).
  2. Added engine's properties and corresponded settings panel.
  3. Added and hided some existing UI panels.

Notes

New addon is in TESTING status.
Currently not working for Final render (returns empty image) due to OpenGL bugs.

Render screenshots

Screenshot 2023-05-10 115125.png
Screenshot 2023-05-10 115348.png

### Purpose As part of [Hydra Render engine](https://projects.blender.org/blender/blender/pulls/104712) we are providing Hydra Storm render addon. This is also could be an example of how to create Hydra render addon. ### Technical steps 1. Created `class StormHydraRenderEngine(bpy_hydra.HydraRenderEngine)`. 2. Added engine's properties and corresponded settings panel. 3. Added and hided some existing UI panels. ### Notes New addon is in TESTING status. Currently not working for Final render (returns empty image) due to OpenGL bugs. ### Render screenshots ![Screenshot 2023-05-10 115125.png](/attachments/9f233c1c-2f48-4202-9a1e-f86bb5f9c9d6) ![Screenshot 2023-05-10 115348.png](/attachments/25b0bbd2-b413-4b7f-a53a-be98ef6d9f22)
Bogdan Nagirniak added 6 commits 2023-05-10 10:54:32 +02:00
Bogdan Nagirniak requested review from Brecht Van Lommel 2023-05-10 10:54:58 +02:00
Bogdan Nagirniak requested review from Brian Savery (AMD) 2023-05-10 10:54:59 +02:00
Brecht Van Lommel requested changes 2023-05-10 20:51:46 +02:00
@ -0,0 +5,4 @@
bl_info = {
"name": "Hydra render engine: Storm",

Hydra render engine: Storm -> Hydra Storm render engine

Hydra render engine: Storm -> Hydra Storm render engine
brecht marked this conversation as resolved
@ -0,0 +9,4 @@
"author": "AMD",
"version": (1, 0, 0),
"blender": (3, 5, 0),
"location": "Info header > Render engine menu",

This is outdated, the render engine choice hasn't been there since 2.8.

This is outdated, the render engine choice hasn't been there since 2.8.
brecht marked this conversation as resolved
@ -0,0 +10,4 @@
"version": (1, 0, 0),
"blender": (3, 5, 0),
"location": "Info header > Render engine menu",
"description": "Storm GL delegate for Hydra render engine",

"GL" is not accurate for Metal and Vulkan.

I'm also not sure "Storm GL delegate for Hydra render engine" means.

"GL" is not accurate for Metal and Vulkan. I'm also not sure "Storm GL delegate for Hydra render engine" means.
brecht marked this conversation as resolved
@ -0,0 +16,4 @@
"community": "",
"downloads": "",
"main_web": "",
"support": 'TESTING',

TESTING -> OFFICIAL

TESTING -> OFFICIAL
brecht marked this conversation as resolved
@ -0,0 +11,4 @@
class StormHydraRenderEngine(bpy_hydra.HydraRenderEngine):
bl_idname = 'StormHydraRenderEngine'
bl_label = "Hydra: Storm"

Hydra: Storm -> Hydra Storm

Hydra: Storm -> Hydra Storm
brecht marked this conversation as resolved
@ -0,0 +12,4 @@
class StormHydraRenderEngine(bpy_hydra.HydraRenderEngine):
bl_idname = 'StormHydraRenderEngine'
bl_label = "Hydra: Storm"
bl_info = "Hydra Storm (OpenGL) render delegate"

(OpenGL) is not accurate for Metal and Vulkan

(OpenGL) is not accurate for Metal and Vulkan
brecht marked this conversation as resolved
@ -0,0 +1,22 @@
{

This should already be included with the USD libraries, why is it here again?

This should already be included with the USD libraries, why is it here again?

We think it's better to bundle this folder with addon to be sure everything is needed here. But no problem if you think it's better to move it to blender.shared.

We think it's better to bundle this folder with addon to be sure everything is needed here. But no problem if you think it's better to move it to `blender.shared`.

I would expected it's already in blender.shared?

It at least available to be copied there:
https://svn.blender.org/svnroot/bf-blender/trunk/lib/linux_x86_64_glibc_228/usd/plugin/usd/hdStorm/resources/

I would expected it's already in `blender.shared`? It at least available to be copied there: https://svn.blender.org/svnroot/bf-blender/trunk/lib/linux_x86_64_glibc_228/usd/plugin/usd/hdStorm/resources/

Yes, it was. Should we remove this folder here and add copying to blender.shared?

Yes, it was. Should we remove this folder here and add copying to `blender.shared`?

Yes.

Yes.
brecht marked this conversation as resolved
@ -0,0 +7,4 @@
class Properties(bpy.types.PropertyGroup):
bl_type = None

Don't use bl_ prefix, that is meant for native Blender class members.

Don't use `bl_` prefix, that is meant for native Blender class members.
brecht marked this conversation as resolved
@ -0,0 +36,4 @@
default=1.0,
)
volume_raymarching_step_size_lighting: bpy.props.FloatProperty(
name="Volume Raymarching Step Size",

This is name should not be identical to the one for volume_raymarching_step_size

This is name should not be identical to the one for volume_raymarching_step_size
brecht marked this conversation as resolved
@ -0,0 +47,4 @@
)
max_lights: bpy.props.IntProperty(
name="Max Lights",
description="Maximum number of lights",

What happens when the maximum is reach? Why is the default only 16? This needs a better explanation in the description.

What happens when the maximum is reach? Why is the default only 16? This needs a better explanation in the description.
It comes from source code https://github.com/PixarAnimationStudios/USD/blob/release/pxr/imaging/hdSt/renderDelegate.cpp#L70

Can you figure out what it does so it can be explained in the description for users?

Can you figure out what it does so it can be explained in the description for users?
brecht marked this conversation as resolved
@ -0,0 +20,4 @@
class STORM_HYDRA_RENDER_PT_render_settings(Panel):
"""Final render delegate and settings"""

Does this really apply to final renders only, not the viewport?

Does this really apply to final renders only, not the viewport?

I will add addition panel for viewport.

I will add addition panel for viewport.
brecht marked this conversation as resolved
@ -0,0 +143,4 @@
'WORLD_PT_mist',
'WORLD_PT_preview',
'WORLD_PT_world',
'NODE_DATA_PT_light',

The list in intern/cycles/blender/addon/ui.py is much shorter, and many of these panels no longer exist. So this seems outdated?

The list in `intern/cycles/blender/addon/ui.py` is much shorter, and many of these panels no longer exist. So this seems outdated?

We also hide some extra panels.

We also hide some extra panels.
brecht marked this conversation as resolved
Bogdan Nagirniak added 1 commit 2023-05-19 20:29:34 +02:00
9dd076705e Create possibility to provide render settings via BlenderSceneDelegate.
### Purpose
Required changes for BogdanNagirniak/blender#41

### Technical steps
Adjusted code: renamed function.

Pull Request BogdanNagirniak/blender-addons#12
Brecht Van Lommel added 1 commit 2023-07-13 10:27:57 +02:00
0020a93405 Rename Hydra Storm idname for consistency
Other render engines in Blender also uses caps and underscores.

Pull Request #19
Brecht Van Lommel added 1 commit 2023-07-13 16:47:34 +02:00
Bogdan Nagirniak added 1 commit 2023-07-21 11:28:55 +02:00
e8ebd262de PreviewEngine for Storm delegate
### Purpose
Make available Strom delegate to utilize for material preview.

### Technical steps
- Set attribute bl_use_preview to True.

Pull Request BogdanNagirniak/blender-addons#20
Bogdan Nagirniak added 1 commit 2023-07-27 13:37:00 +02:00
Brecht Van Lommel added 1 commit 2023-07-27 15:06:15 +02:00
Brecht Van Lommel added 3 commits 2023-08-03 15:41:16 +02:00
Brecht Van Lommel changed title from WIP: Storm Hydra render addon to Storm Hydra render addon 2023-08-03 15:42:29 +02:00
Brecht Van Lommel approved these changes 2023-08-03 15:42:38 +02:00
Brecht Van Lommel merged commit 5ec7ca8f12 into main 2023-08-04 17:02:11 +02:00
Brecht Van Lommel deleted branch storm-hydra-addon 2023-08-04 17:02:12 +02:00
Sign in to join this conversation.
No Milestone
No project
No Assignees
3 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender-addons#104597
No description provided.