Tengo dos modelos, A y B, y uno ligero, L. Me gustaría que el modelo A arroje una sombra sobre el modelo B. No quiero molestarme con los volúmenes de sombra o las sombras adecuadas por el momento, solo un simple la sombra circular será suficiente. El efecto es que el modelo A se trata como una esfera para propósitos de colada en la sombra.¿Cómo creo sombras baratas en OpenGL?
Así es como puedo imaginar el algoritmo:
Para cada triángulo en el modelo B, dibujar el triángulo. Proyecta un círculo en el triángulo a lo largo de la línea de la L a la A, incrementando el tamaño del círculo dependiendo de qué tan lejos esté el triángulo. Asegúrate de que el círculo esté recortado en los límites del triángulo (usando el buffer de esténcil de alguna manera, me imagino).
estoy trabajando con OpenGL y llano C.
Cualquier punteros en algunos documentos de referencia que puedo leer? O ideas de implementación?
Esto simplemente "aplana" el modelo en un plano ... bueno para proyectar una sombra sobre una superficie plana. El OP quiere renderizar la sombra en un objeto 3d con forma arbitraria. –
Esto supuestamente puede hacer eso: http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=27 Lamentablemente no puedo compilarlo con gcc. – stribika
Este método parece bueno, pero el costo de dibujar el modelo de origen una vez para cada cara en B parece alto. ¿Hay alguna manera de reducir la complejidad de este método? – Martin