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
DOTS minimal picking support (Graphics part) #6071
Conversation
# Conflicts: # com.unity.render-pipelines.core/ShaderLibrary/UnityInstancing.hlsl # com.unity.render-pipelines.high-definition/Editor/Material/Decal/ShaderGraph/DecalSubTarget.cs # com.unity.render-pipelines.high-definition/Editor/Material/ShaderGraph/HDShaderPasses.cs # com.unity.render-pipelines.high-definition/Editor/Material/ShaderGraph/HDTarget.cs # com.unity.render-pipelines.universal/ShaderLibrary/UniversalDOTSInstancing.hlsl # com.unity.shadergraph/Editor/Data/Graphs/ColorShaderProperty.cs # com.unity.shadergraph/Editor/Data/Nodes/MeshDeformation/LinearBlendSkinningNode.cs # com.unity.shadergraph/Editor/Generation/Processors/Generator.cs # com.unity.shadergraph/Editor/Importers/ShaderGraphImporter.cs
…nologies/Graphics into hybrid/BRGTestProject
…nologies/Graphics into hybrid/BRGTestProject
… error fixes. This commit doesn't compile This reverts commit 33124a1.
…t to SRP 11/12/master)
com.unity.render-pipelines.high-definition/Editor/Material/BRGPicking.hlsl
Outdated
Show resolved
Hide resolved
com.unity.render-pipelines.high-definition/Editor/Material/BRGPicking.hlsl
Outdated
Show resolved
Hide resolved
com.unity.render-pipelines.high-definition/Editor/Material/BRGPickingFallback.shader
Outdated
Show resolved
Hide resolved
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.
Hey, so for HDRP there is something wrong, or maybe I do'nt understand the PR.
The current code don't work with vertex deformation or tessellation in SG or depth offset.
And overall don't work with SG.
I am not sure to understand why you need to add this file BRGPicking.hlsl with vert and frag definition.
My understanding is what you really want is simply to reuse the current scene picking pass we have declare everywhere, and simply adjust a bit the code with #ifdef DOTS_INSTANCING
to call this specific function LoadObjectToWorldMatrixBRGPicking();
this function is the main change from what I get.
Let's setup a call or a chat will be easier to see how to solve that (or if I haven't understand the purpose)
ok I should have read the description, but same problem is true for vertex deformation. Let's talk can be easily fixed. |
…G_ON now. Also removed useless includes
01760a4
to
942d034
Compare
# Conflicts: # com.unity.render-pipelines.high-definition/CHANGELOG.md
# Conflicts: # TestProjects/HDRP_DXR_Tests/Assets/Scenes/112_Reflection_AlternativeSGNodes/CheckerBoardSG.shadergraph # TestProjects/HDRP_DXR_Tests/Assets/Scenes/112_Reflection_AlternativeSGNodes/CheckerBoardSG.shadergraph.meta # TestProjects/HDRP_DXR_Tests/Assets/Scenes/112_Reflection_AlternativeSGNodes/ElipseSG.shadergraph # TestProjects/HDRP_DXR_Tests/Assets/Scenes/112_Reflection_AlternativeSGNodes/ElipseSG.shadergraph.meta # TestProjects/HDRP_DXR_Tests/Assets/Scenes/112_Reflection_AlternativeSGNodes/M_Mirror.mat # TestProjects/HDRP_DXR_Tests/Assets/Scenes/112_Reflection_AlternativeSGNodes/M_Mirror.mat.meta # TestProjects/HDRP_DXR_Tests/Assets/Scenes/112_Reflection_AlternativeSGNodes/PolygonSG.shadergraph # TestProjects/HDRP_DXR_Tests/Assets/Scenes/112_Reflection_AlternativeSGNodes/PolygonSG.shadergraph.meta # TestProjects/HDRP_DXR_Tests/Assets/Scenes/112_Reflection_AlternativeSGNodes/RectangleSG.shadergraph # TestProjects/HDRP_DXR_Tests/Assets/Scenes/112_Reflection_AlternativeSGNodes/RectangleSG.shadergraph.meta # TestProjects/HDRP_DXR_Tests/Assets/Scenes/5013_PathTracing_ShadowFlags.unity # TestProjects/HDRP_DXR_Tests/Assets/Scenes/5013_PathTracing_ShadowFlags.unity.meta # TestProjects/HDRP_DXR_Tests/Assets/Scenes/712_DirectionalShadow_Matte/M_Mirror.mat.meta # TestProjects/HDRP_DXR_Tests/Assets/Scenes/713_PointShadow_Matte/M_Transparent.mat # TestProjects/HDRP_DXR_Tests/Assets/Scenes/713_PointShadow_Matte/M_Transparent.mat.meta # TestProjects/HDRP_DXR_Tests/Assets/Scenes/714_AreaShadow_Matte.unity # TestProjects/HDRP_DXR_Tests/Assets/Scenes/714_AreaShadow_Matte.unity.meta # TestProjects/HDRP_DXR_Tests/Assets/Scenes/ShadowData/Shader Graphs_SG_ShadowMatteNone.mat # TestProjects/HDRP_DXR_Tests/Assets/Scenes/ShadowData/Shader Graphs_SG_ShadowMatteNone.mat.meta # TestProjects/HDRP_HybridTests/Assets/SampleScenes/BRGGameObjects/BRGGameObjects.unity # TestProjects/HDRP_HybridTests/Assets/SampleScenes/BRGGameObjects/BRGGameObjects.unity.meta # TestProjects/HDRP_HybridTests/Assets/SampleScenes/BRGGameObjects/Lit.mat # TestProjects/HDRP_HybridTests/Assets/SampleScenes/BRGGameObjects/Lit.mat.meta # TestProjects/HDRP_HybridTests/Assets/SampleScenes/BRGGameObjects/LitTessellation.mat # TestProjects/HDRP_HybridTests/Assets/SampleScenes/BRGGameObjects/LitTessellation.mat.meta # TestProjects/HDRP_HybridTests/Assets/SampleScenes/BRGGameObjects/RenderBRG.cs # TestProjects/HDRP_HybridTests/Assets/SampleScenes/BRGGameObjects/Unlit.mat # TestProjects/HDRP_HybridTests/Assets/SampleScenes/BRGGameObjects/Unlit.mat.meta # TestProjects/HDRP_HybridTests/Assets/SampleScenes/BatchRenderGroupRaw/BRGMaterial.mat # TestProjects/HDRP_HybridTests/Assets/SampleScenes/BatchRenderGroupRaw/BRGMaterial.mat.meta # TestProjects/HDRP_HybridTests/Assets/SampleScenes/BatchRenderGroupRaw/BatchRenderGroupRaw.unity.meta # TestProjects/HDRP_HybridTests/Assets/SampleScenes/TestBuiltinProperties.unity.meta # TestProjects/HDRP_HybridTests/Assets/SampleScenes/TestBuiltinProperties/SubsceneSHAb.unity.meta # TestProjects/HDRP_HybridTests/Assets/SampleScenes/TestBuiltinProperties/SubsceneSHAg.unity.meta # TestProjects/HDRP_HybridTests/Assets/SampleScenes/TestBuiltinProperties/SubsceneSHAr.unity.meta # TestProjects/HDRP_HybridTests/Assets/SampleScenes/TestDuplicateProperties/DuplicateTestMaterial.mat.meta # TestProjects/HDRP_HybridTests/Assets/SampleScenes/TestHDRPLitProperties/Sky and Fog Settings Profile For Motion Blur.asset.meta # TestProjects/HDRP_HybridTests/Assets/SampleScenes/TestHDRPLitProperties/Sky and Fog Settings Profile.asset.meta # TestProjects/HDRP_HybridTests/Assets/SampleScenes/TestHDRPShaders/LitEmissive.mat # TestProjects/HDRP_HybridTests/Assets/SampleScenes/TestHDRPShaders/LitEmissive.mat.meta # TestProjects/HDRP_HybridTests/Assets/SampleScenes/TestHDRPShaders/LitTessellationEmissive.mat # TestProjects/HDRP_HybridTests/Assets/SampleScenes/TestHybridEntitiesConversion/ReflectingMaterial.mat # TestProjects/HDRP_HybridTests/Assets/SampleScenes/TestShaderGraphOverrides/HDRPLit.mat # TestProjects/HDRP_Tests/Assets/GraphicTests/Common/3DObjects/HumanEyeModelScaled.fbx.meta # TestProjects/HDRP_Tests/Assets/GraphicTests/Scenes/2x_Lighting/2309_Shadow_Mask_Dir_Fade.unity # TestProjects/HDRP_Tests/Assets/GraphicTests/Scenes/2x_Lighting/2309_Shadow_Mask_Dir_Fade/LightingData.asset.meta # TestProjects/HDRP_Tests/Assets/GraphicTests/Scenes/2x_Lighting/2309_Shadow_Mask_Dir_Fade/Lightmap-0_comp_dir.png.meta # TestProjects/HDRP_Tests/Assets/GraphicTests/Scenes/2x_Lighting/2309_Shadow_Mask_Dir_Fade/Lightmap-0_comp_light.exr.meta # TestProjects/HDRP_Tests/Assets/GraphicTests/Scenes/2x_Lighting/2309_Shadow_Mask_Dir_Fade/Lightmap-0_comp_shadowmask.png.meta # TestProjects/HDRP_Tests/Assets/GraphicTests/Scenes/2x_Lighting/2309_Shadow_Mask_Dir_FadeSettings.lighting # TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/LinuxEditor/Vulkan/None/2309_Shadow_Mask_Dir_Fade.png.meta # TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/2309_Shadow_Mask_Dir_Fade.png.meta # TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/2309_Shadow_Mask_Dir_Fade.png.meta # TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D12/None/2309_Shadow_Mask_Dir_Fade.png.meta # TestProjects/UniversalHybridTest/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/BRGGameObjects.png.meta # TestProjects/UniversalHybridTest/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/BatchRenderGroupRaw.png.meta # TestProjects/UniversalHybridTest/Assets/ReferenceImages/Linear/Android/Vulkan/None/BRGGameObjects.png.meta # TestProjects/UniversalHybridTest/Assets/ReferenceImages/Linear/Android/Vulkan/None/BatchRenderGroupRaw.png.meta # TestProjects/UniversalHybridTest/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/TestBuiltinProperties.png.meta # TestProjects/UniversalHybridTest/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/TestDisabledEntities.png.meta # TestProjects/UniversalHybridTest/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/TestDuplicateProperties.png.meta # TestProjects/UniversalHybridTest/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/TestFarAwayFromOrigin.png.meta # TestProjects/UniversalHybridTest/Assets/SampleScenes/BRGGameObjects/BRGGameObjects.unity.meta # TestProjects/UniversalHybridTest/Assets/SampleScenes/BRGGameObjects/Lit.mat # TestProjects/UniversalHybridTest/Assets/SampleScenes/BRGGameObjects/RenderBRG.cs # TestProjects/UniversalHybridTest/Assets/SampleScenes/BRGGameObjects/TestMaterial1.mat # TestProjects/UniversalHybridTest/Assets/SampleScenes/BRGGameObjects/TestMaterial2.mat # TestProjects/UniversalHybridTest/Assets/SampleScenes/BRGGameObjects/Unlit.mat # TestProjects/UniversalHybridTest/Assets/SampleScenes/BatchRenderGroupRaw/BatchRenderGroupRaw.unity.meta # TestProjects/UniversalHybridTest/Assets/SampleScenes/TestBuiltinProperties/Default URP Material.mat # TestProjects/UniversalHybridTest/Assets/SampleScenes/TestLayerParams/Plane.mat # TestProjects/VisualEffectGraph_HDRP/Assets/AllTests/VFXTests/GraphicsTests/38_SortingKeys/38_LargeSystem.vfx.meta # TestProjects/VisualEffectGraph_HDRP/Assets/AllTests/VFXTests/GraphicsTests/38_SortingKeys/38_SortingKeys.unity # TestProjects/VisualEffectGraph_HDRP/Assets/ReferenceImages/Linear/LinuxEditor/Vulkan/None/38_SortingKeys.png.meta # com.unity.render-pipelines.high-definition/CHANGELOG.md # com.unity.testing.visualeffectgraph/Scenes/019_CustomSimulate.unity
TestProjects/HDRP_HybridTests/Assets/SampleScenes/BRGGameObjects/RenderBRG.cs
Outdated
Show resolved
Hide resolved
TestProjects/UniversalHybridTest/Assets/SampleScenes/BRGGameObjects/RenderBRG.cs
Outdated
Show resolved
Hide resolved
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.
Approved with some comments.
Purpose of this PR
This PR implements URP/HDRP minimal picking support for DOTS. This is intended to be on parity with Hybrid Renderer V2 picking.
The basic idea here is to define a new shader for URP/HDRP and use that only when rendering the BatchRendererGroup objects for the picking (renders object instanceIDs in a tiny 4x4 texture, then read it back from CPU).
Of course, it does not fully work with any kind of vertex deformation (including tessellation) and decals.
To put it simply: Picking "hitbox" = Mesh transformed by LocalToWorld matrix
This PR does not have any impact on the current GameObject picking.
Filtered diff for URP/HDRP reviewers here
Testing status
Note to reviewers
There are some changes included in the ShaderGraph and VFX Graph packages, but they are not mine. Those changes are the result of an auto-upgrade performed when opening the HybridURP/HDRP test projects with recent trunk.