(BORRADOR) i = 0x5f3759df - ( i >> 1 ); // Como Una Línea de Código Cambió Los Videojuegos Para Siempre
Posted: Mon Jun 19, 2023 8:14 pm
Todo Empezó con Un Videojuego Que Se Llama QUAKE
Has jugado o has escuchado sobre el videojuego que se llama QUAKE?
[/size]
El Fondo
Para un videojouego como QUAKE, hace falta mucho código. Especialmente porque es de 3 Dimensiones. Pero por qué? Porque hay que calcular trillones de veces cada segundo la distancia entre cada superficie, algo que está constantemente cambiando...
Para calcular distancia en 3D, se usa
Cómo sería posible entonces jugar algo así en un computador normal, especialmente uno hace X años?[/size]
La Solución?
Empezamos:
Por qué Las Raices Cuadradas Son Importantes?
El vector de un papel 2D encima de una mesa sería apuntando hacia arriba.
[Imagen4]
Ej: √4 = 2, su inverso es 1/√4 o 1/2
Para calcular eso, hay que usar dos operaciones, exponenciación (para raíz cuadrada es x[sup]1/2[/sup] ) y división. Haciendo eso trillones y trillones de veces sería demasiado para hasta el computador más potente del mundo. Hace falta un algoritmo que le hace MUCHO más rápido...
Has jugado o has escuchado sobre el videojuego que se llama QUAKE?
[/size]
El Fondo
Para un videojouego como QUAKE, hace falta mucho código. Especialmente porque es de 3 Dimensiones. Pero por qué? Porque hay que calcular trillones de veces cada segundo la distancia entre cada superficie, algo que está constantemente cambiando...
Para calcular distancia en 3D, se usa
Cómo sería posible entonces jugar algo así en un computador normal, especialmente uno hace X años?[/size]
La Solución?
Empezamos:
Por qué Las Raices Cuadradas Son Importantes?
- Distancias!
- Con el Teorema de Pitagoras, se puede calcular distancias entre dos puntos
- lado[sup]2[/sup] + lado[sup]2[/sup] = distancia[sup]2[/sup]
- Tomando la raíz cuadrado le da la distancia
- Imagen3
- Funciona para 2 Dimensiones...
- [/size]
- En videojuegos como Quake, queremos algo en 3 Dimensiones
- Hay que calcular un vector y 'normalizarlos' para poder calcularlos
- Eso se hace con el inverso del raíz cuadrado
El vector de un papel 2D encima de una mesa sería apuntando hacia arriba.
[Imagen4]
Ej: √4 = 2, su inverso es 1/√4 o 1/2
Para calcular eso, hay que usar dos operaciones, exponenciación (para raíz cuadrada es x[sup]1/2[/sup] ) y división. Haciendo eso trillones y trillones de veces sería demasiado para hasta el computador más potente del mundo. Hace falta un algoritmo que le hace MUCHO más rápido...