【发布时间】:2009-04-12 06:42:36
【问题描述】:
我目前正在研究这个tutorial:
我完全理解如何旋转/缩放/翻译该教程中的每个字符串。
但是有谁知道以用户可配置的方式剪切/变细/扭曲每个琴弦需要哪些步骤?
据我所知,这些不是 OpenGL 调用的一部分,那么通常如何对 3D 文本进行此类转换?
【问题讨论】:
标签: opengl transformation
我目前正在研究这个tutorial:
我完全理解如何旋转/缩放/翻译该教程中的每个字符串。
但是有谁知道以用户可配置的方式剪切/变细/扭曲每个琴弦需要哪些步骤?
据我所知,这些不是 OpenGL 调用的一部分,那么通常如何对 3D 文本进行此类转换?
【问题讨论】:
标签: opengl transformation
您可以制作自己的转换矩阵。它们甚至不必“有意义”,你可以用你认为合适的任何奇怪的扭曲来填充它们。例如,剪切应该如下所示:
float shear[] = {
1, Ky, 0, 0,
Kx, 1, 0, 0,
0, 0, 1, 0,
0, 0, 0, 1 };
glMultMatrixf(shear);
【讨论】:
您需要操作模型视图矩阵。 This page about 矩阵可能有助于剪切、扭曲等。您使用 glLoadMatrix 加载新值。对于旋转、缩放和变换,只需使用普通的 OpenGL 函数即可。
编辑:如果矩阵中已有值,则可以使用glMultMatrix。但是,如果可能的话,我会先加载剪切力等,然后再应用其他东西。
【讨论】: