0

たとえば、ポリゴン A を time= 1 秒の位置 (x,y) にしようとしています。次に、時間 = 2 秒のときに (x,y+2) の位置にある必要があります。次に、このようなポリゴンをさらに作成する予定です。また、これをアニメーション化し、ポリゴンが最初の位置から 2 番目の位置にスムーズに移動するようにしたいと考えています。ポリゴンがラウンドをジャンプするのではありません。

ここまでで、glutTimerFunction について学習しましたが、私の理解では、ポリゴンが位置 (x,y) と時間 T にあることを個別に伝えることはできません。むしろ、必要なすべてのポリゴンを作成する必要があるようです(約 500)、タイマーですべてのポリゴンを一度に循環させます。

glutTimerFunc を使用して、時間 T でポリゴンが位置 (x,y) にあることを明示的に伝える方法はありますか?

4

1 に答える 1

0

OpenGL は低レベル API であり、エンジンやフレームワークではありません。時間の経過とともに位置間の補間を自動的に行うための組み込みメソッドはありません。これは、エンジンの作成者として、適切と思われる方法で実装する必要があります。時間の経過に伴う 2 点間の線形補間はかなり簡単です (つまり、疑似コードでposition = startPos + ((endPos - startPos) * timeElapsed)。より複雑な曲線に沿った補間は本質的に同じですが、目的の曲線を表すために数学が少し複雑になるだけです。

すべてのポリゴンを手作業で反復処理して配置する必要があることは正しいです。これは、事前に作成されたエンジンの代わりに低レベルのグラフィックス API を使用するもう 1 つの機能です。

これらの詳細を抽象化するさまざまな複雑さ (および価格) のエンジンが多数ありますが、グラフィックス プログラミングを学習することが目標である場合は、これらのエンジンを敬遠してじっくりと学習することをお勧めします。

于 2012-12-02T06:01:35.970 に答える