1

そこで、XNAアプリケーションをセットアップしました。カメラは一人称モードであり、ユーザーはキーボードを使用して動き回ったり、マウスでカメラターゲットの位置を変更したりできます。3Dモデルをうまくロードできましたが、画面に問題なく表示されます。プリミティブ(テクスチャ化されているかどうかに関係なく)を描画しようとすると、カメラをどのように配置しても、画面のどこにも表示されません。

Initialize()には、次のものがあります。

        quad = new Quad(Vector3.Zero, Vector3.UnitZ, Vector3.Up, 2, 2);

        quadVertexDecl = new VertexDeclaration(this.GraphicsDevice, VertexPositionNormalTexture.VertexElements);

LoadContent()には、次のものがあります。

        quadTexture = Content.Load<Texture2D>(@"Textures\brickWall");

        quadEffect = new BasicEffect(this.GraphicsDevice, null);
        quadEffect.AmbientLightColor = new Vector3(0.8f, 0.8f, 0.8f);
        quadEffect.LightingEnabled = true;
        quadEffect.World = Matrix.Identity;
        quadEffect.View = Matrix.CreateLookAt(cameraPosition, cameraTarget, Vector3.Up);
        quadEffect.Projection = this.Projection;
        quadEffect.TextureEnabled = true;
        quadEffect.Texture = quadTexture;

そしてDraw()で私は持っています:

        this.GraphicsDevice.VertexDeclaration = quadVertexDecl;
        quadEffect.Begin();

        foreach (EffectPass pass in quadEffect.CurrentTechnique.Passes)
        {
            pass.Begin();
            GraphicsDevice.DrawUserIndexedPrimitives<VertexPositionNormalTexture>(
                     PrimitiveType.TriangleList,
                     quad.Vertices, 0, 4,
                     quad.Indexes, 0, 2);

            pass.End();
        }

        quadEffect.End();

quadEffectプロパティで何か問題が発生していると思いますが、何が原因かよくわかりません。

4

1 に答える 1

0

ゲームスタジオがインストールされていないため、このコードを職場のコンピューターで実行することはできません。ただし、参考のために、クリエーターズクラブのWebサイトで3Dオーディオサンプルを確認してください。そのプロジェクトには「QuadDrawer」があり、世界の任意の位置にテクスチャクワッドを描画する方法を示しています。それはあなたがやりたいと思われることのためのかなり素晴らしい解決策です:-)

http://creators.xna.com/en-US/sample/3daudio

于 2010-04-12T19:57:39.270 に答える