(BORRADOR) i = 0x5f3759df - ( i >> 1 ); // Como Una Línea de Código Cambió Los Videojuegos Para Siempre

Learn How to Learn - Aprender a Aprender
Post Reply
User avatar
Teacher
Site Admin
Posts: 1843
Joined: Mon Aug 03, 2020 11:57 am

Todo Empezó con Un Videojuego Que Se Llama QUAKE

Has jugado o has escuchado sobre el videojuego que se llama QUAKE?
Quake-VideoJuego.jpeg
Quake-VideoJuego.jpeg (158.71 KiB) Viewed 5 times
[/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...
3dvectors.png
3dvectors.png (86.24 KiB) Viewed 5 times
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...
      • DistancePythagorean.png
        DistancePythagorean.png (10.14 KiB) Viewed 5 times
        [/size]
Inverso del Raíz Cuadrado (1/√x) - Distancia en 3 Dimensiones!
  • 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
Vector
Vector
vectors.png (8.5 KiB) Viewed 5 times
Un vector es como una flecha, con dirección y magnitud.[/size]
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... 
Post Reply