Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
McMagic
Založen: 06. 08. 2012 Příspěvky: 615
|
Zaslal: 20. únor 2015, 11:02:51 Předmět: Unity - mlha na objekty |
|
|
Mám menší problém - nebo spíše než to začnu řešit a hledat, tak se raději zeptám zde;)
------------------------
Objasním prvně o co jde:
V mém projektu jsem negeneroval flóru v dálce (klasická terrain dělá brutální dmg na výkon - udržet 600k je nemožné no).
Takže jsem našel jiné řešení a pomocí pouze 16ti objektů generuji fake flóru ale na místech kde se pak generuje reálná atd. - vše se řídí shaderem.)
Výsledek:
Problém je, že na takovýto objekt nereaguje Unity mlha.
Tech nastavení projektu:
Barevná hloubka: Lineární
Camera render: Forward
DX11
Unity 5
Shader co to řídí je je #pragma vertex vert tj pracuje se s vertexy
Mám nastaveno
Ligting ON
Fog Mode Exp
Plánuji to řešit tak, že budu lerpovat fog color na ty stromy vs distance od camery.
Ted tak resim zabarveni dle nasviceni sveta (aby v noci byli tmave atd.)
Neexistuje nejake jednodusi unity reseni?
Neprehled jsem nekde neco nejaky blby tag ve shaderu atd...
Textury co jsou pouzity na ty stromy maji bypass sRGB (kvuli linearni hloubce)
Ve shaderu se barevnost prepocitava na linear (aby to sedelo se svetem)
pow(rgb,2.2)
Objekty co reprezentuji floru jsou klasicke realtime mesh ktere maji vertexy pouze na mistech kde je flora a pak aplikovan vyrez z atlas textury atd.
Díky za help;) _________________
http://www.mcmagic-productions.com/ |
|
Návrat nahoru |
|
|
McMagic
Založen: 06. 08. 2012 Příspěvky: 615
|
Zaslal: 20. únor 2015, 15:57:01 Předmět: |
|
|
Tak +- vyřešeno.
To co je doporučeno přímo od Unity:
For vertex/fragment shaders, if you want fog you have to do this:
Add #pragma multi_compile_fog
Add UNITY_FOG_COORDS(n) to your vertex-to-fragment struct
Add UNITY_TRANSFER_FOG(o,o.vertex); to your vertex shader. "o" is output struct name, and "o.vertex" is position in clip space.
Add UNITY_APPLY_FOG(i.fogCoord, col); to end of your pixel shader. "i" is input struct name, and "col" is the color computed in your pixel shader. This applies standard fog color; if you want custom fog color (as some particle/additive shaders do, for example), you can do UNITY_APPLY_FOG_COLOR(i.fogCoord, col, fixed4(0,0,0,0)); to fog towards black for example.
Nefunguje.
Takže jsem volil cestu specifického lerpu rgb a alfa.
kód: |
c.rgb = lerp(_FogColor/4, c.rgb, _FogRGBCoef/input.dist);
c.a = lerp(0.1, c.a, _FogACoef/input.dist);
|
_________________
http://www.mcmagic-productions.com/ |
|
Návrat nahoru |
|
|
|
|
Nemůžete odesílat nové téma do tohoto fóra Nemůžete odpovídat na témata v tomto fóru Nemůžete upravovat své příspěvky v tomto fóru Nemůžete mazat své příspěvky v tomto fóru Nemůžete hlasovat v tomto fóru
|
Powered by phpBB © 2001, 2005 phpBB Group
Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna