Estoy interesado en cel-shading (o toon shading) y tenía algunas preguntas al respecto:
- que tal es con modelos texturizados? lo digo por que solo he visto donuts con este efecto xDDDDD bueno, aparte del genial XIII
- va por vertex o pixel shaders?
- es bueno para escenarios también ? o mejor aplicarlo sólo a personajes?
- algún tutorial sobre el tema? es que todo lo que veo en D3D son codigos de ejemplo, y como de shaders tengo poca ideas, puesss.. ;.
saludos
Ola,
para ver como queda con texturas le puedes echar un vistazo al Lost Idols de Horux interactive que nos dejaron beta-testear hace un tiempo :D
Sync
Puedes hacerlo sin v/p shaders; el método más sencillo sería calcular por cada vértice el coseno entre la normal y el vector que mira hacia la luz. Ese coseno lo usarías para indexar en una textura unidimensional donde tendrías un degradado con la iluminación a tu gusto (2-3 colores p.ej, para obtener el efecto toon).
El tema es que con shaders eso puedes hacerlo a nivel de pixel, con algunos efectos más y por tanto con mejores resultados.
Eso para el sombreado, luego puedes meterte en otros temas como calcular el contorno del objeto y dibujarlo de un grueso negro, etc.
sip, me interesa todo eso: lo del contorno y demás. voy a echarle un ojo al lost idols ese =)
hay muchas maneras de hacer toon,
- la que comenta ithaqua
- usar la normal del vertice para indexar en un cubemap
- pintar un modelo un pelin escalado y negro con las normales invertidos
- usar pixel shaders para hacer diferencias en zbuffer (analogo a un metodo para hacerlo por software)
- etc...
Cada una tiene sus ventajas e inconvenientes
se puede hacer con vertex shaders? es que pixel shaders de momento las tarjetas que lo soportan la tienen una minoría de gente. O sino, sabes de alguna técnica que de buen resultado y que permita lo del "contorno" ?