HTML

Friss topikok

  • Pretender: @Tiberius (the one): hallottam mondjuk már róla, de teljesen abban a tudatban voltam, hogy az mana... (2012.02.28. 18:43) Winapi Winforms
  • Pretender: @version: oké :) most végül lehet, h találtam valakit, majd látjuk ;) (2011.12.08. 19:26) Háló 2

2011.11.27. 19:22 Pretender

Linear Depth

 Gondolkoztam kicsit, és mivel úgy voltam vele, hogy úgyis kelleni fog a lineáris depth a CSM miatt, keresgéltem kicsit a neten. Sokkal kényelmesebb lineáris (view space) depthet eltárolni, még visszaszámolni is olcsóbb.

Kell egy sugár a kamera pozíciójából a vertex pozíciójába (ez worldspace), ezt normalizáljuk a pixel shaderben, szorozzuk a kivett depth értékkel és hozzáadjuk a kamera pozícióját. Tehát valami ilyesmi:

//vertex shader

void main(
in out float4 Position : POSITION0,
out float4 ScreenPos : TEXCOORD0,
out float3 EyeRay : TEXCOORD1)
{
float4 wpos = mul(Position, world);
Position = mul(wpos, viewProj);

ScreenPos = Position;
EyeRay = wpos.xyz - eyePosition;
}

//pixel shader
float depthText = tex2D(samplerDepth, Texcoord);
EyeRay = normalize(EyeRay);
float3 wposition = eyePosition + EyeRay * depthText;

Emellett a lineáris depth pontosabb távolabbi objektumokra is, így például egy diablo2-nézetes játéknál érthető, hogy sokkal pontosabb eredményt ad egy lineáris depth, mint egy exponenciális (ami a position.z / position.w-ből jön)

Emellett elkezdtem szórakozni a CSM-el is, max. 4 splitünk lehet, és egyetlen textúrába gyűjtöm bele a külön textúrákat. Tehát ha van egy 512x512-es split méretű shadow mapem, akkor lesz egy 1024x1024-es rendertargetem, amibe a 4 split textúráját belerakom, így csak ezt kell átadni az árnyékolást végző shadernek, ami a távolságból meghatározza, hogy melyik splitbe tartozik az adott pixel.

Képek akkor lesznek, ha már jó lesz, és működni is fog rendesen :D

Szólj hozzá!


A bejegyzés trackback címe:

https://screamengine.blog.hu/api/trackback/id/tr173416172

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása