.[ ČeskéHry.cz ].
prokletych 120° FOV u shadow mappingu

 
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
Játro.m



Založen: 01. 02. 2010
Příspěvky: 230

PříspěvekZaslal: 12. leden 2011, 19:24:26    Předmět: prokletych 120° FOV u shadow mappingu Odpovědět s citátem

Cus,

jednoduchy a strucny problem, pro shadowmapping potrebuju renderovat vyhled do shadow mapy okolo 120°;
Problem je ten, ze stiny jsou dycky o nejakej kus odsunuty od objektu takze to vypada blbe; Kdyz renderuju do 45° FOV tak neni problem ale nejsem schopnej pojmout cely mesto;


(stin za dratenym plotem + je to cely naky soupnuty od baraku)

Predpokladam ze problem je v nejakym malym offsetu v matici shadow mappingu ale kdyz na to pouziju translate, tak stinama sice hebat muzu ale jak to vystredim na jendom miste, tak na druhym je to na ko**t;

Vytvoreni matice

kód:

inline void GetTextureMatrix(GLuint texUint)
{
   double modelView[16];
   double projection[16];
   
   GLdouble bias[16] =
    {   
      0.5, 0.0, 0.0, 0.0,
      0.0, 0.5, 0.0, 0.0,
      0.0, 0.0, 0.5, 0.0,
       0.5, 0.5, 0.5, 1.0
    };
   
   glGetDoublev(GL_MODELVIEW_MATRIX, modelView);
   glGetDoublev(GL_PROJECTION_MATRIX, projection);
   
   glMatrixMode(GL_TEXTURE);
   glActiveTextureARB(texUint);
   
   glLoadIdentity();   
   glLoadMatrixd(bias);
   
   glMultMatrixd(projection);
   glMultMatrixd(modelView);
   
   glMatrixMode(GL_MODELVIEW);
   glActiveTextureARB(GL_TEXTURE0_ARB);
}

Jeste jak renderuju do fbo

kód:
        glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, FBOid);
        glViewport(0, 0, ShadowMapSize, ShadowMapSize);   
        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
        glPolygonOffset(4.0f, 12.0f); // nema vliv
        glEnable(GL_POLYGON_OFFSET_FILL);

        glMatrixMode(GL_PROJECTION);
        glLoadIdentity();
        gluPerspective(120.0, window.w / window.h, 600.0, 10000.0);
        glMatrixMode(GL_MODELVIEW);
        glLoadIdentity();
       
        gluLookAt(0, -2949.301270, 373.978149, 0.0f, -0.0f, 0.0f, 0.0f, 1.0f, 0.0f );
// ukonceni matic a statu, snad neni potreba


Nejakej i malej napad?

Budu vdecnej, diky Wink


Naposledy upravil Játro.m dne 12. leden 2011, 20:04:17, celkově upraveno 2 krát
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
if.then



Založen: 13. 04. 2008
Příspěvky: 579

PříspěvekZaslal: 12. leden 2011, 19:44:57    Předmět: Odpovědět s citátem

kód:
   GLdouble bias[16] =
    {   
      0.5, 0.0, 0.0, 0.0,
      0.0, 0.5, 0.0, 0.0,
      0.0, 0.0, 0.5, 0.0,
      0.5, 0.5, 0.5, 1.0
    };

Osobně mám dojem, že scale je jen na indexech [12][13][14]... nemělo by to vypadat nějak takto?
kód:
   GLdouble bias[16] =
    {   
      1.0, 0.0, 0.0, 0.0,
      0.0, 1.0, 0.0, 0.0,
      0.0, 0.0, 1.0, 0.0,
      0.5, 0.5, 0.5, 1.0
    };

_________________
For guns and glory, go to www.ceske-hry.cz.
For work and worry, execute VC++.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Játro.m



Založen: 01. 02. 2010
Příspěvky: 230

PříspěvekZaslal: 12. leden 2011, 19:54:38    Předmět: Odpovědět s citátem

ne pletes se, rozpitchi to uplne stiny, takze tady asi problem nebude :/
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
nou



Založen: 28. 07. 2007
Příspěvky: 1050

PříspěvekZaslal: 12. leden 2011, 20:00:44    Předmět: Odpovědět s citátem

preco neskusis ortographicku projekciu? ved sa snazis o slnko takze zdroj svetla chces v nekonecne. tym by odpadol problem s velkym FOV.
_________________
Najjednoduchšie chyby sa najtažšie hľadajú.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Játro.m



Založen: 01. 02. 2010
Příspěvky: 230

PříspěvekZaslal: 12. leden 2011, 20:05:02    Předmět: Odpovědět s citátem

ortho? o tom ani nevim Very Happy ocekuju Wink
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Játro.m



Založen: 01. 02. 2010
Příspěvky: 230

PříspěvekZaslal: 29. leden 2011, 12:40:27    Předmět: Odpovědět s citátem

dokopal jsem se k tomu orthu, funguje to spickove ale je v tom hacek ... jako dycky :X

bohuzel potrebuju stiny i na rukou v pohledu a jak se zda, tak je to rozbity ..
stiny se dycky vyrenderujou na levelu, ale na rukou ta projekce blbne, proste je to nahodne bud ve stinu nebo ne.
Culling na to vliv nema, model rukou je translatovanej a orotovanej, tudiz jsem zkousel hejbat matici stinu, bez vysledku. Uz me opravdu nenapada kde je doprd*le problem.

Napad?
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