Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





obtener normales de un terreno

Iniciado por marcode, 12 de Marzo de 2007, 11:17:53 PM

« anterior - próximo »

Tei

Cita de: "marcode"
Y es que el problema es que el normalizar requiere del cálculo de la raiz cuadrada,

Si ese es el problema, ¿no hay por ahi alguna forma de calcular la raiz cuadrada de forma rapida, o una guena aproximacion?. Aunque sea con un truco de ensamblador.

Googleando un poco me encuentro esto:

//! Fast square root for floating-point values.
inline_ float FastSqrt(float square)
{
#ifdef _MSC_VER
float retval;

__asm {
mov             eax, square
sub             eax, 0x3F800000
sar             eax, 1
add             eax, 0x3F800000
mov             [retval], eax
}
return retval;
#else
return sqrt(square);
#endif
}

Ruben

Hi,
para la raiz cuadrada uso una aproximacion que estaba en el quake III y que teoricamente, aunque lo desmintio, fue implementada por Carmack o alguno de los que le rodeaban.

Creo que es la misma que esta en ensamblador. De todas formas esto esta en mogollon de sitios,  asi que no he descubierto America...   :roll:

Si alguien no la encuentra que me lo diga y se la paso.

Un saludo,
Rubén






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.