tI sto lottando per comprendere i buffer costanti in DirectX. Ho visto due sintassiCome utilizzare i buffer costanti dello shader?
float4 myVar;
dichiarati in alto a livello di file shader e
cbuffer myBuffer
{
float4 myVar;
}
come spiegato a http://msdn.microsoft.com/en-gb/library/windows/desktop/bb509581(v=vs.85).aspx
Capisco che i buffer costanti devono essere assegnati agli slot (zero basato su indici) e può essere impostato in codice.
I due framework che ho visto (SlimDX vs SharpDX) sembrano utilizzare diverse convenzioni per impostarli - SlimDX per nome stringa (tramite riflessione dello shader?) E SharpDX per numero di slot - sebbene non sia chiaro dove il numero di slot è ottenuto da?
Qualcuno può far luce sulla differenza tra le due sintassi, se sono effettivamente diverse, come i numeri di slot sono assegnati alle dichiarazioni nel file .fx e come i numeri di slot sono condivisi tra gli shader?
Qualsiasi aiuto apprezzato
grazie - un follow up se va bene - tu dici qui che il framework Effect è legacy - vuol dire che anche gli effetti 11 dovrebbero essere evitati? Non riesco a vedere questo menzionato su http://msdn.microsoft.com/en-us/library/windows/desktop/ff476136(v=vs.85).aspx sebbene http://blogs.msdn.com/b /chuckw/archive/2012/10/24/effects-for-direct3d-11-update.aspx cita che viene fornito principalmente per facilitare il porting da Effects 10. La raccomandazione è di saltare del tutto il suo uso? – AnonDev
Effetti11/Effetti/I file FX sono obsoleti e non vengono più gestiti da Microsoft (ecco perché l'intero Effects11 è accessibile solo dal vecchio SDK di DirectX di giugno 2010 o da un post di un blog). Quindi, non lo miglioreranno più per supportare le prossime funzionalità di Direct3D. È anche impossibile utilizzarlo dalle applicazioni RT di Windows. – xoofx