使用OpenGL转换3D文本

时间:2009-04-11 21:42:11

标签: opengl transformation

我目前正在研究tutorial

我完全理解如何旋转/缩放/翻译该教程中的每个字符串。

但有没有人知道以用户可配置的方式剪切/逐渐变细/扭曲每个琴弦需要哪些步骤?

据我所知,那些不是OpenGL调用的一部分,所以通常如何在3D文本上进行这样的转换?

2 个答案:

答案 0 :(得分:7)

您可以制作自己的转换矩阵。它们甚至不必“有意义”,你可以用你认为合适的任何奇怪的扭曲来填充它们。例如,剪切应该看起来像这样:

float shear[] = { 
   1, Ky, 0, 0, 
   Kx, 1, 0, 0,
    0, 0, 1, 0,
    0, 0, 0, 1 };
glMultMatrixf(shear);

答案 1 :(得分:3)

您需要操纵模型视图矩阵。关于矩阵的This page可能有助于剪切,扭曲等。您可以使用glLoadMatrix加载新值。对于旋转,缩放和变换,只需使用普通的OpenGL函数。

编辑:如果矩阵中已有值,则可以使用glMultMatrix。但是,如果可能的话,我首先加载剪切等,然后在其上面应用其他东西。