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
|
Zaslal: 12. leden 2011, 19:24:26 Předmět: prokletych 120° FOV u shadow mappingu |
|
|
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 
Naposledy upravil Játro.m dne 12. leden 2011, 20:04:17, celkově upraveno 2 krát |
|
Návrat nahoru |
|
 |
if.then
Založen: 13. 04. 2008 Příspěvky: 579
|
Zaslal: 12. leden 2011, 19:44:57 Předmět: |
|
|
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 |
|
 |
Játro.m
Založen: 01. 02. 2010 Příspěvky: 230
|
Zaslal: 12. leden 2011, 19:54:38 Předmět: |
|
|
ne pletes se, rozpitchi to uplne stiny, takze tady asi problem nebude :/ |
|
Návrat nahoru |
|
 |
nou

Založen: 28. 07. 2007 Příspěvky: 1050
|
Zaslal: 12. leden 2011, 20:00:44 Předmět: |
|
|
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 |
|
 |
Játro.m
Založen: 01. 02. 2010 Příspěvky: 230
|
Zaslal: 12. leden 2011, 20:05:02 Předmět: |
|
|
ortho? o tom ani nevim ocekuju  |
|
Návrat nahoru |
|
 |
Játro.m
Založen: 01. 02. 2010 Příspěvky: 230
|
Zaslal: 29. leden 2011, 12:40:27 Předmět: |
|
|
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 |
|
 |
|