Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:



Teren-texturoávní

Seznam témat     Nová odpověď

Přihlásit se     Registrace     Zapomenuté heslo

Re: Teren-texturoávní

Autor: HonzikJ

12:24:37 29.07.2009

Už vím kde se stala chyba .

Já měl nastavený filtr textury na GL_NEAREST,... jsem si toho vůbec nevšiml. Ale hned když jsem to změnil na GL_LINEAR, tak už to vypadá veseleji. Ještě musím trochu to poupravit bo sem tam to spadne, ale to hlavní už je vpořádku.

Citovat příspěvek

 

Re: Teren-texturoávní

Autor: HonzikJ

8:50:32 27.07.2009

nou: díky moc, zkusím to takhle ihned pořešit a uvidím jaké dostanu výsledek. Kdyby to nebylo stále ono, udělám i nějaký screenshot, aby bylo zcela jasné, kde je problém. Zatím díky moc za odpovědi a za rady.

Citovat příspěvek

 

Re: Teren-texturoávní

Autor: frca

20:26:11 26.07.2009

HonzikJ: Zkus přeci jenom poslat screenshot, ať je opravdu jasné, co je tam za problém (mohlo by pomoci i nějak vyznačit místo, které nevypadá dobře).

Citovat příspěvek

 

Re: Teren-texturoávní

Autor: nou

16:56:26 26.07.2009

no takze pri vytvarani tej textury musis linearne interpolovat medzi dvoma texturami. (zmiesat dve farby dokopi₎ napr ked mas teren rozsahu 0-255, tak pri vyske 0 bude uplne prva textura, pri 64 bude polovica farby z prvej textury a polovica z druhej textury, 128 iba druha textura a pri 255 iba tretia.

toto za teba vie spravit graficka karta aj automaticky. staci vytvorit 3D texturu co je len subor 2D textur naskaladanych na sebe. potom staci pouzivat glTexCoord3f() a ako treti texturovaci koordinat pouzivat vysku daneho miesta v terene. tato vyska ale musi byt z rozsahu 0-1

Citovat příspěvek

 

Teren-texturoávní

Autor: HonzikJ

11:52:11 26.07.2009

Zdravím, právě se snažím otexturovat moji výškovou mapu. Snažím se o to takovým způsobem, jak je popsáno na této adrese:

http://www.cprogramming.com/discussionarticles/texture_generation.html

To znamená, že mám několik (v mém případě 3) textur a podle výšky je mapuju. Postupuju přesně tak, jak je na ýše uvedené adrese

for(int i=0; i for(int j=0; j int iHeight = this.textureHeightFactor(this.fTerrainData[this.getIndex(i, j)]);
oldColor = tempTextures.getImageColor(iHeight, i, j); // tady bacha na to i, j
AppletGL.render.getTextures().setImageColor(0, oldColor, i, j);
}
}

To znamená projdu mapu, podle výšky aktuálního bodu metoda textureHeightFactor mi vrátí index textury, kterou mám použít a barvu textury pak nastavím nové finální textuře.

Ale už teď nedosahuji příliš dobrého vizuálního výsledku, neboť jsou zcela zřetelné přechody trojúhelníků což nepůsobí moc hezky.

Vykreslení provádím takto(zkrátka vyberu jen tu část textury a tu namapuju na trojúhelníky, a tak dále pro všechny):

for (int i = 0; i < (this.iWidthTerrain - 1); i++) {
for (int j = 0; j < (this.iDepthTerrain - 1); j++) {
// z jedne celé textury vezmu jen aktuální část a tu namapuju
TextureCoords coords = texture.getSubImageTexCoords(i, j, i+1, j+1);
//TextureCoords coords = texture.getImageTexCoords();
Render.gl.glBegin(GL.GL_TRIANGLE_STRIP);
Render.gl.glTexCoord2f(coords.left(), coords.bottom());
Render.gl.glVertex3f(x, this.fTerrainData[index], y);
Render.gl.glTexCoord2f(coords.right(), coords.bottom());
//Render.gl.glTexCoord2f(x, y);
Render.gl.glVertex3f(x, this.fTerrainData[index + 1], y + this.fDistance);
Render.gl.glTexCoord2f(coords.right(), coords.top());
//Render.gl.glTexCoord2f(x, y);
Render.gl.glVertex3f(x + this.fDistance, this.fTerrainData[index + this.iWidthTerrain], y);
Render.gl.glTexCoord2f(coords.left(), coords.top());
//Render.gl.glTexCoord2f(x, y);
Render.gl.glVertex3f(x + this.fDistance, this.fTerrainData[index + this.iWidthTerrain + 1], y + this.fDistance);
Render.gl.glEnd();

Citovat příspěvek

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: