OpenGL ES 2.0: repositorio de sombreadores de calidad [cerrado]

10

¿Puedo pedir amablemente que me sugiera un repositorio de sombreadores de vértices y fragmentos OpenGL (OpenGL ES 2.0) de alta calidad , por favor?

Estoy buscando sombreadores de ligado basados ​​en píxeles (como phong ) y similares. Sería bueno ver más de ellos, para poder elegir entre la calidad y el rendimiento del sombreador.

Bunkai.Satori
fuente

Respuestas:

16

Los sombreadores de cualquier complejidad generalmente no son el tipo de cosas que puede descargar y colocar en su proyecto como engranajes intercambiables. Por lo general, los efectos más interesantes requieren un poco de acoplamiento al subsistema de representación del lado de la CPU para lograr sus resultados. Lo mismo ocurre generalmente con el rendimiento: las compensaciones de rendimiento con respecto a la precisión y la calidad sobre el recuento de instrucciones o la canalización tienden a basarse en requisitos específicos de la aplicación.

Como resultado, realmente no hay mucho en el tipo de repositorios en los que está pensando. Sin embargo, los libros de GPU Gems ofrecen una buena colección de descripciones de técnicas de estilo de libro de cocina con ejemplos de códigos sombreados y de juegos que quizás desee ver. Lo mismo hacen los libros de Shader X.


fuente
+1 por comentario muy valioso. Hola Josh. Gracias por su respuesta. Bueno, si una persona está en el comienzo del desarrollo del sombreador, realmente sería útil ver cómo se implementan algunos sombreadores estándar: por ejemplo, cómo se realiza Phong (que es un algoritmo muy estándar), sombreadores de iluminación de píxeles, etc. Entiendo su punto, y las fuentes que proporcionó suenan como un buen material. Los echaré un vistazo. Hasta ahora, los mejores recursos que he encontrado son: el libro OpenGL Shading Language y el sitio Lighthouse 3D.
Bunkai.Satori
2
Por lo tanto, me gustaría recibir repositorios de sombreadores de buena calidad , que ilustran el desarrollo de efectos interesantes. Los scripts se pueden utilizar como sótano para combinarlos y crear nuevos efectos atractivos.
Bunkai.Satori
@Bunkai Satori Creo que Josh quiso decir eso como una razón por la cual este tipo de repositorios no existen en su mayoría.
El pato comunista
@El pato comunista: Hola, gracias por tu comentario. Entiendo que. Estoy agradecido por cada respuesta aquí, y también por la de Josh. Sin embargo, lo que me vino a la mente es que Internet es tan grande que quizás alguien que no sea Josh recuerde haber visto algunos lugares para inspirarse con sombreadores particulares. Me imagino que una empresa / individuo que usa sombreadores mucho los recolectaría, y algunos de ellos también podrían publicarlos. La respuesta de Josh es mi candidato para la Respuesta aceptada de todos modos, por lo que si nadie contribuye en breve, cerraré este hilo marcando su respuesta.
Bunkai.Satori
13

No mucho, pero al menos un par de sombreadores básicos para comenzar también se pueden encontrar entre mis archivos de motores de sorce abiertos:

los archivos .vsh contienen los sombreadores de vértices y los archivos .fsh los sombreadores de fragmentos, pero supongo que eso se explica por sí mismo ...

En el hardware móvil actual, debe hacer todo lo posible dentro del sombreador de vértices y el truco para juegos de gran apariencia y rápidos es escribir muchos sombreadores muy especializados haciendo siempre exactamente lo que se necesita para hacer que algo se vea como debe ser. Al menos esa es mi experiencia con mi iPhone 3GS, que cuenta con la misma GPU que el iPhone 4 pero tiene menos píxeles para entregar datos. Esto probablemente ya sea mucho mejor con tegra 2 e incluso mejor con el chip Apple A5, pero por ahora, esto significa que no debe intentar portar sombreadores para gpus de escritorio a teléfonos móviles y esperar un gran rendimiento: P Esto también significa que la pantalla completa Los efectos, especialmente en dispositivos con una pantalla de alta resolución, tienden a ser lentos.

Espero que esto también ayude un poco :).

Slin
fuente
Hola, bienvenido al GDSE. ¡Buena respuesta!
Notabene
+1 por buena respuesta. Hola Slin, y bienvenido a GDSE. Gracias por esta buena respuesta y por el material de ejemplo. Me alegra que haya compartido su experiencia con la programación de sombreadores para la plataforma móvil. En este momento, hago todo el desarrollo en PC, planeando portarlo más tarde. Entonces su experiencia será apreciada entonces.
Bunkai.Satori
9

podría obtener algo del conocimiento arcano de aquí http://glslsandbox.com/

UlanB
fuente
Hola ulan Esta colección se ve genial. ¿Pueden decirme cómo puedo descargar estos sombreadores? Recibo un error que dice "WebGL no es compatible" cuando intento abrir cualquiera de la colección de sombreadores en Chrome. Gracias.
Vinodtiru
Lo siento, no puedo darte soporte técnico sobre compatibilidad webgl. Probablemente su hardware que no es compatible con webgl. También Linux Chrome Builds aún no lo admite.
UlanB
4

Cuando estaba buscando cómo implementar niebla en OpenGL ES 2.0, encontré un enlace a la funcionalidad de implementación de proyectos compatibles con versiones anteriores de OpenGL ES 2.0 , que no está en OpenGL ES 2.0, por ejemplo, sombreado de niebla, por vértice, por fragmento (píxel). Puedes mirar directamente en la fuente de sombreadores .

También he estado implementando iluminación por fragmento, modificando este ejemplo creado por ClockworkCoders (no OpenGL ES 2.0).

También puedes echar un vistazo a estos excelentes tutoriales de lighthouse3D

Martin Pilch
fuente
+1 por buen comentario. Hola Martin, gracias por tus enlaces. Sí, encontré Lighthouse3D, y parece un recurso de calidad.
Bunkai.Satori
1

El paquete AMD RenderMonkey contiene sombreadores muy avanzados para OpenGL ES 2.0 entre los archivos de muestra.

Eche un vistazo especialmente al ejemplo de sombreador Renderman en el directorio de muestras GLES, que proporciona un sombreador OpenGL ES 2.0 más o menos básico que podría servir como un buen punto de partida. Y también podría darle una buena idea de por qué no hay muchos ejemplos de buenos sombreadores para cortar y pegar. El problema básico: que los sombreadores están estrechamente vinculados con la configuración del servidor OpenGL ES y los modelos que se representan en ellos. Todavía. El sombreador Renderman es un excelente punto de partida, si puede sacarlo de la herramienta REnderMonkey.

rerdavies
fuente
1

Echa un vistazo a GPUImage ( https://github.com/BradLarson/GPUImage ), es probablemente la colección más completa de sombreadores que he encontrado en la web hasta ahora. Como están diseñados para funcionar con GPUImage, todos comparten la misma estructura, por lo que si adapta la misma estructura en su aplicación / juego, debería poder importar rápidamente una serie de efectos diferentes.

¡Salud!

ekscrypto
fuente