2011-07-22 13 views
1

私はicosphereの構築に取り組んできました。擬似コードをCに変換する手助けが必要です

今私がしようとしているのは、カメラに面していない三角形が描画リストに追加されないようにすることです。私はたくさんの三角形を扱っているので、頂点バッファ。私は最初のカメラ位置に向いている三角形が隠されているようにしましたが(添付画像参照)、カメラを動かすと隠れた三角形は更新されません。私は私がここまでを得るのを助けるために、このサイトから(擬似)コードを使用してきた

http://i41.photobucket.com/albums/e262/cstgirllover/Cho/IcosphereCulledFront.png

http://i41.photobucket.com/albums/e262/cstgirllover/Cho/IcosphereCulledSide.png

http://decadeengine.blogspot.com/2011/03/remove-back-facing-patches-before.htmlここ

はこのことを示す二つの画像です

しかし、私はこれに対応するコードを見つけることができません:

p_pGraphics->get_Matrix(eModelView) 

これは、私が抱えている問題を修正するページ上のコードの最後のセグメントからのものです。

public float isFacing(Vector3 pos1, Vector3 pos2, Vector3 pos3, Camera dotCamera) 
    { 
     Vector3 temp1 = CalculateNormal(pos1, pos2, pos3); 

     float dotp = Vector3.Dot(temp1, dotCamera.GetDirection * _________); 
     return dotp; 

    } 

同等のコード「dotCamera.GetDirection *」

答えて

0

後で行く必要がある私は、このコードスニペットは、あなたが使用している3Dエンジンに依存すると思います:

私の周囲のコードは次のように見えます。 効果的にビューの現在の回転/位置を表す行列を取得しようとしています。あなたはXNAをターゲットしている場合

あなたは助けRotation&Transaltionの本を見つけるかもしれない:擬似コードではありません

+0

問題は、彼のプロジェクトで実際にそのコードのどの部分が指しているのか分かりません。私はそれを私のプロジェクトと同じにすることはできません。そして私はXNAを使用しています –

0

を。確かな答えを出すのに十分な情報はありませんが、これを試しましたか?

float dotp = Vector3.Dot(temp1, dotCamera.GetDirection * p_pGraphics.get_Matrix(eModelView)); 
+0

p_pGraphicsもeModelViewも私のプログラムで宣言されていないので動作しませんし、参照しているものがわからないので、私のコードで同等のことを考えることができます。 –

関連する問題