Cómo extraer los planos del frustum de visión de una modelview-projection matrix

Extrayendo planos del frustum de visión de la matriz modelview-projection

En este post voy a explicar cómo extraer los parámetros de cada plano del frustum de visión en espacio local de un objeto con una cierta matriz modelview-projection. Conocer los planos del frustum puede ser útil en algunos casos. El primero que se me ocurre es efectuar la técnica de frustum culling, a la que pronto dedicaré un post.

Continuar leyendo

Logaritmos en base arbitraria

La librería de matemáticas en muchos lenguajes (como C++) sólo nos proporciona funciones para el cálculo de logaritmos naturales (en base e) y logaritmos en base 10.

Cuando programamos, con frecuencia necesitamos calcular logaritmos en una base arbitraria. Por ejemplo, es común trabajar con árboles binarios y por lo tanto necesitar calcular logaritmos en base 2, o trabajar con octrees y necesitar logaritmos en base 8.

El logaritmo en una base arbitraria b, logb(x), se puede calcular utilizando los logaritmos de x y b en otra base arbitraria k utilizando la siguiente fórmula:

log_b(x)=log_k(x)/log_k(b)

donde k podría ser ‘e’ o 10, lo cual nos permite calcular logaritmos en base arbitraria usando las funciones estàndar de la librería de matemáticas.