Feature DynamicBufferMesh with DrawArgsOption (Indirect Drawing) #682
+1,452
−65
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PR Details
This enables indirect drawing
sponsored by mbox
This PR extends the DynamicBufferMesh node with the option to use a DrawArgsBuffer. This enables a dynamic mesh with a variable DrawCount, which is fully controlled by a ComputeShader.
This is especially important to make the complete compute pipeline of VL.Fuse indirect. Without the need for ugly ReadBacks.
All changes should not break any existing patches, as I have only added features.
HelpPatch
VL.Stride\help\Rendering\HowTo Dynamic Buffer Mesh with Indirect Draw Option.vl
Description
Changes in the source code
I have created two new classes in VL.Stride.Runtime.
Draw(RenderDrawContext context, RenderView renderView, RenderViewStage renderViewStage, int startIndex, int endIndex)
a little differently than in Stride, otherwise it is a copy of StrideChanges in VL
Customized nodes:
Added Nodes:
Motivation and Context
Make VL.Fuse and VL.Stride more awsome
Types of changes
Checklist