Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: DIVer on March 30, 2020, 02:37:35 PM

Title: Proyección de sombras
Post by: DIVer on March 30, 2020, 02:37:35 PM
Hola amicos, que tal? Mal, verdad? P..o bicho éste nos trae a todos de cabeza.
Mi duda: alguien ha conseguido algún tipo de shadow mapping con Bennu3D (m8ee++) o Yeti? Por el momento, mis intentos han sido en vano. Con B3D puedo posicionar los distintos tipos de luces en escena pero aún activando el correspondiente flag en la estructura _PLight (CastShadows) no logro proyecciones.
Con Yeti es más raro pues no encuentro dicha función ni en el doc ni en el source pero en el ejemplo del nariokart parece que tanto el modelo del kart como los camiones son afectados por las sombras del nivel... prueben a empujar los camiones o meterse por recovecos para ver a lo que me refiero. No sería exactamente lo que busco pero me llama la atención.
Hay alguna forma de conseguir sombras proyectadas con estas dll que consuman pocos recursos (tipo planar)?
Gracias mil. Salud y ánimo para todos, bennuseros.

EDITO: Al parecer, yeti3d.h sí contiene la variable "castshadow" (línea 151, en la estructura TYPE_ENTITY_3D) pero no consigo que rule. Agradezco cualquier ayuda, bien con Yeti o Bennu3D (preferiblemente Yeti por el tema de portabilidad a consolas).
Ejemplo gráfico de mis cochinas intenciones
(https://i.imgur.com/rFSYPcg.jpg)
No importa si las sombras son duras o suaves, quiero sombrasss  8)

EDITO2: Conseguí invocar en Yeti3D. Mi error era usar la variable como global, cuando en realidad lo que se declara como global es la entidad 3D y luego ligar el flag a ésta (p.ej. player.castshadow=1) y de la misma manera se puede usar player.emitlight para conseguir un efecto de linterna/antorcha. La pega es que debido a la naturaleza de celdas en los mapas del motor, tanto las luces como las sombras afectan individualmente celda por celda, dando lugar a un salto bastante feote. Tampoco se pueden combinar ambos efectos (p.ej un personaje que lleve un candil y proyecte su propia sombra).
Si alguien llega a dar con la manera en Bennu3D ruego me ilustre, por favor. Me estoy arrancando los pelos y no tengo demasiados.
He probado con las versiones de la dll disponibles en el ejemplo Kombat3D que parece estar más actualizada que la de "dll_3d_m8e_quake3 r08072012" y tampoco va.