1

我目前正在学习本教程

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

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

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

4

2 回答 2

7

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

float shear[] = { 
   1, Ky, 0, 0, 
   Kx, 1, 0, 0,
    0, 0, 1, 0,
    0, 0, 0, 1 };
glMultMatrixf(shear);
于 2009-04-11T22:12:58.360 回答
3

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

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

于 2009-04-11T22:12:00.063 回答