OpenGL ES 2.0: repository di Quality Shader [chiuso]


10

Potrei gentilmente chiedere, di suggerirmi un repository di vertex di alta qualità OpenGL (OpenGL ES 2.0) e shader di frammenti , per favore?

Sto cercando shader ligting basati su pixel (come phong ) e simili. Sarebbe bello vederne di più, poter scegliere tra prestazioni di qualità vs shader.

Risposte:


16

Gli shader di qualsiasi complessità non sono generalmente il tipo di cose che puoi scaricare e inserire nel tuo progetto come ingranaggi intercambiabili. In genere gli effetti più interessanti richiedono un discreto accoppiamento con il sottosistema di rendering sul lato CPU per ottenere i loro risultati. Lo stesso vale in generale per le prestazioni: i compromessi delle prestazioni in termini di accuratezza e qualità rispetto al conteggio delle istruzioni o al pipeline tendono ad essere radicati in requisiti specifici dell'applicazione.

Di conseguenza non c'è davvero molto in termini di tipo di repository a cui stai pensando. I libri GPU Gems offrono una buona raccolta di descrizioni di tecniche in stile ricettario con esempi sia di gioco che di codice ombreggiato che potresti voler dare un'occhiata, però. Così fanno i libri di Shader X.


+1 per un commento molto prezioso. Ciao Josh. Grazie per la risposta. Bene, se una persona è all'inizio dello sviluppo dello shader, sarebbe davvero utile vedere come vengono implementati alcuni shader standard: ad esempio come viene eseguito Phong (che è un algoritmo molto standard), pixel shader di illuminazione, ecc. Capisco il tuo punto e le fonti che hai fornito suonano come un buon materiale. Li darò un'occhiata. Finora, le migliori risorse che ho trovato sono: il libro OpenGL Shading Language e il sito Lighthouse 3D.
Bunkai.Satori,

2
Gradirei quindi ancora il deposito di shader di buona qualità , che illustrano lo sviluppo di effetti interessanti. Gli script possono essere utilizzati come base per combinarli e creare nuovi effetti interessanti.
Bunkai.Satori

@Bunkai Satori Penso che Josh intendesse che, come motivo, questo tipo di repository non esiste principalmente.
L'anatra comunista

@L'anatra comunista: ciao, grazie per il tuo commento. Lo capisco. Sono grato per ogni risposta qui, e anche per quella di Josh. Tuttavia, quello che mi è venuto in mente è che internet è così grande, che forse qualcuno diverso da Josh ricorderà di aver visto alcuni posti dove farsi ispirare da shader particolari. Posso immaginare che un'azienda / individuo che usa molto gli shader li raccolga e alcuni di loro potrebbero anche pubblicarli. La risposta di Josh è comunque il mio candidato per la risposta accettata , quindi se nessuno contribuisce a breve, chiuderò questa discussione segnando la sua risposta.
Bunkai.Satori,

13

Non molto, ma almeno un paio di shader di base per iniziare possono anche essere trovati tra i miei file di motori di ricerca aperti:

i file .vsh contengono gli shader di vertici e i file .fsh gli shader di frammenti, ma immagino che questo sia auto-esplicativo ...

Sull'hardware mobile attuale, dovresti fare il più possibile all'interno del vertex shader e il trucco per giochi belli e veloci è scrivere molti shader molto specializzati facendo sempre esattamente ciò che è necessario per far apparire qualcosa nel modo in cui è destinata. Almeno questa è la mia esperienza con il mio iPhone 3GS, che presenta la stessa gpu dell'iPhone 4 ma ha meno pixel per cui fornire dati. Molto probabilmente questo è già molto meglio con tegra 2 e persino meglio con il chip A5 di mele, ma per ora, questo significa che non dovresti provare a trasferire shader per desktop gpus su telefoni cellulari e aspettarti una grande prestazione: P Questo significa anche che a schermo intero gli effetti, specialmente sui dispositivi con un display ad alta risoluzione, tendono ad essere lenti.

Spero che questo aiuti anche un po ':).


Ciao, benvenuto nel GDSE. Bella risposta!
Notabene,

+1 per una buona risposta. Ciao Slin, e benvenuto su GDSE. Grazie per questa buona risposta e per le cose di esempio. Sono felice, hai condiviso la tua esperienza con la programmazione di shader per piattaforma mobile. In questo momento, faccio tutto lo sviluppo su PC, pensando di portarlo in seguito. Quindi la tua esperienza sarà apprezzata allora.
Bunkai.Satori,

9

potrebbe strappare parte della conoscenza arcana da qui http://glslsandbox.com/


Ciao UlanB. Questa collezione ha un bell'aspetto. Potete per favore dirmi come posso scaricare questi shader. Viene visualizzato un messaggio di errore "WebGL non supportato" quando provo ad aprire una delle raccolte di shader in Chrome. Grazie.
Vinodtiru,

Mi dispiace, non posso davvero darti supporto tecnico sulla compatibilità webgl. Probabilmente il tuo hardware che non supporta webgl. Anche Linux Chrome Builds non lo supporta ancora.
UlanB,

4

Quando stavo cercando come implementare la nebbia in OpenGL ES 2.0, ho trovato il collegamento alla funzionalità di implementazione del progetto compatibile con le versioni precedenti di OpenGL ES 2.0 , che non è in OpenGL ES 2.0, ad esempio l'ombreggiatura fog, per vertice, per frammento (pixel). Puoi guardare direttamente nella fonte degli shader .

Ho implementato anche l'illuminazione per frammento, modificando questo esempio creato da ClockworkCoders (non OpenGL ES 2.0).

Puoi anche dare un'occhiata a questi fantastici tutorial di lighthouse3D


+1 per un buon commento. Ciao Martin, grazie per i tuoi collegamenti. sì, ho trovato Lighthouse3D e sembra una risorsa di qualità.
Bunkai.Satori

1

Il pacchetto AMD RenderMonkey contiene shader molto avanzati per OpenGL ES 2.0 tra i file di esempio.

Dai un'occhiata in particolare all'esempio dello shader Renderman nella directory degli esempi GLES, che fornisce uno shader OpenGL ES 2.0 più o meno bare-bone che potrebbe servire da buon punto di partenza. E potrebbe anche darti una buona idea del perché non ci sono molti esempi taglia e incolla di buoni shader là fuori. Il problema di base: che gli shader sono strettamente associati alla configurazione del server OpenGL ES e ai modelli che vengono renderizzati su di essi. Ancora. Lo shader Renderman è un ottimo punto di partenza, se puoi staccarlo dallo strumento REnderMonkey.


1

Dai un'occhiata a GPUImage ( https://github.com/BradLarson/GPUImage ), probabilmente la più completa raccolta di shader che ho trovato sul web finora. Poiché sono tutti progettati per funzionare con GPUImage, condividono tutti la stessa struttura, quindi se si adatta la stessa struttura nella propria applicazione / gioco, si dovrebbe essere in grado di importare rapidamente numerosi effetti diversi.

Saluti!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.