Page 1 of 1

Unity 5, Transparency Drawing Order

Posted: 23 Oct 2015, 13:06
by ZeroHero
Hej Udviklere,

Hurtigt sporgsmaal der sikkert er et trivielt spoergsmaal for erfarne Unity udviklere.
Jeg er ved at kigge lidt paa Unity 5. Pt. har jeg et problem med gennemsigtigt overflader.
Jeg har skrevet en simpel shader som tager en tekstur og en farve med alfa vaerdi.
I mit kode vil jeg saa graduelt andre alfa vaerdien og dermed vil min 3D model blive gennemsigtigt.
Dette virker meget fint i Unity Editor'en men naar jeg eksekvere projektet ser det ud til at min gennemsigtige 3D model bliver renderet foerst og jeg kan dermed ikke se bagved liggende 3D modeller. Er der nogen der ved hvorfor det virker fint i Editor'en men ikke naar jeg afspiller min scene og hvad jeg skal goere for at faa det til at virke?

Jeg har soegt efter et svar paa nettet men har endnu ikke fundet et resultat.
Det taetteste jeg har faaet er ved at aendre kameraets transparencySortMode til TransparencySortMode.Orthographic. Det faar ganske vist noget af det bagved liggende 3D modeller til at blive renderet korrekt gennem min 3D model men naar jeg flytter kameraet aendre dette sig samt der er 3D modeller der aldrig bliver vist bagved min gennemsigtige 3D model. Det burde vaere lige til da mit gennemsigte 3D model altid vil vaere taettest paa kameraet og skal derfor altid renderes til sidst.

Nogle der kan hjaelpe i paa rette vej?

Re: Unity 5, Transparency Drawing Order

Posted: 23 Oct 2015, 21:48
by Niels Jørgensen
Hm, er ikke ekspert men det lyder som om din shader kører i det forkerte pass og bliver renderet sammen med solids - Prøv evt. med

Tags { "Queue" = "Transparent" }

i din shader (taget fra den shader jeg lavede til SOAKs vand som også er gennemsigtigt - Unity's shader system stinker rimelig alvorligt, så det var en del trial and error).

At det virker i editoren er nok lidt tilfældigt (eller måske renderer Unity back to front i editoren for at kunne vise selection box o.a., dunno).

Re: Unity 5, Transparency Drawing Order

Posted: 23 Oct 2015, 22:38
by jonaz.dk
Kan ikke hjælpe dig på kodesiden. Men måske er der nogle hints hvis du kigger i Unity 5s standard shader. Der er lidt forskellige blend typer. Opaque, fade, transparent,cutout.

Nu ved jeg ikke lige hvordan dine assets er bygget. Men du kan hurtigt komme i problemer med standard alpha blending hvis der er overdraw i meshet. Så skal det splittes op i submeshes som regel.

Ellers skal du måske have fat i componenten Renderer/Sprite Renderer hvis du kan nøjes med planes. De kan sorteres i rendering layers og alphaværdien på color.

Evt. Sprite shaderen til 3d modeller uden overdraw kan også være behælpelig.
Eller Particles/Alpha blended. (color)

Screen shot?

Re: Unity 5, Transparency Drawing Order

Posted: 26 Oct 2015, 12:10
by ZeroHero
Tak skal I havde! Jeg vil kigge paa det igen idag.