shadertoy - Recursos de aprendizaje de OpenGL 4.x
opengl shader descargar (11)
Sé que hay algunas dudas sobre aprender OpenGL. Esto es lo que sé:
- matemática para 3D
- Teoría 3D
Esto es lo que quiero saber: - Perfil de OpenGL 4.0 Core (o posterior) - Shader Language 400 (o posterior) - cada parte de arriba (si no funciona entre proveedores, no me molesta)
Esto es lo que NO QUIERO saber : canalización fija de funciones (¡no lo usará nunca!) - OpenGL''s anterior - Perfil de compatibilidad
Prefiero una porción más grande de información, como tutoriales, series de artículos, libros.
PD: si conoce los recursos del perfil básico de opengl 3.x, publíquelos también
A mí no me gustan las respuestas negativas, pero me temo que tengo que dar una a esta pregunta.
En última instancia, está solicitando material para principiantes que utilice características exclusivas de OpenGL versión 4.0 y superior. Bueno, veamos algunas de las características únicas de 4.x.
Quizás la característica más importante es la teselación. Qué significa eso? Significa primitivas tessellating para generar más primitivos. Antes de que uno pueda siquiera comenzar a entender lo que eso significa, uno debe primero entender cómo se obtienen los primitivos. Eso usa características de nivel pre-4.x.
Pero incluso con una comprensión firme de cómo funciona el renderizado, todavía hay un problema. Para tener una discusión significativa de sombreadores de teselación, primero debe tener una sólida comprensión de los algoritmos de teselación. Y ese no es un tema simple. Para un tutorial que le enseñe a un usuario a utilizar sombreadores de teselación, el tutorial primero tendrá que introducir curvas y parches de spline o superficies de subdivisión. Ambos son temas extensos que tienen numerosos libros blancos dedicados a ellos. Solo después de detallar los algoritmos, un usuario estará listo para ver cómo se implementan esos algoritmos en el sombreador de teselación.
O, para decirlo de otra manera, los sombreadores de teselado no son material para principiantes. Ni siquiera los calificaría como material de nivel intermedio.
Otra gran característica del hardware de nivel 4.x es el almacén de carga de imágenes de sombreado (y su compañero, contadores atómicos ), núcleo en 4.2. Permite algunas cosas muy ingeniosas, incluida la transparencia independiente del orden. Sin embargo, para que un usuario pueda comenzar a entender todas las peculiaridades que lo rodean, el usuario debe estar íntimamente familiarizado con el funcionamiento profundo del hardware moderno de sombreado. Entonces, cualquier tutorial primero tendría que explicar cómo funciona el hardware moderno basado en VLIW / SIMD, así como también cómo se usan los sombreadores con dicho hardware. Nuevamente, esto no es material trivial.
Otra gran característica del hardware 4.x es la representación indirecta. Es decir, poner los parámetros en una llamada glDraw en el objeto de memoria intermedia. El problema es que solo hay una razón para usar esta funcionalidad: porque la GPU generó datos directamente en uno o más almacenamientos intermedios para su posterior procesamiento. Y hacerlo generalmente implica alguna forma de operación GPGPU, que no es un tema de nivel principiante.
Todas estas características son útiles y tienen un propósito real. Pero ninguno de ellos debería ser usado por principiantes; en algunos casos, ni siquiera los programadores de nivel intermedio deben tocarlos.
Ahora, para ser completamente justos, existen algunas características 4.2 que no están basadas en hardware (por lo que a menudo se implementan en versiones 3.3 y anteriores) y son bastante útiles. Objetos de programa separados, por ejemplo. Estas características se activaron mientras escribía mis tutoriales basados en 3.3, y consideré volver sobre ellos e incorporar esta funcionalidad. La única razón por la que no lo hice es porque las implementaciones (controladores) todavía no son del todo estables con respecto a esta funcionalidad. Pero sería útil hacerlo.
El principal punto al que me estoy refiriendo es el siguiente: si estás en la etapa de conocimiento de gráficos en el que estás listo para aprovechar las características únicas del hardware GL 4.x, entonces también tienes suficiente experiencia en gráficos que no tienes. Necesito un material de instrucción paso a paso explícito para implementar las características del hardware de gráficos. Sería el tipo de persona que podría leer la especificación de extensión GL_ARB_tessellation_shader y comprender cómo hacer que hagan lo que necesita.
Dicho esto, si está interesado en material que enseña OpenGL core 3.0 o superior, OpenGL Wiki tiene una buena colección de dichos enlaces. En aras de una divulgación completa, escribí uno de ellos.
Creo que una de las mejores esperanzas que tienes es Joe''s Blog . Tiene algunos buenos artículos introductorios sobre OpenGL moderno, con más (supuestamente) en camino.
El punto principal de OpenGL 4 es la tesselación, por lo que me gustaría recomendar comenzar desde un tutorial independiente sobre la teselación de OpenGL 4, es decir: http://prideout.net/blog/?p=48
Después de los manuales y tutoriales, un buen seguimiento es echar un vistazo a los motores de código abierto que se basan en la parte superior del "nuevo" OpenGL 3/4. Como uno de los desarrolladores, señalaría Linderdaum Engine .
Excelente pregunta, de verdad. Como cuestión de hecho, la documentación es escasa.
Aquí hay una buena introducción: http://sites.google.com/site/opengltutorialsbyaks/
También le puede gustar el paquete de muestras de ogl4 de groovounet: http://www.g-truc.net/post-0310.html
pero me temo que eso es más o menos. Al acecho en los foros de debate OpenGL para más información ...
EDITAR: encontrado hace unos segundos. Directamente desde SIGGRAPH http://nvidia.fullviewmedia.com/siggraph2010/02-dev-barthold-lichtenbelt-mark-kilgard.html
La 5ª edición de OpenGL SuperBible ha sido lanzada recientemente. Esta edición refleja OpenGL 3.3 que se lanzó al mismo tiempo que OpenGL 4.0, el libro solo cubre el perfil principal y no asume conocimiento previo de OpenGL.
Eso es lo que obtuve de la descripción del libro de todos modos. Tengo la 4ª edición y es un recurso excelente para OpenGL 2.0, por lo que asumo que la nueva edición junto con el último libro OpenGL Shading Language sería justo lo que estás buscando.
Durian Software tiene una serie continua de tutoriales que cubre OpenGL moderno. Están orientados a OpenGL 2.0, pero evitan el uso de cualquier funcionalidad obsoleta en versiones posteriores.
No lo he leído, pero OpenGL 4.0 Shading Language Cookbook
Realmente hay muy poca diferencia entre OpenGL 3.0 y 4.1. Si se apega al perfil de núcleo 3.0 o posterior, no puede usar la interconexión de función fija. Lo que realmente está pidiendo es un tutorial de OpenGL que no utiliza la interconexión de funciones fija.
El excelente tutorial de Jason L. McKesson "Learning Modern 3D Graphics Programming" comienza usando shaders para los conceptos básicos más antiguos, y nunca toca el pipeline de funciones fijas.
http://www.arcsynthesis.org/gltut/index.html
Lo recomiendo altamente.
Recientemente me encontré con este libro en línea: OpenGLBook.com
Aún no lo he leído, pero la descripción dice que es un recurso de programación gratuito de OpenGL 4.0 en formato de libro en línea.
Swiftless está actualizando tutoriales para incluir nuevo contexto. Un buen tutorial de inicio que ha sido más sencillo con respecto a un VAO, VBO y render rápidos y simples se encuentra en swiftless.com
recurso gratuito:
http://www.opengl.org/sdk/docs/man4/
Están las páginas man para OpenGL 4.1, que resultan útiles al desarrollarlas.