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
|
Zaslal: 30. leden 2008, 11:12:53 Předmět: |
|
|
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 . |
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 |
|
|
VODA
Založen: 29. 07. 2007 Příspěvky: 1721 Bydliště: Plzeň
|
Zaslal: 1. únor 2008, 14:53:14 Předmět: |
|
|
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... _________________ Opravdovost se pojí s trýzní... |
|
Návrat nahoru |
|
|
Marek
Založen: 28. 07. 2007 Příspěvky: 1782 Bydliště: Velká Morava
|
Zaslal: 1. únor 2008, 14:58:21 Předmět: |
|
|
Jaký máš nakonec pocit z shaderů? Je to lehký/primitivní/těžký/komplikovaný? _________________ AMD Open Source Graphics Driver Developer |
|
Návrat nahoru |
|
|
VODA
Založen: 29. 07. 2007 Příspěvky: 1721 Bydliště: Plzeň
|
Zaslal: 1. únor 2008, 15:13:43 Předmět: |
|
|
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 )...
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 |
|
|
]semo[
Založen: 29. 07. 2007 Příspěvky: 1526 Bydliště: Telč
|
Zaslal: 28. únor 2008, 15:52:42 Předmět: |
|
|
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 |
|
|
Marek
Založen: 28. 07. 2007 Příspěvky: 1782 Bydliště: Velká Morava
|
Zaslal: 28. únor 2008, 21:58:02 Předmět: |
|
|
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 |
|
|
VODA
Založen: 29. 07. 2007 Příspěvky: 1721 Bydliště: Plzeň
|
Zaslal: 29. únor 2008, 07:10:25 Předmět: |
|
|
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 |
|
|
]semo[
Založen: 29. 07. 2007 Příspěvky: 1526 Bydliště: Telč
|
Zaslal: 29. únor 2008, 09:47:33 Předmět: |
|
|
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 |
|
|
VODA
Založen: 29. 07. 2007 Příspěvky: 1721 Bydliště: Plzeň
|
Zaslal: 29. únor 2008, 11:11:43 Předmět: |
|
|
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... _________________ Opravdovost se pojí s trýzní... |
|
Návrat nahoru |
|
|
]semo[
Založen: 29. 07. 2007 Příspěvky: 1526 Bydliště: Telč
|
Zaslal: 29. únor 2008, 11:14:46 Předmět: |
|
|
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 |
|
|
Marek
Založen: 28. 07. 2007 Příspěvky: 1782 Bydliště: Velká Morava
|
Zaslal: 15. duben 2008, 23:40:15 Předmět: |
|
|
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 |
|
|
|