¿Cuáles son algunos buenos recursos para aprender HLSL? [cerrado]


28

La última vez que intenté aprender HLSL, hice algunos sombreadores y entendí principalmente lo que estaba haciendo, pero aún sentía que estaba tropezando en la oscuridad. La mayoría de lo que aprendí lo obtuve de varias publicaciones de blog que no explicaban muy bien las cosas.

Además, la documentación en MSDN parece ser más una referencia de función.

¿Dónde puedo aprender no solo a escribir HLSL, sino también a aprender técnicas para escribir sombreadores?

Respuestas:


14

Esos dos anotados, constantemente vuelvo al siguiente artículo casi cada vez que escribo un sombreador genérico:


1
Y debo especificar que por "referencia de API" me refiero más a la sección "Guía de programación".
Sean James

6

Si lo que busca es "técnica de sombreado", en lugar de una mera referencia del lenguaje (lea la pregunta, personas), le recomiendo (de fácil a avanzado):

  • La sección Shader de las muestras XNA (obviamente requiere que use XNA)
  • La serie de tutoriales de Petri Wilhelmsen, que comienza aquí (se vuelve más avanzada más adelante; también está basada en XNA)
  • Las muestras agrupadas de Nvidia FX Composer

Y básicamente, ya sea: probar cosas y practicar, todo mientras absorbe cómo los "profesionales" hacen las cosas. O elija y elija cosas que sean similares a lo que está tratando de lograr y trabaje desde allí.


3

Cg no es técnicamente HLSL, pero sintácticamente son prácticamente idénticos.

Dicho esto, es un libro antiguo, pero NVIDIA ha hecho que " The Cg Tutorial " sea gratuito para leer en línea. Cubre los conceptos básicos de la canalización programable de una manera muy completa, y todo debería traducirse a HLSL con un mínimo esfuerzo.


1
nVidia y Microsoft fueron coautores de Cg / HLSL en el pasado. Le dieron diferentes nombres debido a la marca, pero el idioma es el mismo. Ahora, probablemente haya una ligera diferencia, pero es realmente mínima.
jacmoe

Ese es un libro fenomenal. Básicamente, cualquier cosa de Kilgard fue realmente buena en términos de tutoriales.
bobobobo

3

Si desea editar y ver los resultados en tiempo real, puede usar esta sencilla herramienta de Silverlight

http://shazzam-tool.com/
Shazamm 1.3 - Editor y editor de sombreadores HSLS


En cuanto a los tutoriales +1 para Riemers.net, pero también encontré esta serie de tutoriales XNA / HLSL aún mejor.

Aquí está la lista, los encontrará todos aquí: http://digitalerr0r.wordpress.com/tutorials/

  • 1 - Introducción a HSLS, luz ambiental
  • 2 - luz difusa
  • 3 - luz especular
  • 4 - Mapeo normal
  • 5 - Deformar sombreador de vértices
  • 6 - Demostración de Shader: paisaje simple de océano / isla
  • 7 - sombreado de Toon
  • 8 - Mapa de brillo
  • 9 - Proceso posterior al meneo
  • 10 - Invertir proceso posterior
  • 11 - Shader en escala de grises
  • 12 - Sombreador de distorsión de píxeles
  • 13 - Mapeo alfa
  • 14 - Transmisiones / topes de profundidad
  • 15 - Mapeo de entorno dinámico
  • 16 - Refracción
  • 17 - Punto de luz + Auto-sombreado
  • 18 - Luces de puntos múltiples
  • 19 - Luz ambiental hemisférica
  • 20 - Profundidad de campo
  • 21 - Transición: Fade
  • 22 - Transición: Cruz
  • 23 - Desenfoque
  • 24 - Bloom
  • 25 - Perlin Noise en la GPU
  • 26 - Ruido del mapa de relieve Perlin






0

No estoy seguro de a qué modelo de sombreador y versión de DirectX está apuntando, pero recomiendo el procesamiento y la computación prácticos con Direct3D11 . El libro lo guía a través de todos los detalles esenciales de DirectX11, sus recursos, todos los sombreadores de tubería diferentes, HLSL (un capítulo completo dedicado a esto) y cómo comenzar a implementar cosas como simulaciones de sistemas de partículas, teselación, procesamiento de imágenes, renderizado diferido y DirectCompute!



-1

para mí es más fácil aprender GLSL primero, y dado que HLSL y GLSL son similares. Una vez que comprenda todo el concepto, la tubería, el hardware y cómo funciona el lenguaje interno del sombreador, es fácil para usted usar otro idioma como HLSL o incluso Cg.

Propongo GLSL porque tiene un libro muy bueno como el libro naranja y rojo de openGL y es fácil de aprender para principiantes.


1
Esto no responde la pregunta.
PhillC

Sin embargo , no es una mala respuesta: gran parte de lo que subyace a GLSL es muy similar a HLSL y si el OP puede encontrar recursos para GLSL, entonces es válido hacer uso de ellos. Muchas de las principales diferencias entre el código del sombreador en sí mismo son solo una cuestión de conversión mental una vez que sabes lo que estás viendo. La idea de aprender GLSL primero falla porque uno también tendría que aprender OpenGL (no está mal en sí mismo; es útil saber ambos) y reescribir el programa (malo), pero no hay absolutamente nada de malo en usar el material GLSL para complementar el aprendizaje HLSL (y viceversa, donde sea relevante).
Maximus Minimus
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.