.[ ČeskéHry.cz ].
OGL přechody 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
VODA



Založen: 29. 07. 2007
Příspěvky: 1721
Bydliště: Plzeň

PříspěvekZaslal: 26. leden 2008, 16:26:18    Předmět: OGL přechody textur Odpovědět s citátem

Zdravím... rád bych se zeptal jestli někdo neví, jak udělat stejný přechod textur na terénu, jako je vidět zde.
Nebo lépe řečeno, jestli to lze udělat bez použití shaderů...za pomocí nějakých Extensionů...

Předem díky za pomoc...
_________________
Opravdovost se pojí s trýzní...
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: 26. leden 2008, 19:43:51    Předmět: Odpovědět s citátem

Zdravím, je to už trochu starej článek, ale je to jedna z možností. Třeba tě to nakopne nějakým směrem.

http://www.gamedev.net/columns/hardcore/geomorph/page2.asp

Je to odkaz na druhou stránku, kde se věnujou materiálům, ale jinak je ten článek celkově o geometrii. Dnes existují lepší způsoby, jak udělat terén, ale přechody textur můžeš udělat podobně.

A shadery doporučuju, budeš s tím mít mnohem míň práce a budeš příjemně překvapen, že to de uplně snadno. Nicméně nemusíš se do nich nutit.
_________________
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
Marek



Založen: 28. 07. 2007
Příspěvky: 1782
Bydliště: Velká Morava

PříspěvekZaslal: 27. leden 2008, 03:01:49    Předmět: Odpovědět s citátem

Mělo by to jít pomocí alphablendingu (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA) nebo pokud to chceš mít rychlejší, tak pomocí multitexturingu a rozšíření GL_ARB_texture_env_combine (konkrétně GL_INTERPOLATE). Ovšem pomocí shaderů mi to připadá jednodušší...
_________________
AMD Open Source Graphics Driver Developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VODA



Založen: 29. 07. 2007
Příspěvky: 1721
Bydliště: Plzeň

PříspěvekZaslal: 27. leden 2008, 11:05:33    Předmět: Odpovědět s citátem

Mě je to jasný, že je to pomocí shaderů snažší...jenže moje karta nepodporuje rozšíření GL_ARB_VERTEX_PROGRAM, GL_ARB_VERTEX_SHADER, GL_ARB_FRAGMENT_PROGRAM, GL_ARB_FRAGMENT_SHADER...
Na této stránce v příkladu 29 se používá starší rozšíření na vertex shader, ale potom ten shader musí být napsán v ASM. Nebo jestli se dá kód z GLSL skompilovat do ASM...
Mám v notebooku kartu GMA X3100 a ta poporuje jen OGL 1.5.
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Ladis



Založen: 18. 09. 2007
Příspěvky: 1536
Bydliště: u Prahy

PříspěvekZaslal: 27. leden 2008, 14:56:10    Předmět: Odpovědět s citátem

Vsechny Intely pocinaje GMA 900 vcetne toho tvyho podporuji SM 2.0. I ty tam mas extenze GL_ARB_fragment_program a GL_ARB_vertex_program. Jedinym tvym omezenim je, ze na Intelech neni GLSL (high level shading language), ale jen assembly language, v kterym ale napises to samy.
_________________
Award-winning game developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Marek



Založen: 28. 07. 2007
Příspěvky: 1782
Bydliště: Velká Morava

PříspěvekZaslal: 27. leden 2008, 15:24:56    Předmět: Odpovědět s citátem

Dal by se použít CG Toolkit 1.5, je to vyšší jazyk na shadery skoro stejný jak HLSL a umí to kompilovat do GL asm. Pro Intel karty nej řešení.
_________________
AMD Open Source Graphics Driver Developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VODA



Založen: 29. 07. 2007
Příspěvky: 1721
Bydliště: Plzeň

PříspěvekZaslal: 29. leden 2008, 18:49:00    Předmět: Odpovědět s citátem

To Eosie:
Stáhnul jsem ten CG Toolkit a konečně jsem to nastavil tak, aby se vertex nebo fragment shader překompilovaly do ASM (arbvp1, arbfp1)

No takže když bych dělal ty přechody pomocí fragment shaderu, jak bych to měl zhruba řešit. Nechci hotový kód, jen nějaké zjdenodušené schéma...v GLSL...
Mám knížku kde jsou takové ty základní věci o GLSL (samplary apod.) ale pořád nějak nevím jak na to...

Díky za rady...snad už brzo bude nějaký pořádný pokrok v mém projektu...Smile
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
kerekes



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

PříspěvekZaslal: 29. leden 2008, 20:56:29    Předmět: Odpovědět s citátem

Zdar,
pouzi na mesh napriklad vertex coloring. Vertexy si oznacis povedzme na cierno a bielo (prechod).
Vo vertex shaderi si z farby vertexu (podla zlozky povedzme X vytvor 2 parametre ....jeden bude rovny x a druhy 1-x. Tie si posli do fragmentshadera, tam zaadresuj 2 textury trebarz zelena trava/hlina chodnik, vynasob farby parametrami a vysledok spocitaj.
To vytvori efekt prechodu medzi texturami. Mozes si tych textur miesat aj viac.....kde povedzme vysledok tejto operacie budes blendovat s tretou texturou podla Y farby vertexu a to potom zasa podla Z farby na stvrtu texturu a pod.
K tomu este samozrejme dalsi vypocet svetla apod.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VODA



Založen: 29. 07. 2007
Příspěvky: 1721
Bydliště: Plzeň

PříspěvekZaslal: 29. leden 2008, 21:34:42    Předmět: Odpovědět s citátem

Ještě jeden malej dotázek...nesmějte se mi, já s shaderama nemám žádné zkušenosti Crying or Very sad ...no prostě když přibinduji vertex shader tak to nahrazuje fixní pipeline pro zpracování vertexů, ale pro fragmenty zůstavá ta fixní? Je to tak? Nebo se musí připojit jak vertex tak fragment shader? Kdyby to bylo to GLSL tak je to jasný...postup mám v knížce, ale jak to je u ASM, tak to fakt nevím...
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Marek



Založen: 28. 07. 2007
Příspěvky: 1782
Bydliště: Velká Morava

PříspěvekZaslal: 29. leden 2008, 21:36:03    Předmět: Odpovědět s citátem

Tak jednak, CG toolkit není GLSL, je to jazyk CG, který má skoro stejnou syntax jako HLSL v DX (podle mě příjemnější než GLSL), takže se dají snadno přenášet shadery mezi oběma 3D API.

Budeš to řešit v podstatě stejně jako by se to dělalo přes GL_ARB_texture_env_combine. Nejdřív si zkus napsat vertex a fragment shader pro zobrazení normálního otexturovanýho modelu, ve vertex shaderu udeláš 2 věci:
- vynásobíš příchozí pozici modelview maticí, potom projection maticí a pošleš na výstup
- koordináty k textuře předáš na výstup
A ve fragment shaderu:
- nadeklaruješ si sampler (to je objekt, přes kterej čteš z textury)
- na vstupu ti dojdou koordináty, co právě přišly z vertex shaderu, ty dosadíš do tex2D společně se samplerem a dostaneš pixel z textury, kterou pošleš na výstup
Mohl bych ti klidně poslat odpovídající zdroják.

Teď k algoritmu - není nutno to nazývat "vertex coloring", prostě si uděláš pole floatu, ke každýmu vertexu jeden, kde si uložíš číslo mezi 0 a 1, které říká, ze které textury se bude samplovat (0.5 namíchá obě textury rovnoměrně) a necháš si to poslat do vertex shaderu do nějaké proměnné. Tam to z něj akorát pošleš na výstup, abys to dostal do fragment shaderu. Ve fragment shaderu načtes pixel z obou textur a na výstup pošleš výraz lerp(pixel1, pixel2, f), kde pixelN je pixel z textureN a f je ta tvoje proměnná z toho pole floatů.
I k tomuto bych ti mohl poslat zdroják.
_________________
AMD Open Source Graphics Driver Developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VODA



Založen: 29. 07. 2007
Příspěvky: 1721
Bydliště: Plzeň

PříspěvekZaslal: 29. leden 2008, 21:39:12    Předmět: Odpovědět s citátem

To Eosie:
Ne to jsi mě špatně pochopil, já neříkám, že to CGčko je GLSL...ale dá se přes ten kompilátor cgc zkompilovat kód napsán v GLSL do ASM...tak jsem to myslel...
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Marek



Založen: 28. 07. 2007
Příspěvky: 1782
Bydliště: Velká Morava

PříspěvekZaslal: 29. leden 2008, 21:41:11    Předmět: Odpovědět s citátem

VODA napsal:
Ještě jeden malej dotázek...nesmějte se mi, já s shaderama nemám žádné zkušenosti Crying or Very sad ...no prostě když přibinduji vertex shader tak to nahrazuje fixní pipeline pro zpracování vertexů, ale pro fragmenty zůstavá ta fixní? Je to tak? Nebo se musí připojit jak vertex tak fragment shader? Kdyby to bylo to GLSL tak je to jasný...postup mám v knížce, ale jak to je u ASM, tak to fakt nevím...


Proto jsem to taky popsal polopatě. Prozatím neber v úvahu, že jde o asm shadery, používej CG API, ono se o vše postará. Ano kompletně to nahradí fixed function pipeline, ty budeš potřebovat oba typy shaderů (jindy by stačilo použít jen jeden, ale většinou to nemá moc velký smysl a používají se vždycky oba). Mrkni na CG User's Manual (součástí instalace), je to pěkný ebook popisující CG.
_________________
AMD Open Source Graphics Driver Developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Marek



Založen: 28. 07. 2007
Příspěvky: 1782
Bydliště: Velká Morava

PříspěvekZaslal: 29. leden 2008, 21:44:10    Předmět: Odpovědět s citátem

VODA napsal:
To Eosie:
Ne to jsi mě špatně pochopil, já neříkám, že to CGčko je GLSL...ale dá se přes ten kompilátor cgc zkompilovat kód napsán v GLSL do ASM...tak jsem to myslel...

Jo aha. Kvůli jednoduchosti bych doporučil používat CG přímo a tam nevím, jestli jde GLSL použít.
_________________
AMD Open Source Graphics Driver Developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
JohnyDog



Založen: 17. 08. 2007
Příspěvky: 66

PříspěvekZaslal: 29. leden 2008, 23:03:59    Předmět: Odpovědět s citátem

Eosie napsal:
Jo aha. Kvůli jednoduchosti bych doporučil používat CG přímo a tam nevím, jestli jde GLSL použít.

Tak to je otazka co je jednodussi, sice ubyde potreba kompilace, ale zase je potreba se naucit zaklady Cg API a prilinkovat Cg k programu ..
_________________
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
kerekes



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

PříspěvekZaslal: 30. leden 2008, 00:27:54    Předmět: Odpovědět s citátem

Eosie napsal:
Teď k algoritmu - není nutno to nazývat "vertex coloring", prostě si uděláš pole floatu, ke každýmu vertexu jeden, kde si uložíš číslo mezi 0 a 1....

Ono sa s tym potom pomocou "vertex coloringu" ovela jednoduchsie naraba.
- vecsina modelovacich softov podporuje taky coloring pekne pomocou stetca kreslenim priamo na mesh. Na modeli terenu/whatever je to potom aj pekne vidiet, kde mam aku texturu (podla farby) a 3dsmax napriklad to vie pomocou vertexcolorov aj zobrazovat, tj grafik si moze tie textury skontrolovat aj bez enginu.
- da sa tolahko rozsirit o 3. (4) texturu bez vecsej upravy modelu... na hotovom modeli domalovat modrou tretiu texturu...
- vertexfarby sa daju lahko exportovat
- a ak na blend textur pouzijem napriklad r (x) zlozku tak mam k dispozicii zdarma este dalsie 3 zlozky (g,b,a), do ktorych mozem dat spustu zaujimavych veci ako napriklad "intenzitu ambientu", spekular (odrazivost) a podobne veci sluziace na fake, resp jemne doladenie vypoctu svetla pre rozne casti modelu (4xubyte vektor).

Pole floatov (float kazdemu vertexu) pre blend textur je fajn, len to by asi vyzadovalo vlastny editor, lebo taky "custom vertex atribut" asi nepodporuje kazdy editor Smile .
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