Cómo aprender sistemáticamente a escribir sombreadores en Unity 3D
Creo que debe haber muchos amigos que están desarrollando unity3d y que tienen preguntas sobre el sombreador. Unity3d es un motor relativamente nuevo y los juegos móviles se han vuelto populares recientemente. Muchos programadores de unity3d deberían haberse transferido de otras especialidades. Por ejemplo, yo solía dedicarme al desarrollo web Java, por lo que no sé mucho sobre este sistema de conocimiento.
Leí The Cg Tutorial en el sitio web oficial de nvidia: Capítulo 1. Introducción, que me dio una pequeña introducción.
Luego miré algunos ejemplos en Cg Programming/Unity (hay Muchos de ellos son incomprensibles). Combinando la documentación oficial de Unity3D, puedo escribir algunos sombreadores simples, pero no entiendo cosas complejas (por ejemplo, la última vez vi un ejemplo de reflexión especular que contenía algunas operaciones matriciales). pero no entiendo muy bien el algoritmo. ¿Cómo surgió? Por supuesto, fue un defecto que no fuera bueno en álgebra lineal).
Siento que la programación cg implica muchas cosas. Necesitas saber algo de matemáticas, física, programación, modelos 3D, etc. Hay muchas cosas que aprender que son complicadas y un poco confusas.
No quiero juntar ejemplos aquí y allá, copiar una sección aquí y copiar una sección allá para escribir un sombreador, sino escribir de acuerdo con mis propias ideas.
¿Existe algún buen libro que pueda ayudarme a aprender sistemáticamente este conocimiento (incluidos libros sobre gráficos por computadora, matemáticas, etc.)?
Este será un proceso de aprendizaje relativamente largo
(1) Libros importados y publicados en China
Hay muchos libros sobre gráficos importados o publicados en China, pero la mayoría de ellos en parte son basura, y es una pérdida de tiempo mirarlos
Conceptos básicos de matemáticas 3D: desarrollo de gráficos y juegos
Esto podría haberse utilizado para complementar conceptos básicos matemáticos, transformaciones matriciales, álgebra lineal, etc.
Graphics Shaders: teoría y práctica (segunda edición)
Este es un libro relativamente nuevo sobre sombreadores opengl
Conceptos básicos de programación y desarrollo de juegos 3D DirectX 9.0
Este es el único libro sobre d3d publicado o importado en China que se puede leer
(2) Para libros que no se importan en China, puedes descargar la versión electrónica o comprar la versión impresa en Taobao
OpenGL Shading Language
Puede considerarse la biblia de glsl
Introducción a la programación de juegos 3D: Con Directx 11
Se puede considerar la biblia de d3d11, esta es DirectX 9.0 Versión mejorada de los conceptos básicos de programación y desarrollo de juegos 3D
(3) Recomendación personal
Fundamentos matemáticos 3D: desarrollo de gráficos y juegos
Conceptos básicos de programación y desarrollo de juegos 3D DirectX 9.0
Introducción a la programación de juegos 3D: con Directx 11
Vinjn Zhang Jing 2013 -08-14
También tienes que leer el pdf en color gratuito de NVidia "GPU GEMS IIIIII" 》. Estos tres libros son muy interesantes. Los compré antes de que fueran gratuitos. Cada libro costaba más de 100 yuanes.
vczh 2014-12-06
Respóndelo tú mismo y agrega dos libros más:
1. "Unity Shaders and Effects Cookbook"
Habla principalmente sobre las habilidades de programación de Surface Shader de Unity, lo cual es muy práctico. Además de la iluminación, también existe la implementación de efectos de imagen en Unity. Altamente recomendado.
2. "Renderizado en tiempo real"
Compara el contenido de bajo nivel y sienta una base sólida (aún no lo he terminado)
Después descubriendo un nuevo buen libro, ¡sigue actualizando!
kUANG tOBY 2014-12-06
También estoy aprendiendo sombreadores recientemente y recomiendo algunos blogs para que el propietario del tema comience.
1. Primero, echemos un vistazo a los dos artículos más básicos para obtener una comprensión general de los sombreadores. Estos dos artículos analizarán la línea de código en el sombreador, explicarán la sintaxis y las funciones y la expandirán. Después de leer esto, tengo un conocimiento básico de los atributos, etiquetas, LOD, modelo de iluminación, etc. en el sombreador.
Una guía de introducción a Unity3D Shader que incluso los gatos pueden aprender (1)
Una guía de introducción a Unity3D Shader que incluso los gatos pueden aprender (2)
2. Luego puede ver el "Libro de recetas de efectos y sombreadores de Unity" o su versión china "Consejos para el desarrollo de efectos de pantalla y sombreadores de Unity". Este libro mostrará varios aspectos de los sombreadores, como el sombreado difuso, el mapeo de texturas, la reflexión especular, etc.
Quizás porque este libro cubre todos los aspectos, a veces se pasan por alto algunos detalles clave, lo que confunde a los principiantes. Hay un blogger que ha grabado notas sobre el estudio basado en este libro. Puede leer directamente el blog para aprender:
Descripción general de Unity Shaders e introducción al sombreado difuso
3. Capítulo 2 Durante el proceso de pasos, es posible que necesites consultar información más detallada sobre cada función conceptual en el sombreador. En este caso, necesitarás el manual oficial de Unity y el tutorial de Cg:
Unity - Manual: Shaders.
Unity - Manual: Referencia de Shader
El tutorial de Cg
4. Cuando aprendes a usar sombreadores, no solo quieres saber cómo usarlo, también puedes querer saber cómo usarlo. Si desea comprender el mecanismo detrás de esto, entonces este artículo No debe perderse el artículo:
Unity Shaders Un primer vistazo al mecanismo detrás de Surface Shader
5. estos, también estás familiarizado con el sombreador. Puedes intentar crear tu propio sombreador o puedes ir a Shadertoy BETA en busca de inspiración y experimentar el asombroso trabajo del sombreador.
Anónimo 2015-05-23
Recomiendo un libro, Unity Shader and Effect Cookbook, pero el Shader general se puede hacer con Shader Forge. Shader Forge es un editor de sombreado visual basado en la nariz. En pocas palabras, conecta varios efectos de acuerdo con cierta lógica en la interfaz gráfica y puede generar automáticamente código de sombreado.
Jingwen Zhao 2014-11-13
Solo si solo quieres aprender algo de programación de sombreadores:
1. en todo el proceso 3D El estado o papel en el proceso de establecimiento del concepto de línea de montaje es la base para comprender todo el 3D contemporáneo.
2. Utilice Unity como editor de sombreadores. En este aspecto, Unity es realmente bueno :). Analice y experimente con cada sombreador, desde simple hasta difícil, depure varios parámetros, use la interfaz WYSIWYG de Unity para comprender el significado del código interno del sombreador.
3. Para cada problema encontrado, busque posibles respuestas al problema en Internet. Por ejemplo, ¿cuál es la fórmula del algoritmo de luz difusa y para qué se utiliza la matriz del mapa de sombras?
Haga todo lo posible para encontrar información en inglés sobre este tema, será más fácil.
Solo tres puntos. El primer punto es la cara, que puede ayudarte a determinar la dirección. El tercer punto es saber dónde está tu posición a corto plazo. No hay ejemplos de libros. Solo sé que el primer libro que leí fue "Habilidades maestras de programación de juegos 3D". Más tarde, durante varias búsquedas, naturalmente entrarían varios libros en mi bolsillo y ninguno de ellos necesitaba ser leído. Pero después de leer una determinada parte de cada libro, cada libro debe considerarse terminado, ¿comprende?
Anónimo 2013-08-17
El sombreador de Unity envuelve ligeramente el CG. Similar a fx. En resumen, es un DSL que describe algunos procesos de renderizado y CG. Básicamente, aún necesitas comprender el lenguaje del sombreador y el proceso básico de renderizado. Los libros rivales mencionados por @张jingvinjn y @kUANG tOBY.
Si quieres aprender rápidamente, agregaré un libro: "GPU Programming And Cg Language Primer 1rd Edition". Los folletos escritos por gente de China son muy buenos.
Saber 2014-06-12
Este sitio web puede hacer referencia a Shadertoy BETA
Pero es el mismo problema, porque muchos códigos son fórmulas y se calcularon. Más tarde concluí que el proceso de cálculo no estaba reflejado en el código, por lo que no tenía idea de dónde venían esos extraños números y fórmulas.
Yinshi 2014-07-23
Recomendación de matemáticas: "Matemáticas para programación de juegos 3D y gráficos por computadora 3.º" Además, eche un vistazo a este plan de desarrollo recomendado para programadores de juegos (Actualizado 2013.3 .19)
Lao Zhonggu 2014-02-20
Recomiendo "Gráficos interactivos por computadora: método de arriba hacia abajo basado en OpenGL (6.a edición)" 》
Sabe mejor cuando se combina con "Tecnología de desarrollo de gráficos por computadora/gráficos 3D".
Al aprender sombreadores, encontrará algunos problemas matemáticos relativamente básicos, que básicamente pueden resolverse con Google, Wiki y Du Niang.
Anónimo 2014-06-12
"Libro de cocina de efectos y sombreadores de Unity" De hecho, este libro es una introducción al sombreador de superficies. Leí este libro primero, pero no lo es. Especial. Es práctico, pero debes leerlo. Explica algunos conocimientos introductorios, como la canalización y la sintaxis común. .
Ese libro no cubre en absoluto el lenguaje cg, el vértice y el sombreador de fragmentos. Personalmente creo que hay un libro bueno y más sistemático llamado "Programación Cg en Unity". Luego también leo más o menos "Dragon Book" y también estudio varios libros de álgebra lineal de números altos. Cuando tenga tiempo, lo abriré y leeré los sombreadores de otras personas, y haré un buen uso de estos recursos de la plataforma para obtener información. Barras de publicaciones del grupo QQ de tecnología relevante y otras plataformas. . Este es mi camino y un referente para los novatos. . ¡Anímense unos a otros!