Page 1 of 1

Reducere Drawcalls i Unity

Posted: 03 Aug 2015, 10:16
by Jesper Kondrup
Hey, vi har en lystavle, hvor vi gerne vil kontrollere hvert enkelt lys, så vi kan lave diverse effekter og skrive diverse ting (som på billedet).
Ved i om man kan batche drawcalls på en eller anden måde? Eller må man bare leve med, at hvert lys er et drawcall.

Vi bruger et plane til hvert lys (400 lys) og de bruger alle sammen det samme materiale (et unlit materiale med en 'blob' texture).

Image

Re: Reducere Drawcalls i Unity

Posted: 03 Aug 2015, 10:42
by Jesper Kondrup
Vi fandt vist selv ud af det, ved at bruge .SharedMaterial -nu batcher den i hvert fald noget :)

http://docs.unity3d.com/Manual/DrawCallBatching.html

Re: Reducere Drawcalls i Unity

Posted: 03 Aug 2015, 21:09
by ThomasLund
Hvilken platform? Prøv at experimenter (på PC) med deferred og forward rendering paths.

Ellers hver gang man arbejder direkte med et materiale, så laves en kopi af materialet (f.eks. at justere alpha). Og for hver kopi kommer der draw calls

Re: Reducere Drawcalls i Unity

Posted: 04 Aug 2015, 07:47
by Jesper Kondrup
Hey Thomas, det er på PC.

Er det ikke kun en fordel i forhold til antal real time lys, om man skal bruge forward eller deferred rendering? Vi bruger ikke real time lys til lystavlen, men kun et materiale med en glow texture.
Men vi kan se at .SharedMaterial har fixet problemet -hver gang vi tænder for et plane på tavlen, så tæller den op under Batched.