私は現在、このチュートリアルを勉強しています:
そのチュートリアルで各文字列を回転/スケーリング/変換する方法を完全に理解しています。
しかし、ユーザーが構成可能な方法で各弦をせん断/テーパー/ツイストするために必要な手順を知っている人はいますか?
私の知る限り、これらは OpenGL 呼び出しの一部ではないため、通常、このような変換は 3D テキストでどのように行われますか?
私は現在、このチュートリアルを勉強しています:
そのチュートリアルで各文字列を回転/スケーリング/変換する方法を完全に理解しています。
しかし、ユーザーが構成可能な方法で各弦をせん断/テーパー/ツイストするために必要な手順を知っている人はいますか?
私の知る限り、これらは OpenGL 呼び出しの一部ではないため、通常、このような変換は 3D テキストでどのように行われますか?
独自の変換行列を作成できます。それらは「理にかなっている」必要さえありません。適切と思われる奇妙な歪みをそれらに取り込むことができます。たとえば、せん断は次のようになります。
float shear[] = {
1, Ky, 0, 0,
Kx, 1, 0, 0,
0, 0, 1, 0,
0, 0, 0, 1 };
glMultMatrixf(shear);
モデルビュー マトリックスを操作する必要があります。行列に関するこのページは、せん断、ねじれなどに役立つ場合がありglLoadMatrix
ます。新しい値を読み込むために使用します。回転、スケーリング、および変形には、通常の OpenGL 関数を使用するだけです。
編集:マトリックスにすでに値がある場合は、を使用できますglMultMatrix
。ただ、できればシャーなどで負荷をかけてから、その上に他のものを塗っていきます。