HTML

gondolataim elsősorban játékfejlesztésről

Elsősorban játékfejlesztés magyarul: az enginem fejlesztése során felmerülő problémák, ötletek, tévutak stb dokumentálása, amely számomra és talán mások számára is hasznos lehet később Másodsorban gondolatok szavakban...

Kapcsolat:
aalberik 'at' gmail 'dot' com

Haletető

Galéria

Címkék

Összes

Linkblog

Naptár

április 2024
Hét Ked Sze Csü Pén Szo Vas
<<  < Archív
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

R_DrawAliasModel

2012.12.30. 13:40 :: syam

Ismét egy kis játékanatómia ezúttal Quake2 engine.

Amire kiváncsi voltam, hogy a dinamikus modellek árnyalását hogyan oldották meg. Jelen esetben azonban egy igen leegyszerűsített árnyalásról van szó, amivel nem is nagyon érdemes foglalkozni. Sokkal inkább azzal, hogy a modellre ható fény színét hogyan határozza meg az engine.

Kicsit elmélyülve a forráskódban a következőt találjuk:

void R_DrawAliasModel (entity_t *e)
{
  ...
  R_LightPoint
  GL_DrawAliasFrameLerp
  ...
}

ebből ami nekünk kell az az R_LightPoint

void R_LightPoint (vec3_t p, vec3_t color)
{
  ...
  RecursiveLightPoint
  ...
}

aminek az egyik lényegi része a RecursiveLightPoint függvény, amely a statikus fényt számítja ki / határozzza meg az adott ponthoz.
Ami pedig úgy történik, hogy

  • bejárja hozzá a BSP fát
  • megkeresi, hogy a pont melyik surface felett van
  • meghatározza az így kapott ponthoz tartozó lightmap textúra koordinátákat
  • kiolvassa a lightmapból a színt és ezt adja vissza végeredményül

A dinamikus fényekkel úgy tűnik sokkal kíméletlenebb: lineáris kereséssel ellenőrzi a fényforrásokat, hogy elég közel vannak-e és ha igen, akkor hozzáadja a végeredmény színhez a fényforrás modulált színét.

Kissé brute force-nak tűnik, de mint tudjuk ez már működött 200 MHz magasságában is...

Szólj hozzá!

Címkék: quake2 bsp tree

A bejegyzés trackback címe:

https://sakura7.blog.hu/api/trackback/id/tr994987727

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