我目前正在研究tutorial:
我完全理解如何旋转/缩放/翻译该教程中的每个字符串。
但有没有人知道以用户可配置的方式剪切/逐渐变细/扭曲每个琴弦需要哪些步骤?
据我所知,那些不是OpenGL调用的一部分,所以通常如何在3D文本上进行这样的转换?
答案 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
。但是,如果可能的话,我首先加载剪切等,然后在其上面应用其他东西。