Questa è una specie di domanda filosofica.Dove devo conservare il mio codice dello shader?
Mi stavo chiedendo, se ci sono modi eleganti per includere il codice shader in un progetto QtCreator standard. Gli unici due modi di cui sono a conoscenza sono:
Il codice dello shader si trova in un file separato, ad es. "fragmentshader.frag", questo file viene letto in runtime e il codice shader viene compilato e collegato.
Il codice dello shader è una stringa codificata in uno dei file di origine inclusi nel progetto.
Entrambi i modi mi sembrano un po 'fastidiosi. La prima possibilità richiede che i file sull'harddrive debbano essere nella stessa directory dell'eseguibile (quindi dovrei metterli in ciascuna directory di debug/release e finire con diversi duplicati del mio file shader) o in uno specifico hardcoded directory sul mio disco, che sembra male per la portabilità.
La seconda possibilità mi infastidisce, perché devi includere elementi come \n
nel codice dello shader, il che rende la formattazione di brutto.
Come è il modo "giusto" per farlo? Se è di qualche importanza, sto codificando in c/C++, OpenGL e GLSL.
EDIT: Ho continuato a utilizzare Google su questo ... Ho notato che ad esempio un file di icona può essere conservato in una cartella di risorse speciali nel progetto. In questo modo è un file e può essere modificato come tale, ma non deve ancora essere caricato in runtime. C'è un modo per farlo con gli shader?
questo è interisting! Lo proverò sicuramente! –
Potrebbe essere, che devi aggiungere '" 'all'inizio di ogni riga? Ho appena configurato il mio file pro per usare C++ 11 e all'interno del char array, se premo invio automaticamente mi dà un segno di virgolette. anche lo shader test non ha funzionato come hai postato qui) –
Ha funzionato comunque, senza il 'glsl()' e con le virgolette prima e dopo ogni riga. –