.[ ČeskéHry.cz ].
Správa shaderů

 
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
perry



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

PříspěvekZaslal: 30. červen 2011, 12:56:50    Předmět: Správa shaderů Odpovědět s citátem

Čau,

udělal jsem si manager shaderů (DX9) pro můj grafický framework. Funguje to podle požadavků, ale nevím, zda by to nešlo udělat lépe (momentálně se to dlouho spouští, protože to kompiluje moc efektů, ale v produkční fázi stačí přiložit zkompilované byte-cody).

Mám soubor s různými typy InputVertexStruct
Např:
kód:

VS_Input_PN //position, normal
VS_Input_PNT2 //position, normal, texcoord (float 2)
VS_Input_PNT4 //position, normal, texcoord (float 4)

atd..
Pro každý efekt mám potom zjednodušeně
kód:
#ifdef PN
  //shadery pro PN
#elif PNT2
  //shadery pro PNT2
#else
  //default
#end

Technique Simple {  Pass0 {compile VS, compile PS } }


V kódu potom zavolám pro všechny objekty stejnou techniku a podle typu vertexu (PN, PNT2..) se vybere správný efekt
Efekty mám všechny uložené v poli, kde ID je právě identifikátor PN, PNT2...
Nicméně otázka je, zda to je "vhodný" způsob (přeci jenom mám pak hromady zkompilovaných efektů - pro každou techniku všechny varianty)

Nebo druhý nápad co mám, je udělat jeden efekt bez #ifdef a odlišit typ vertexu v technice

kód:
Technique SimplePN...
Technique SimplePNT2...


Nějak nevím co dopadne ve výsledku lépe
_________________
Perry.cz
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
pcmaster



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

PříspěvekZaslal: 30. červen 2011, 13:02:05    Předmět: Odpovědět s citátem

Ja by som sa tej hromady skompilovanych verzii efektov vobec nebal, tj. ani tych preprocesorovych makier. Hlavne, ak planujes fakt vela kombinacii.
_________________
Off-topic flame-war addict since the very beginning. Registered since Oct. 2003!
Interproductum fimi omne est.
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
Strana 1 z 1

 
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