.[ ČeskéHry.cz ].
Manage textur
Jdi na stránku 1, 2  Další
 
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: 2. duben 2010, 14:36:58    Předmět: Manage textur Odpovědět s citátem

Zdar,

prikrocil jsem k texturovani a peru se tady s jenim problemem. Ve scene mam priblizne 550 objektu, ze kterych aspon 350 ma vlastni texturu. Jak jsem to pocital tak kdyz budu mit textury okolo 2-3MB tj okolo 800MB z pameti. Resi se toto nejaky nepretrzitym streamem z disku nebo jak to funguje? A to pocitam klasicky diffuse textury. S bumpmappingem to bude 2x tolik :/

Doufam ze se da pochopit jak to myslim. Jatro
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
]semo[



Založen: 29. 07. 2007
Příspěvky: 1526
Bydliště: Telč

PříspěvekZaslal: 2. duben 2010, 15:23:38    Předmět: Odpovědět s citátem

To máš teda pěkně velký textury. Používáš kompresi? Taková komprimovaná 1024x1024 DXT1 má 512 KB (bez mipmap).
_________________
Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory
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: 2. duben 2010, 19:08:19    Předmět: Odpovědět s citátem

]semo[: pouzivam DXT3 ale s mipmapama, zkusim je udelat nejaky bez mipmap jak se to projevi na vzhledu.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
posila



Založen: 29. 07. 2007
Příspěvky: 201

PříspěvekZaslal: 2. duben 2010, 20:47:41    Předmět: Odpovědět s citátem

Textury ve kterych nepotrebujes alfakanal (nebo ti staci alfa jen 0 a 1) komprimuj v DXT1
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: 2. duben 2010, 22:06:20    Předmět: Odpovědět s citátem

jo tak to je moje demence, tedka bez mipmap je to mnohem lepsi a na vzhledu to neni poznat.

posila: diky, tedka sem to zacal pouzivat
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: 24. duben 2010, 14:39:14    Předmět: Odpovědět s citátem

Tak jsem se znovu dostal do problemu. Potreboval bych vedet jak vyresit, kdyz mam treba 20 objektu co maji na sobe stejnou texturu tak aby se ta textura nacetla jenom jednou do pameti a dal se na ni odkazovalo pres index v poli. Nejaky kus kodu jsem stvoril ale funkcnost byla tak na 40% protoze se vzdycky podarilo tu texturu zajistit jenom pro 3 objekty - totalne nepouzitelny.
Nebyl by nejakej kus pseudo kodu jak to vyresit? docela si s tim lamu hlavu a nenapada me jak osetrit ten index.

Edit: jeste me napadlo, jestli by se ty objekty nedaly pri exportu do souboru nejak sortovat podle jmena textury aby se usetrilo co nejvic mista v pameti.

Diky Jatro
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
perry



Založen: 28. 07. 2009
Příspěvky: 879

PříspěvekZaslal: 24. duben 2010, 15:09:10    Předmět: Odpovědět s citátem

Já mam na textury napsaný "manager". Mám vytvořenou

V pseudokodu nějak takhle:
kód:

class MyTexture
{
 Texture tex;
 String name;
 String fileName;
 TexSettings settings;
}

class ManagerTextur
{
 HashMapa <String, MyTexture>
 MyTexture getTexture(name)
 {
   return HashMapa[name];
 }
}
....

class Model
{
 MyTexture texture;

 void BindTexture ()
 {
   texture = ManagerTextur.getTexture(name);
 }

 void Render()
 {
   setTexture(texture.tex);
   RenderModel();
 }
}



V hashMapě mam načtený postupně všechny textury, který potřebuju... když pak renderuji model, tak má u sebe pointer na MyTexture a jenom ho vykreslím s texturou, která je v tom classu uložená.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Játro.m



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

PříspěvekZaslal: 24. duben 2010, 18:49:20    Předmět: Odpovědět s citátem

perry: mam dojem ze jsme si nerozumeli. Pokud jsem dobre pochopil to co jsi mi posilal tak je to nacteni textury do jakysiho pole HashMapa. Ja potrebuju zredukovani tech textur. Tady je screen co ja myslim -> nacist jenom jednu texturu co jsou v tom obdelniku a dal se na ni nejak odkazovat abych ji nemusel nahrat 10x do pameti.


Doufam ze u toho nejsem blbec Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
perry



Založen: 28. 07. 2009
Příspěvky: 879

PříspěvekZaslal: 24. duben 2010, 19:11:04    Předmět: Odpovědět s citátem

No vždyť jo... tak to moje řešení taky funguje... V HashMapě nelze mít 2x stejný klíč, takže pokud ji přidáváš podruhý, tak to hodí výjimku...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Quiark



Založen: 29. 07. 2007
Příspěvky: 816
Bydliště: Chlívek 401

PříspěvekZaslal: 24. duben 2010, 20:21:22    Předmět: Odpovědět s citátem

Tam asi chybí ta nejdůležitější část, a sice:

kód:

Texture getTexture(string name) {
    if (!HashMapa.contains(name)){
        HashMapa[name] = loadTexture(name);
    }
    return HashMapa[name];
}


neboli všechny požadavky na textury jdou přes manager a ten buď vrátí už načtenou
texturu nebo ji načte a uloží si ji do seznamu (a vrátí ji, samozřejmě)
_________________
Mám strach
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Játro.m



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

PříspěvekZaslal: 24. duben 2010, 20:34:56    Předmět: Odpovědět s citátem

Quiark: jojo neco podobnyho jsem tam hledal a nevidel, tak proto jsem takle odpovedel.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
perry



Založen: 28. 07. 2009
Příspěvky: 879

PříspěvekZaslal: 24. duben 2010, 21:27:59    Předmět: Odpovědět s citátem

Jo no Smile to jsem si nějak neuvědomil... bral jsem to jako kostru...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Játro.m



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

PříspěvekZaslal: 25. duben 2010, 18:01:16    Předmět: Odpovědět s citátem

tak dekuju, vyresil jsem to k svoji dokonalosti.
jeste takova uplne tupa otazka, jak je to s filtrovanim textur?
GL_NEAREST = bilinear
GL_LINEAR = trilinear?
nejak mi to nedochazi. xD
dik Razz
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
nou



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

PříspěvekZaslal: 25. duben 2010, 18:26:34    Předmět: Odpovědět s citátem

GL_LINEAR = linear
GL_NEAREST_MIPMAP_LINEAR = bilinear
GL_LINEAR_MIPMAP_LINEAR = trilinear
_________________
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: 25. duben 2010, 19:13:52    Předmět: Odpovědět s citátem

diky, jeste jedna takova mala technicka, zavisi backface culling v opengl na normale? kdyz nastavim culling na GL_BACK tak to u nekterejch objektu vypada jak kdyby tam byl GL_FRONT. Normaly mam nejspis spravny - osvetleni je v pohode. Nejak me nenapada co se da podelat na 3 funkcich aby to takle blblo..
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
Jdi na stránku 1, 2  Další
Strana 1 z 2

 
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