.[ ČeskéHry.cz ].
OGL přechody textur
Jdi na stránku Předchozí  1, 2
 
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
Marek



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

PříspěvekZaslal: 30. leden 2008, 11:12:53    Předmět: Odpovědět s citátem

kerekes napsal:
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 .

Nj máš recht.

JohnyDog> Má k tomu User's Manual, kde je vše popsané. Podle toho se dá naučit CG API celkem rychle. Nepotřebuje hledat žádné další zdroje na netu a bude mít snažší ladění shaderu - uložit shader a spustit aplikaci VERSUS uložit shader, zkompilovat do asm a spustit aplikaci (+ si pohlídat mápování parametrů shaderu do správných registrů v asm => víc práce).
_________________
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: 1. únor 2008, 14:53:14    Předmět: Odpovědět s citátem

Takže jsem si trochu hrál a už mám nějaké výsledky...
Zde si můžete stáhnout prográmek, který používá Vertex a Fragment program pro Texture Blending a pro výpočet osvětlení.
Rozlišení je nastaveno pro širokoúhlý monitor 16:10, rozlišení můžete změnit v souboru config.ini ve složce data....

Jinak děkuji za rady...

PS: ještě do toho budu imlementovávat FogCoordinates pro "volumetrickou" mlhu...a taky testy podpory rozšířeních... Wink
_________________
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: 1. únor 2008, 14:58:21    Předmět: Odpovědět s citátem

Jaký máš nakonec pocit z shaderů? Je to lehký/primitivní/těžký/komplikovaný?
_________________
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: 1. únor 2008, 15:13:43    Předmět: Odpovědět s citátem

No, než jsem přišel na to jak je používat a hlavně než jsem přišel na to, proč mi ty shadery v GLSL nejdou překopat do ASM, tak to byla docela dlouhá doba (nakonec to bylo jenom v tom že jsem místo uniform napsal unifrom Wink )...
No a shadery, pěkný, ale nesmím to s nima zase přehánět...
Budu je používat pouze na ten terén...
_________________
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: 28. únor 2008, 15:52:42    Předmět: Odpovědět s citátem

Mám teď podobný problém, který se tu řešil - Intel karty na noteboocích. Používám GLSL, abych řek pravdu, najel sem na to, protože to bylo nejjednodušší. Mám teď spoustu GLSL shaderů, ale naší další hru chceme zacílit i na slabší HW než Aquadelic GT. Takže by to mělo na těch noteboocích jet, ale oni nepodporují GLSL.

Fajn, dá se získat shader assembler přes Cg, to je v poho. Ale jak získám indexy uniformů? (parametrů). V tom asm se to nedělá přes jména, ale přes indexy. Musím to nejspíš rozparsovat, že? Ale v tom asm, co vyleze z cgc, už nejsou použita stejná jména parametrů. Dá se to nějak snadno vyřešit?

Napadlo mě, že to nejspíš udělám tak, že pro ty Intely naprogramuju fixed function pipeline alternativu (kterou sem už z enginu vyštípal :) ). A pro speciální efekty (voda) udělám jednodušší assemblerovskou alternativu...



Jak byste řešili můj problém? už nad tím fárám celý den :)
_________________
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: 28. únor 2008, 21:58:02    Předmět: Odpovědět s citátem

Nějak to jít musí. Když zkompiluju CG shader, vypíše mi to v asm v komentářích informace o vstupních parametrech, možná by to z toho šlo dostat: http://nopaste.ceske-hry.cz/1117
Osobně dávám přednost použití CG API přímo, je to pohodlnější.
_________________
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. únor 2008, 07:10:25    Předmět: Odpovědět s citátem

JJ jde to. Já to dělám přes CGtoolkit...
Mám vytvořenej BAT soubor s tímto řádkem pro fragment program
kód:
"D:\cgc.exe" fsglsl.txt -oglsl -o fs_asm.txt -profile arbfp1

a pro vertex program
kód:
"D:\cgc.exe" vsglsl.txt -oglsl -o vs_asm.txt -profile arbvp1

přičemž vsglsl.txt a fsglsl.txt jsou shadery napsané v GLSL, vs_asm.txt a fs_asm.txt výsledné ASM programy...

Nic víc a funguje to dobře...a samozřejmně potřebuješ rozšíření...
_________________
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: 29. únor 2008, 09:47:33    Předmět: Odpovědět s citátem

Voda: jo, něco takovýho už sem zkoušel, teď jde spíš o to, jak nastavit parametry pomocí názvu uniformu, místo indexu

Eosie: Cg API přímo je určitě pohodlnější, ale když sem ty shadery programoval asi před rokem, nechtělo se mi přepisovat hlavičky pro delphi :)
A teď mám spoustu shaderů v GLSL a času mám málo. No neva, asi to udělám tak, že pro ty Intelácký karty (a podobný sráče) napíšu fixed pipeline funkcionalitu. Stejně by to běželo s těma komplexníma shaderama pomalu, vzhledem k výkonu integrovaných karet. Neni čas na hrdinství...
_________________
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
VODA



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

PříspěvekZaslal: 29. únor 2008, 11:11:43    Předmět: Odpovědět s citátem

Já to teda dělám pomocí indexů...to CG to vypíše do ASM, takže není problém si ty idčka zjistit... Wink
_________________
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: 29. únor 2008, 11:14:46    Předmět: Odpovědět s citátem

No, potíž je v tom, že můj stávající systém valí přes názvy. Všechny modely to mají v sobě. Ale jak říkám, seru na to, udělám to přes FFP a vodu udělám zvlášť v asembleru. Stejně se jedná jen o ty slabší karty, na nových to bude eňo ňuňo přes GLSL. Příště až budu zase dělat nějakej engine, budu moudřejší.
Díky za rady.
_________________
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: 15. duben 2008, 23:40:15    Předmět: Odpovědět s citátem

Sry za otevírání staršího threadu.
Bohužel jsem si uvědomil, že VODA měl pravdu s tím, že je lepší z Cg použít jen compiler (stačí cg.dll, ne nutně cgc) a Cg API jinak nepoužívat. Ono je docela zabugované a není to moc efektivní, pro mě bylo teď výhodnější se tomu spíš vyhnout a dělat to ručně, jak VODA (jen s tím rozdílem, že asm shader nemám v souboru, ale vezmu si ho hned po kompilaci Cg shaderu a naloaduju ručně přes ARB programy). Co považuju za hodně velký nedostatek CgGL implementace je to, že při nastavování konstantních parametrů používá funkci, která nastavuje vždy jen jeden vektor (glProgramLocalParameter4fvARB) a volám to až 256x, zatímco je mnohem výhodnější nastavit celej konstantní buffer naráz jednou (glProgramLocalParameters4fvEXT z extenze GL_EXT_gpu_program_parameters). V mém případě bylo právě tady úzké hrdlo a přepsáním na tu druhou funkci se to hodně zrychlilo (hlavně geometry instancing pomocí shader instancingu se v GL začal dost vyplácet, což umožnilo ještě další hodně viditelné zvýšení výkonu).

]semo[> Mít všechny atributy vertexů a parametry materiálu přes názvy je náhodou preferovaný způsob a ničemu by to nemělo vadit, ani při FFP. Je jenom třeba ty názvy volit rozumně.
_________________
AMD Open Source Graphics Driver Developer
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 Předchozí  1, 2
Strana 2 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