microsoft / microsoft/MixedReality-GraphicsTools-Unity

Investigate MeshRenderer RectTransform layout that supports traditional batching

Aperta
#24 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

enhancement
Lingua principale
C#
Stelle
209
Fork
49
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

Describe the problem

Investigate if it is possible to write a meshrender/shader pair that would play nice with UnityUI rect transforms. This would allow for rect transform layouts and mesh renderer batching.

Describe the solution you'd like

From @Zee2 -

Is there any way to create a meshrenderer shader that will make a quad/etc obey RectTransforms in the way that a Graphic would?

If we could use RT layout, but traditional meshrenderer-like batching, that would be the ideal.

I feel like for 90% of usecases, we don't care at all about the actual Canvas-y features, we really just care about RT layout

Describe alternatives you've considered

Explore other ways to batch 3D UI efficiently.

Additional context

As Unity UI operates entirely in the transparent queue, any quads that have unbatchable quads overlaid atop them must be drawn before the unbatchable quads, and therefore cannot be batched with other quads placed atop the unbatchable quads.

Consider a case of three quads, A, B, and C. Assume all three quads overlap one another, and also assume quads A and C use the same material while quad B uses a separate material. Quad B therefore cannot be batched with A or C.

If the order in the hierarchy (from top to bottom) is A, B, C then A and C cannot be batched, because B must be drawn atop A and beneath C. However, if B is placed before or after the batchable quads, then the batchable quads can actually be batched – B needs only to be drawn before or after the batched quads and does not interpose them.

Source: https://learn.unity.com/tutorial/optimizing-unity-ui

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia dalla guida collegata sul batching della UI di Unity e verifica se una coppia MeshRenderer/shader può rispettare i layout di RectTransform mantenendo al contempo il batching tradizionale. Il lavoro è completo quando vengono documentati la fattibilità e, se possibile, l’approccio; in caso contrario, documenta alternative praticabili per eseguire in modo efficiente il batching della UI 3D.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
unity
Ambito
computer-graphics, game-dev
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.