Bennu Game Development

Foros en Español => Extensiones => Topic started by: Windgate on October 26, 2010, 09:30:28 PM

Title: mod_mathi
Post by: Windgate on October 26, 2010, 09:30:28 PM
mod_mathi.dll

He encontrado esta dll en la última versión del Bennupack, no encuentro información sobre ella en la wiki, ¿En qué consiste?

Por cierto, echo de menos una mod_math alternativa que calcule las funciones trigonométricas recibiendo grados y no milésimas, Bennu3D la pide a gritos, así que si alguien se anima... xD
Title: Re: mod_mathi
Post by: SplinterGU on October 26, 2010, 09:37:35 PM
juaz....

Quote from: Windgate on October 26, 2010, 09:30:28 PM
Por cierto, echo de menos una mod_math alternativa que calcule las funciones trigonométricas recibiendo grados y no milésimas, Bennu3D la pide a gritos, así que si alguien se anima... xD

creo que te estas refiriendo a la...


























mod_mathi
Title: Re: mod_mathi
Post by: Windgate on October 27, 2010, 11:19:12 AM
Eso me excita mucho... ¿Pero entonces tiene exactamente las mismas funciones que la mod_math sólo que admite parámetros float y trabaja con grados en lugar de milésimas?

¿O tiene alguna peculiaridad singular adicional?
Title: Re: mod_mathi
Post by: SplinterGU on October 27, 2010, 02:29:53 PM
bueno, no exactamente, la mod_math usa floats.

el log del cambio dice...

- Add atan2 to mod_math
- Add mod_mathi for compatiblity with DIV in cos, sin, tan, acos, asin, atan, atan2
Title: Re: mod_mathi
Post by: Drumpi on October 27, 2010, 11:48:08 PM
O sea, que mod_mathi se usa como se venía haciendo hasta ahora, y mod_math es nueva y usa floats ¿no?
Por compatibilidad se podría haber mantenido mod_math y haber llamado a la nueva mod_mathf, ahora hay que cambiar todos los códigos de los juegos (o al menos su bgdc.import :P)
Title: Re: mod_mathi
Post by: SplinterGU on October 28, 2010, 12:28:52 AM
nop!

mod_mathi es compatible con DIV, mod_math es compatible con fenix.
Title: Re: mod_mathi
Post by: Windgate on October 28, 2010, 07:35:19 AM
Pero yo lo que busco son funciones trigonométricas que trabajen con grados, no con milésimas.

En Bennu3D todo funciona con grados (float) y a la hora de calcular un seno hay que andar haciendo:

position.x = sin ( 1000 * rotation.y );

Y siempre estar multiplicando y dividiendo por 1000.

¿mod_mathi serviría para eso entonces o no?
Title: Re: mod_mathi
Post by: SplinterGU on October 28, 2010, 02:43:56 PM
me temo que no.
Title: Re: mod_mathi
Post by: Windgate on October 28, 2010, 07:29:26 PM
   static int math_cos( INSTANCE * my, int * params )
71   {
72       float param = *( float * ) & params[0] ;
73       float res = ( float )cos(( double )( param * M_PI / 180000.0 ) ) ;
74       return *(( int * )&res ) ;
75   }

Pues sería tan sencillo como convertir el 180000.0 en una constante del módulo y hacer que valga 180.0

Todas las funciones de trigonometría tienen ese 180000.0 y eso es lo que hace que trabaje en milésimas en lugar de grados.

Opino que debería estar la dll para trabajar así, sería bastante enriquecedor para el motor porque el cálculo de senos y cosenos no debería estar limitado sólamente por la implementación actual de angle, hay muchos otros usos habituales y no usan milésimas.
Title: Re: mod_mathi
Post by: SplinterGU on October 28, 2010, 07:40:10 PM
las funciones trigonometricas existentes trabajan en conjunto con el sistema de grados de todo el render.

tienen un porque de ser como son.

si tu no usas angle en tus proyectos, eres libre de montarte tu propia dll modificando la actual.
Title: Re: mod_mathi
Post by: l1nk3rn3l on November 02, 2010, 03:33:44 PM
si splinter tiene razon , bueno pasame las sugerencias y lo incluire en la dll por defecto..

incluyendo la que pasaste claro, que otras pueden ser?
Title: Re: mod_mathi
Post by: Windgate on November 03, 2010, 12:15:31 AM
Busca este valor:

180000.0

Y sustituye todos por:

180.0

Con tener sin, cos, tan, asin, acos, atan es suficiente.
Title: Re: mod_mathi
Post by: l1nk3rn3l on November 03, 2010, 10:55:43 PM
http://code.google.com/p/otherfenixbennuprojects/downloads/list

listo
Title: Re: mod_mathi
Post by: Windgate on November 03, 2010, 11:52:55 PM
Ya tienes el karma, la pruebo mañana, formará parte de la librería 3Dit en sustitución de la mod_math normal...

Estaba ya harto de escribir tantas y tantas veces el * 1000 para hacer bien la trigonometría, además de menos código más eficiencia porque se ahorra ese cálculo a razón de hasta cientos de veces por frame.