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: 4. duben 2010, 17:05:01 Předmět: gmax, jak zjistit typ opakovani textur |
|
|
Zdarec,
da se nejak v tom maxscriptu dostat jak je nastaveny opakovani textur (unwrap UVW)? Docela hojne to pouzivam a potrebuju aby tak jak si to nastavim v maxu tak aby to vypadalo i v enginu :/. Googlil jsem ale nic jak to dostat do listeneru jsem nenasel.
Diky a sorry za dalsi milion topicu. |
|
Návrat nahoru |
|
 |
micky

Založen: 28. 02. 2008 Příspěvky: 348 Bydliště: Plzeň, Praha
|
Zaslal: 4. duben 2010, 22:51:24 Předmět: |
|
|
Napadá mě hrubé řešení, které jsem používal u modelů, když jsem se podobným problémem nechtěl zdržovat. Tedy dát to přímo do názvu objektu... Krychle_uvwwrap ... engine to pochopí po svém.
To jen ale v případě, že to nechceš celé obecně, hezky a čistě. Snad někdo poradí méně "prudké" řešení.  _________________ https://www.bluepulsar.cz/
https://twitter.com/11thDream_Game/ |
|
Návrat nahoru |
|
 |
Játro.m
Založen: 01. 02. 2010 Příspěvky: 230
|
Zaslal: 5. duben 2010, 13:47:39 Předmět: |
|
|
micky: no to by byla asi az posledni moznost :/ ale jak googlim tak googlim a nic nenalezam. Asi se mrknu do nejake dokumentace protoze evidentne nikdo takovej problem neresil. |
|
Návrat nahoru |
|
 |
Játro.m
Založen: 01. 02. 2010 Příspěvky: 230
|
Zaslal: 12. duben 2010, 14:49:51 Předmět: |
|
|
cus, tak jak jsem to studoval tak to opakovani funguje kdyz se nastavi v glTexParameteri() mod GL_REPEAT pro _S a _T + texturovaci koordinaty jiny nez <0,1> ale nemuzu prijit na to proc se mi to neopakuje. Koordinaty jsou vychyleny a mam pri vytvareni textury nastaveny oba 2 stavy. Nejakej napad? Nekde jsem cetl ze se to da vyresit pres GLSL ale zatim bych chtel nejakou jednodussi cestu. |
|
Návrat nahoru |
|
 |
Játro.m
Založen: 01. 02. 2010 Příspěvky: 230
|
Zaslal: 12. duben 2010, 16:28:04 Předmět: |
|
|
no, vyresil jsem to. Tady je reseni co me napadlo jako prvni a docela se to da pouzit.
kód: |
if (CurMesh.material.diffuseMap != undefined and classOf CurMesh.material.diffuseMap == BitmapTexture) then
(
iTiling_u = CurMesh.material.diffusemap.coords.u_tiling
iTiling_v = CurMesh.material.diffusemap.coords.v_tiling
)
|
Naposledy upravil Játro.m dne 15. květen 2010, 08:24:47, celkově upraveno 2 krát |
|
Návrat nahoru |
|
 |
Játro.m
Založen: 01. 02. 2010 Příspěvky: 230
|
Zaslal: 15. květen 2010, 08:23:28 Předmět: |
|
|
Zdar, kdyz uz tady mam ten topic o opakovan i textur tak bych mel jeden dotaz. Opakovani textur funguje jenom obcas. Obcas je to natilovany podle nastaveni koordinatu a nekdy ne.
Tady je kousek koordinatu z objektu
kód: |
o podlaha_dum2
n 204 94
v1 v2 v3 u v
v -978.313 112.941 3.9265 10.6014 10.4024
v -1243.93 112.941 3.92647 10.2972 10.4024
v -978.313 445.694 3.92653 10.6014 10.0213
v -1243.93 445.694 3.9265 10.2972 10.0213
|
Vidite ze koordinaty co lezou do programu jsou >1; Takze by se teoreticky ta textura mela opakovat ale neopakuje (opakovat se zacala az pote co jsem ty koordinaty nastavil * 10 = +- 100 ale zase v gmaxu je to na po*rani protoze grafik nevidi jak to ma vypadat ).
Kod vytvareni opakujici se textury - k tomu opakovani jediny co jsem nasel je ten WRAP_S a WRAP_T
kód: |
case 2: //DDS texture
pTexData = xmLoadDDS(xmFileName);
if(!pTexData)
{
return -1;
}
glGenTextures(1, &xmTextureID);
glBindTexture(GL_TEXTURE_2D, xmTextureID);
if(pTexData->format == GL_COMPRESSED_RGBA_S3TC_DXT1_EXT) pTexData->mipFactor = 8; else pTexData->mipFactor = 16;
for(int i = 0; i < pTexData->totalMipMaps; i++)
{
int xmMipMapSize = ((pTexData->width + 3) / 4) * ((pTexData->height + 3) / 4) * pTexData->mipFactor;
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, xmMinFilter);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, xmMaxFilter);
glCompressedTexImage2DARB(GL_TEXTURE_2D, i, pTexData->format, pTexData->width, pTexData->height, 0, xmMipMapSize, pTexData->texels + xmMipMapOffset);
pTexData->width = pTexData->width >> 1;
pTexData->height = pTexData->height >> 1;
xmMipMapOffset += xmMipMapSize;
}
break;
|
|
|
Návrat nahoru |
|
 |
|