0

キャンバスに3D形状の2つの面を描画する必要があるとします。OpenGLでは、頂点の時計回りと非時計回りの順序を使用して、前面と背面の面を検出しますが、OpenGLを使用できず、キャンバスを使用します。後ろの顔を描いてから前の顔を描くと、後ろの顔が隠れているように見えますが、私の3D形状が回転し、それぞれの顔が前になることもあれば、後ろになることもあります。

私の質問は、形状が回転しているときに、魔女の顔が正面にあることをどのように検出できるかということです。または、前面で現在の背面を隠す他の方法はありますか?

4

2 に答える 2

2

あなたが説明するプロセスは、裏面カリングと呼ばれます(これにより、このトピックに関するGoogleのスキルが大幅に向上します)。

normal vector実装する簡単な方法は、を取り、faceそれがカメラの方を向いているか、カメラから離れているかを確認することです。

dot productこれは、カメラのnormalとを使用して行いview vectorます。sign内積に応じて、ポリゴンはカメラの方を向いているか、カメラから離れています。

この時点で実際にカメラを持っていない場合は、画面にベクトルを代入します(つまり[0, 0, 1][0, 0, -1]軸システムによって異なります)。

于 2012-12-16T09:28:49.867 に答える
1

3Dフリッピングをお探しですか?
もしそうなら、私はあなたがこのリンクこれを見てみることをお勧めします。
また、StackOverFlowや他のブログにも関連する質問がいくつかあります。Googleで「 Androidの3DFlip 」を検索するだけです。

幸運を!

于 2012-12-22T13:55:04.780 に答える