私はタイトルが混乱していると確信していますが、私たちがやろうとしていることは、実際にはかなり単純です。計算を説明するには、中心線と直径の2つの端点を与えられた3次元空間で描かれた円柱を考えます。そのシルエットを画面の平面に描きますが、端が四角形になるように、互いに平行に、画面の平面に平行にします。それが私たちが必要とする「見た目」です。OpenGL ESを使用して、端が常に平面に平行な3D空間にフラットリボン(クワッド)を描画するにはどうすればよいですか?
これを行うには、単純に、...この効果を得るために、平らな照明のシリンダーを描きます。しかし、実際に3Dシェーディングを表示していないので、シリンダーの表面を構成する三角形をすべて計算すると、過剰なオーバーキルになります。
技術的には、単一のクワッド、または最大で2つのトライアングルが必要です。概念的な円柱が画面に平行であれば、結果はちょうど矩形になります。円筒がスクリーンの方に、またはスクリーンから離れるように傾けられている場合、シルエットは単純な台形になります。画面にここでは一例だ...
- A.パラレル、近い
- 画面へのB.パラレル、左上(近く)下に離れて画面から遠い
- C.アングル、右回転(遠)画面、左下(はるか)に向けた
- D.アングル右上(近く)
に、我々はすべてのだろう基本的に、リボンの「幅」と一緒に、3D空間内の中心線(赤色)の終点を指定します。しかし、そのすべてを行うには、3D空間内の端点を考慮する必要があるだけでなく、カメラがその幅を歪ませないように端を表示面に平行にする方法も決定する必要があります。 、変形した円柱の切り抜かれたシルエットに戻ることもできます。
だから誰もこれを行うためのすてきな、簡単な方法を提案することができますか?
私は質問を理解しているかどうかわかりません。タイトルから、あなたはAまたはBのように常に表示されるものがほしいと思うように見えます.CとDはどのように表示面に平行ですか? – fzwo
4つの図形すべての終点線(4つのうちの短い方、たとえば赤線が接触するもの)は、表示面(つまり画面)に平行です。 3D空間(世界)だけでなく2D空間(画面)にも表示されています。 (これらは手描きであるため、完全には表示されないかもしれませんが、あなたはそのアイデアを得るべきです)。 – MarqueIV
あなたが探しているのは一種の** billboarding **です。詳細はわかりませんが、[こちらのチュートリアル](http://www.lighthouse3d.com/opengl/billboarding/)には答えが含まれているようです(円柱状のビンボーディングを探しているものを呼び出す)。あなたはそれらのキーワードであなた自身を研究してみるかもしれません。 –