.[ ČeskéHry.cz ].
Unity - mlha na objekty

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
McMagic



Založen: 06. 08. 2012
Příspěvky: 615

PříspěvekZaslal: 20. únor 2015, 11:02:51    Předmět: Unity - mlha na objekty Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
McMagic



Založen: 06. 08. 2012
Příspěvky: 615

PříspěvekZaslal: 20. únor 2015, 15:57:01    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
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