2

Blender から 3D テクスチャ モデルをエクスポートし、それを xna プログラムに正常にインポートする方法を見つけたところですが、テクスチャのサンプリングが間違っているようです。最初は、カスタム HLSL エフェクト ファイルがめちゃくちゃだと思っていましたが、BasicEffect を使用してレンダリングすると、まったく同じことが起こりました。テクスチャ ファイルのイメージは次のとおりです。

https://docs.google.com/file/d/0B-q4D37og8BMUk41R2pxVFR2Tm8/edit?usp=sharing

これが私のプログラムが立方体をレンダリングする方法です:

https://docs.google.com/file/d/0B-q4D37og8BMUk1sWEJSMUY4ZVk/edit?usp=sharing

テクスチャの補間について話しているのではないことに注意してください。私のカスタム HLSL ファイルはポイント クランプでテクスチャをレンダリングします。これは基本的な効果を使用しています。また、疑問に思われるかもしれませんが、まだ照明効果はありません。何らかの理由で、テクスチャ サンプラーが顔の赤いピクセルを暗くしています。面は側面と同じ赤色にする必要があります。モデルの読み込み方法は次のとおりです。

private Model LoadModel(string assetName, out Texture2D[] textures) {
        Model newModel = Content.Load<Model>(assetName);
        textures = new Texture2D[newModel.Meshes.Count];
        int i = 0;
        foreach (ModelMesh mesh in newModel.Meshes)
            foreach (BasicEffect currentEffect in mesh.Effects)
                textures[i++] = currentEffect.Texture;

        return newModel;
    }

そして、ここに私の描画モデルメソッドがあります:

private void DrawModel(Model model, Texture2D[] textures, Matrix wMatrix, string technique) {
        Matrix[] transforms = new Matrix[model.Bones.Count];
        float aspectRatio = graphics.GraphicsDevice.Viewport.AspectRatio;
        model.CopyAbsoluteBoneTransformsTo(transforms);

        foreach (ModelMesh mesh in model.Meshes)
        {
            foreach (BasicEffect effect in mesh.Effects)
            {
                effect.View = Player.Camera.ViewMatrix;
                effect.Projection = Player.Camera.ProjectionMatrix;
                effect.World = Matrix.Identity;
            }
            mesh.Draw();
        }
    }

何が原因なのかまったくわかりません。リンクが機能しない場合も、さらにコードを投稿する必要があるかどうかをお知らせください。どんな助けでも大歓迎です

4

0 に答える 0