Pregunta

Quiero empezar a desarrollar juegos utilizando XNA de Microsoft.Parte de eso es el desarrollo de Shader, pero no tengo idea de cómo empezar.Yo sé eso Compositor FX de nVidia es una gran herramienta para desarrollar sombreadores, pero no encontré mucho contenido útil y actualizado sobre cómo empezar.

¿Qué tutoriales recomendarías?

¿Fue útil?

Solución

El desarrollo de sombreadores en XNA (que obviamente usa DirectX) requiere conocimiento de HLSL o ensamblaje de sombreador.Recomiendo familiarizarse con el primero antes de sumergirse en el segundo.

Antes de escribir cualquier sombreador, es una buena idea tener un conocimiento sólido del proceso de sombreado e intentar comprender lo que es posible cuando se utilizan sombreadores programables.Cuando estás familiarizado con la vida de un píxel (desde los datos de origen hasta la pantalla), comprender ejemplos de sombreadores se vuelve mucho más fácil.

A continuación, intente escribir su propio HLSL que haga lo que el T&L fijo solía hacer el oleoducto, sólo para ensuciarte las manos.Este es el equivalente a un programa de "hola mundo" en el mundo del sombreador de vértices/píxeles.Cuando seas capaz de hacer eso y entiendas lo que has escrito, estarás listo para pasar a cosas más divertidas.

Como siguiente paso, es posible que desee simular funciones básicas. iluminación secular en uno de sus sombreadores desde una única fuente de luz.Luego puedes adaptar esto a lo largo de la pista para usar múltiples luces.Juega con los colores y el movimiento de las luces.Esto también le ayudará a familiarizarse con el uso de constantes de sombreado.

Cuando tengas un par de sombreadores básicos juntos, debes intentar que tu juego/motor utilice múltiples/diferentes sombreadores en diferentes objetos.Comience a agregar algunos otros bits como básicos bulto o mapas normales.

Cuando llegas a esta etapa, el mundo está a tus pies.Puedes empezar a sumergirte en algunos efectos originales e incluso considerar usar la GPU para más de lo que se pretendía originalmente.

Para aquellos que son un poco más avanzados, hay un par de buenos libros disponibles de forma gratuita en línea que contienen excelente información de Nvidia. aquí y aquí.

No olvide que hay una excelente serie de libros llamada ShaderX que cubre algunas cosas increíbles sobre sombreadores.hay 1, 2, 3, 4, 5 y 6 ya impreso, y 7 próximamente.

Buena suerte.Si tienes algunos sombreadores, me encantaría verlos :)

Otros consejos

Sólo me gustaría reiterar lo fantásticos que son los libros GPU Gems: un recurso verdaderamente fantástico para cualquier desarrollo gráfico serio.

Básicamente, OJ ha resumido un proceso de aprendizaje realmente bueno, solo agregaría que no se puede subestimar tener una buena base en matemáticas geométricas (vectores/matrices como mínimo), pero no es tan difícil como la gente a veces cree.Aprender qué son y qué hacen un producto escalar, un producto cruzado, un vector normal y una multiplicación matricial es un buen primer paso :).Intente comprender exactamente qué está sucediendo entre Mundo/Vista/Clip de proyección/espacio de pantalla, cuál es la división de perspectiva, etc.

Cuando estaba empezando a aprender, un buen ejercicio era implementar todo el proceso de T&L en el software, completo con recorte/selección, etc.Este es un proceso largo y puede que no parezca que valga la pena, ya que estoy seguro de que solo querrás sumergirte en las cosas divertidas, pero tener una comprensión adecuada de lo que está sucediendo es realmente útil y valdrá la pena cuando invariablemente te encuentres con cosas más insidiosas y difíciles. para diagnosticar errores.

Trate de no dejarse de lado con herramientas como FX Composer inicialmente, son útiles para la creación de prototipos, pero tener una base sólida en los conceptos básicos vale mucho más la pena a largo plazo.

Una de las mejores maneras de comenzar con los sombreadores es leer Introducción a la programación de juegos 3D con DirectX 9.0c, un enfoque de sombreador, de Frank Luna.El autor primero presenta DirectX y HLSL y luego revela gradualmente el poder del sombreador.Comienza con sombreadores muy simples, pero al final del libro ya sabes cómo crear iluminación, sombras, sistemas de partículas, etc.Gran libro.

OJ sugirió que leas la serie ShaderX, pero el material que contiene no es para principiantes, por lo que no te ayudará mucho cuando estés dando tus primeros pasos.

También he publicado un artículo. aquí sobre los mejores libros que te ayudarán a iniciarte en el desarrollo de juegos.

Me sumaría a los elogios recibidos por OJ: verdaderamente una buena respuesta.Aún así, una vez que tenga los conocimientos básicos, podrá aprender mucho y rápidamente descargando una de las siguientes dos excelentes herramientas:

Una vez hecho esto, vaya a sus bibliotecas de proyectos y comience a explorar ejemplos, comenzando con el sombreado básico y pasando a sombras, mapeo normal, materiales, efectos y todo lo que encuentre de interés.Tome un proyecto, comience a alterar los algoritmos de acuerdo con algunos objetivos que establezca y vea cómo lograrlo.Descubrirás que muchos de los ejemplos son realmente avanzados y te abrirán horizontes.

Divertirse

Si bien ya se han dado muchos buenos consejos, si te está costando mucho entender los pasos a seguir, Molino mental proporciona una forma visual de construir Shaders (la Artist Edition se incluye de forma gratuita con Fx Composer, ¡y también es gratuita!).

Si bien sería mejor que aprendieras el código HLSL directamente a largo plazo, Mental Mill puede generar estos archivos Fx por ti (para que puedas echar un vistazo a los cambios).Tenga en cuenta que, como todos los generadores de código, es un poco más detallado de lo que probablemente entenderá una vez que comprenda HLSL.

¡La progresión visual de los efectos, de un método a otro, es muy impresionante!

SAMS XNA desatada por Chad Carter es un excelente punto de partida para XNA y supone poco conocimiento de prácticas de desarrollo de juegos o matemáticas difíciles antes de comenzar.Tiene dos capítulos sobre sombreadores básicos y avanzados.

Como nota al margen, esté atento a Google para ver los tutoriales de WPF Shader, ahora utiliza la misma tecnología para permitir sombreadores de clientes en aplicaciones y tutoriales de WPF que creo que son en gran medida compatibles con XNA.

No he usado XNA ni DirectX.Pero, para conocer los conceptos básicos de la programación de sombreadores con Cg, el Tutorial de CG es el mejor libro que he encontrado.

También deberías mirar RenderMonkey.Es una buena herramienta.En lo que respecta a los libros, consulte las recetas de programación de juegos XNA 2.0 de Riemer Grootjans...gran libro.

Un pensamiento rápido sobre los editores de sombreadores visuales.Es muy divertido jugar con ese tipo de editores, pero realmente recomendaría seguir trabajando con HLSL basado en texto (allí tanto RM como FXC hacen el trabajo).Trabajo como desarrollador de juegos y he creado algunos sistemas de sombreado (el de Battlefield 2 y Farcry 2, por ejemplo) y, para ser honesto, he descubierto que HLSL es más valioso que cualquier red de sombreado gráfico hasta la fecha.

Hay cosas como seguir el flujo de ejecución, depurar el sombreador o poder iterar rápidamente casos de prueba que le brindan una idea que es prácticamente imposible de obtener a través de una herramienta visual.

Yo mismo he usado creadores de sombreadores visuales y me gustan, y un día, cuando el sombreado no sea tan crítico para el rendimiento como lo es hoy, podrían ser la herramienta adecuada para el trabajo.

..aunque supongo que veremos iluminación diferida y probablemente renderizado completo del software antes de que llegue ese día;)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top