La transformación de texto en 3D usando OpenGL
-
09-09-2019 - |
Pregunta
Actualmente estoy estudiando esta tutorial :
y entiendo completamente cómo girar / escala / traducir cada una de las cadenas en ese tutorial.
Pero ¿alguien sabe qué medidas son necesarias para esquilar / cono / giro que cada una de las cuerdas de una manera configurable por el usuario?
Por lo que yo sé, los que no son parte de OpenGL llamadas, por lo que normalmente forma en que se realizan estas transformaciones en el texto 3D?
Solución
Usted puede hacer sus propias matrices de transformación. Ni siquiera tienen que "tener sentido", puede rellenar con todas las deformaciones extraño que parezca. Por ejemplo, cizalla debe ser algo como esto:
float shear[] = {
1, Ky, 0, 0,
Kx, 1, 0, 0,
0, 0, 1, 0,
0, 0, 0, 1 };
glMultMatrixf(shear);
Otros consejos
Es necesario manipular la matriz modelview. Esta página sobre matrices podrían ayudar con el cizallamiento, torsión, etc. Utiliza glLoadMatrix
para cargar los nuevos valores . Para rotar, escalar, y la transformación, sólo tiene que utilizar las funciones normales de OpenGL.
Editar: Si ya tiene los valores en la matriz, puede utilizar glMultMatrix
. Sin embargo, si es posible, comienzo por la carga de cizalla, etc., y luego aplicar las otras cosas por encima de eso.