microsoft / MixedReality-GraphicsTools-Unity

Graphics tools and components for developing Mixed Reality applications in Unity.
MIT License
182 stars 42 forks source link

More modularity in the Uber shader #203

Open jayliu50 opened 10 months ago

jayliu50 commented 10 months ago

Describe the problem

I'm trying to implement a custom shader (adds elevation contour lines) that also leverages the clipping primitive, and it seems harder than it should be. The Uber shader is a monolith of code.

Describe the solution you'd like

Consider breaking up the hlsl into modules. Perhaps even modules could be leveraged by custom functions in shader graph. (That use out parameters.)

I should be able to include a module or subgraph that will make my shader clip the same way as the Uber shader (for example).

Describe alternatives you've considered

Better support for shader graph in general. Either subgraphs and custom functions or both. #34

Additional context

Caveat is I am rather new to hlsl and unfamiliar with best practices. If performance suffers from breaking out the code, I'd be curious to know exactly how much.

Cameron-Micka commented 10 months ago

This is a great idea @jayliu50 - and very similar to #34 as you point out. I'm not sure when the team will have time to do this, but it's a direction I would like to take Graphics Tools now that URP is becoming more stablished.

For utilizing clipping primitives, you might be in luck that the clipping primitive methods are somewhat modular. You can find them here and there are some docs on advanced usage.