-
Notifications
You must be signed in to change notification settings - Fork 59
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Reject other renderer Material Outputs (#615) #616
Reject other renderer Material Outputs (#615) #616
Conversation
…riesAndSDKs#299) PURPOSE Add Samples option for Outline Rendering Setup for Samples default value of 16 Render Properties -> Sampling -> Outline Samples EFFECT OF CHANGE Added Samples option for Outline Rendering Samples option of Outline Rendering is separated from render max samples option By default value it is 16 Render Properties -> Sampling -> Outline Samples
PURPOSE Add support for Voronoi texture node EFFECT OF CHANGE Added support for Voronoi texture node
…Open-LibrariesAndSDKs#305) Expected the viewport renderer to render the scene But blender is complaining that the mesh object emitter hasn't been evaluated (error comes from rna_ParticleSystem_uv_on_emitter). Possible solutions would be to evaluate hair instances last or do some try catch around this. EFFECT OF CHANGE Viewport renderer handles the scene
…DKs#312) PURPOSE Add Volume Scatter shader node support. EFFECT OF CHANGE Added support for Volume Scatter node. Shader Editor -> Add -> Shader -> Volume Scatter
…riesAndSDKs#312)" This reverts commit 2dfb650.
…sAndSDKs/develop Merge 3.2
…DKs#316) PURPOSE Add Volume Scatter shader node support. EFFECT OF CHANGE Added support for Volume Scatter node. Shader Editor -> Add -> Shader -> Volume Scatter
…ositor (GPUOpen-LibrariesAndSDKs#314) PURPOSE Need to add Outline render output for Compositor that will be useful for users and will add more options for render results. EFFECT OF CHANGE Outline pass appears in RenderLayers node when Full quality render option and Outline Rendering are enabled.
…dSDKs#319) PURPOSE Fix wrong destination path for datafiles EFFECT OF CHANGE Fix path issue causing material previews not working.
PURPOSE Core 2.02.5.beta is available. EFFECT OF CHANGE Updated Core to 2.02.5.beta.
…t render. (GPUOpen-LibrariesAndSDKs#325) Activate shadow catcher without error. Fix an issue get KeyError 10 with shadow catcher activation. when Viewport render starts with activated reflection catcher. EFFECT OF CHANGE Fixed an issue get KeyError 10 with shadow catcher activation.
…t. (GPUOpen-LibrariesAndSDKs#324) PURPOSE Load image sequence in ShaderNodeTexImage and get correct result in Render and Viewport. Investigate work of Cyclic and Auto Refresh options, and make them work as expected. EFFECT OF CHANGE Now Viewport and Render works as expected, compare to blender Image texture node in SEQUENCE mode. Added support for Cyclic and Auto Refresh options in Image texture node. Added support for also only numeric Image filenames for Image texture node .
…SDKs#588) PURPOSE User request GPUOpen-LibrariesAndSDKs#587 Add support for "Curves Info" node. https://amdrender.atlassian.net/browse/RPRBLND-2240 EFFECT OF CHANGE Added Curves Info node. Currently, only Intercept output is supported. Final render quality only. Added Curves Info node. Currently, only Random output is supported. Final render quality only.
…GPUOpen-LibrariesAndSDKs#589) URPOSE Update toon shader to switch between 1/3/5 color modes. EFFECT OF CHANGE You can now choose between three out of five color ramp modes by selecting the Ramp Mode dropdown list.
…esAndSDKs#587) PURPOSE User request GPUOpen-LibrariesAndSDKs#576 Update to complete support for curves. Add radius and UV support. EFFECT OF CHANGE Now user can set the radius using the node "Set Curve Radius". UVs now supported via the automatically generated attribute surface_uv_coordinate.
…Ks#596) PURPOSE Add support for FloatCurve node. EFFECT OF CHANGE Added support for FLoat Curve node.
GPUOpen-LibrariesAndSDKs#594) PURPOSE Viewport render got an error if borders are out of bounds. In some cases render resolution width or height is zero. EFFECT OF CHANGE Fixed error if the render border is located out of the screen.
…pen-LibrariesAndSDKs#592) PURPOSE Currently Objects which share a data mesh, we make a new mesh each time, this could be slow to export. EFFECT OF CHANGE With each mesh we check if it's unmodified and if the mesh is already exported to reuse and instance. Co-authored-by: Vasyl Pidhirskyi
PURPOSE Math node provides an error. EFFECT OF CHANGE Fixed error 0.0 cannot be raised to a negative power. Added support for the math operations: Truncate, Square Root, Inverse Square Root, Sign, Ping Pong.
…pen-LibrariesAndSDKs#599) PURPOSE In general, the issue is related to the new approach of instances sync (GPUOpen-LibrariesAndSDKs#592) The issue is that we create pyrpr.Instance from pyrpr.Instance. It's not correct and causes the errors below: Emission on Grease pencil provides blender crash. AttributeError: 'Instance' object has no attribute 'poly_count' EFFECT OF CHANGE Fixed crash if extruded curve object applied with emission material. Fixed error 'poly_count' after the final render ends.
) * Outline for work to be done. * add space * Separated quality for viewport and final renderer Turned on blender denoiser via nodes isnstead regular. Rename High to Interactive if hybrid pro is diabled. * Now preset is executed in manner of Blender using bpy.ops.script.execute_preset. Presets are located in rprblender/properties/presets. * Fixed device selection. * Made presets separately for FULL2, HIGH, HYBRIDPRO. Added debug log messages if preset is applied. * Removed RPR_RENDER_PT_denoiser pannel from UI. Fixed error if denoiser node is None. * Turned off upscaler and denoiser for NorthStar and Hybrid. Removed upscaler and denoiser UI elements if Viewport Mode and NorthStar or Hybrid * Removed settings denoiser and upscaler duplication for HybridPro. Set default upscaler quality to FSR2_QUALITY_MODE_ULTRA_PERFORMANCE. Removed unused math import. ---------
…ion 2.2.0 at the moment RadeonProRenderSDK provide OCIO 2.1.1 (GPUOpen-LibrariesAndSDKs#600) * RPRBLND-2270: Improve OCIO support, Blender 3.5 upgraded OCIO to version 2.2.0 at the moment RadeonProRenderSDK provide OCIO 2.1.1. Added constants BLENDER_OCIO_VERSION, SDK_OCIO_VERSION. Implemented ocio_config_path, it returns ocio config depending of blender ocio version. Put ocion config version 2.1.1 to rprblender/ocio.It was taken from blender 3.4 Added log messages. * Switched to blender OCIO config. Removed oico folder.
* RPRBLND-2275: instancing issue in RPR. Implemented key function for mesh object. * Use name_full instead of id.
Added missing UI elements: RPR_RENDER_PT_advanced panel for Render Mode Final adapt_viewport_resolution for Viewport Mode Final
…ndSDKs#602) * RPRBLND-2269: Add Open VDB support in Blender 3.5. Implemented support for VDB volumes using pyopenvdb module. It's built in Blender from version 3.5. Added required code to create_grid_sampler_node function. * Removed comments
…PUOpen-LibrariesAndSDKs#608) PURPOSE Regular Hybrid Fix error when changing viewport render quality while viewport rendering AttributeError: module 'pyrpr' has no attribute 'RENDER_QUALITY_FULL2'. Added validation for regular Hybrid plugin registration. Creation of empty context causes error -23 on some low-performance GPUs. (i. e. mx460). NorthStar Added missing UI element "Texture Compression". EFFECT OF CHANGE Fix error when changing viewport render quality while viewport rendering (regression). Added missing UI element "Texture Compression" (regression).
@@ -36,7 +36,7 @@ def get_material_output_node(material): | |||
return None | |||
|
|||
return next((node for node in material.node_tree.nodes | |||
if node.bl_idname == 'ShaderNodeOutputMaterial' and node.is_active_output), | |||
if node.bl_idname == 'ShaderNodeOutputMaterial' and node.target == 'ALL'), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thinking about this, we should also accept Cycles target?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In an instance where both exist, prioritizing all should always be first, unless there's a way to add prorender to the list of rendertargets without redefining the output class (so it doesn't ONLY show prorender in an output node placed while the renderer is set as prorender).
In any other case though really, it's dangerous to go with a renderer specific to any other renderer. If someone specifically specifies cycles, why should prorender use it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There is not a way to add ProRender to the list of outputs.
Generally speaking we try to translate eevee / cycles nodegraphs into something RPR can use. The case that we're really talking about here if:
- The user does not have an "All" output node.
- The user has two output nodes, one for Cycles and one for EEVEE.
In that case which should we choose to use? There's no obvious correct answer. So I'm ok with just the solution you have here.
Of course you could do something like:
Look for the first 'ALL" output node, if none found choose the first "Cycles" output, if not then whichever EEVEE.
Willing to hear opinions on this though.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
aha! I get what you mean now.
Perhaps when a non preferred output is taken it can warn a user in the log?
Just thinking about the case where I (and a handful of other people I know) run two sets of nodes per material for previews and renders, it would be nice to know if the preferred output was not available.
PURPOSE
This PR makes RPR reject material output nodes from other renderers. (see #615 )
EFFECT OF CHANGE
RPR will no longer grab ShaderNodeOutputMaterial nodes with targets set to other rendering engines. This enables users to have materials with different sets of node paths for different renderers.
TECHNICAL STEPS
The conditions for locating a material output node were changed from;
node.bl_idname == 'ShaderNodeOutputMaterial' and node.is_active_output
to
node.bl_idname == 'ShaderNodeOutputMaterial' and node.target == 'ALL'
so that material outputs for other renderers are ignored.
NOTES FOR REVIEWERS
I am not sure why "is_active_output" was originally on here, but from my testing, it seems irrelevant, and messes up the condition of the target renderer, as if nodes get reordered from user interaction, a node can be "inactive" but still be completely valid, and the proper path.
In my testing I have yet to come across a scenario where this breaks anything.