Autor Tema: mod_mathi  (Leído 3165 veces)

Windgate

  • Hero Member
  • *****
  • Mensajes: 2930
  • Karma: 124
    • TRINIT Asociación de Informáticos de Zaragoza
mod_mathi
« en: Octubre 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
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

SplinterGU

  • Hero Member
  • *****
  • Mensajes: 12887
  • Karma: 377
Re: mod_mathi
« Respuesta #1 en: Octubre 26, 2010, 09:37:35 pm »
juaz....

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
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Windgate

  • Hero Member
  • *****
  • Mensajes: 2930
  • Karma: 124
    • TRINIT Asociación de Informáticos de Zaragoza
Re: mod_mathi
« Respuesta #2 en: Octubre 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?
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

SplinterGU

  • Hero Member
  • *****
  • Mensajes: 12887
  • Karma: 377
Re: mod_mathi
« Respuesta #3 en: Octubre 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
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Drumpi

  • Hero Member
  • *****
  • Mensajes: 6340
  • Karma: 162
  • Odio el periodo "entre proyectos"
    • La web de Drumpi
Re: mod_mathi
« Respuesta #4 en: Octubre 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)
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

SplinterGU

  • Hero Member
  • *****
  • Mensajes: 12887
  • Karma: 377
Re: mod_mathi
« Respuesta #5 en: Octubre 28, 2010, 12:28:52 am »
nop!

mod_mathi es compatible con DIV, mod_math es compatible con fenix.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Windgate

  • Hero Member
  • *****
  • Mensajes: 2930
  • Karma: 124
    • TRINIT Asociación de Informáticos de Zaragoza
Re: mod_mathi
« Respuesta #6 en: Octubre 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?
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

SplinterGU

  • Hero Member
  • *****
  • Mensajes: 12887
  • Karma: 377
Re: mod_mathi
« Respuesta #7 en: Octubre 28, 2010, 02:43:56 pm »
me temo que no.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Windgate

  • Hero Member
  • *****
  • Mensajes: 2930
  • Karma: 124
    • TRINIT Asociación de Informáticos de Zaragoza
Re: mod_mathi
« Respuesta #8 en: Octubre 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.
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

SplinterGU

  • Hero Member
  • *****
  • Mensajes: 12887
  • Karma: 377
Re: mod_mathi
« Respuesta #9 en: Octubre 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.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

l1nk3rn3l

  • Hero Member
  • *****
  • Mensajes: 2004
  • Karma: 257
Re: mod_mathi
« Respuesta #10 en: Noviembre 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?

Windgate

  • Hero Member
  • *****
  • Mensajes: 2930
  • Karma: 124
    • TRINIT Asociación de Informáticos de Zaragoza
Re: mod_mathi
« Respuesta #11 en: Noviembre 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.
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

l1nk3rn3l

  • Hero Member
  • *****
  • Mensajes: 2004
  • Karma: 257
Re: mod_mathi
« Respuesta #12 en: Noviembre 03, 2010, 10:55:43 pm »

Windgate

  • Hero Member
  • *****
  • Mensajes: 2930
  • Karma: 124
    • TRINIT Asociación de Informáticos de Zaragoza
Re: mod_mathi
« Respuesta #13 en: Noviembre 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.
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es