1

私は、ラップトップおよび/またはデスクトップで仮想現実体験を作成するのに役立つプロジェクトに取り組んでいます。Visual Studio 2010 で XNA 4.0 を使用しています。現在のシナリオは次のようになります。私はkinectを介して人の頭の動きをインターフェースしました。そのため、ラップトップに対して頭を右に動かすと、画像に表示されているシーンが左に回転し、バーチャル ツアーのような効果が得られます。

視覚的な魅力を高めるために、バック プレーンに暗さを追加したいと考えています。まるでトンネルのような箱のようです。

ボックスは三角形のストリップを使用して作成されました。ボックスのプレーンに使用される BasicEffect はエフェクトと呼ばれます。

effect.VertexColorEnabled = true;
        effect.EnableDefaultLighting();
        effect.FogEnabled = true;
        effect.FogStart = 35.0f;
        effect.FogEnd = 100.0f;
        effect.FogColor = new Vector3(0.0f, 0.0f, 0.0f);
        effect.World = world;
        effect.View = cam.view;
        effect.Projection = cam.projection;

シーン

コンパイル時のエラーは、いくつかの法線に関するものです。それが何を意味するのか私にはわかりません。私はインターネットを十分に掘り下げました。(私は最初、箱の裏側に黒いオムニライトを入れたのが悪い印象を受けました)。

エラーを以下に添付します。 エラー

'verts' は、ボックスの作成に使用される VertexPositionColor [][] です。

このエラーを解決するにはどうすればよいですか? 方法/アプローチは正しいですか?

どんな助けでも大歓迎です。ありがとう。

4

2 に答える 2

1

頂点には位置チャネルと色チャネルがありますが、法線がありません...そのため、頂点にそれを提供する必要があります。

色が必要ない場合は VertexPostionNormalTexture を使用するか、法線を提供するカスタム構造体を構築できます...

これがカスタム実装です: VertexPositionNormalColor

于 2012-11-30T20:10:45.477 に答える
0

頂点タイプに法線 (vector3) を追加する必要があります。

また、ディスタンス フォグが必要な場合は、独自のシェーダーを作成する必要があります。BasicEffect は深度フォグのみを実装するためです (見栄えはよくありませんが、より高速です)。

于 2012-12-14T06:36:53.530 に答える