ExtendedMaterial.Material3D

Material3D プロパティ

使用例

  • メッシュを基にしたテクスチャの作成

マテリアルのプロパティを記述する Material 構造体を取得または設定する。

定義

Visual Basic Public Property Material3D As Material
C# public Material Material3D { get; set; }
Managed C++ public: __property Material get_Material3D();
public: __property void set_Material3D(Material);
JScript public function get Material3D() : Material
public function set Material3D(Material);

プロパティ値

Microsoft.DirectX.Direct3D.Material.

これは読み取り/書き込み可能プロパティである。 

使用例

メッシュを基にしたテクスチャの作成

この例は、メッシュから作成されたテクスチャ オブジェクトに対し、ビットマップ化されたテクスチャ ファイルを適用する方法である。

アプリケーション定義の OnResetMeshDevice メソッドは次の内容を実行する。

  1. メッシュ要素は、Mesh.FromFile(String,MeshFlags,Device,ExtendedMaterial[]) を使ってファイルからロードする。

  2. ExtendedMaterial マテリアル バッファにファイルのデータを書き込む。

  3. テクスチャ名およびマテリアル プロパティは、Material3D を使ってマテリアル バッファから抽出する。

  4. ファイルから取得したテクスチャ値は FromFile(Device,String) を使って、各メッシュ要素に適用する。

    using Microsoft.DirectX.Direct3D;

    public class Meshes : System.Windows.Forms.Form { // Global variables for this project Device device = null; // Rendering device Mesh mesh = null; // Mesh object Direct3D.Material[] meshMaterials; // Materials structure for mesh Texture[] meshTextures; // Textures structure for mesh

    public bool InitializeGraphics()   // Initialize the Direct3D object
    {
        .
        .
        .
        // Call method to reset mesh device
        device.DeviceReset += new System.EventHandler(this.OnResetMeshDevice);
        .
        .
        .
    }
    
    // Mesh device reset method
    public void OnResetMeshDevice(object sender, EventArgs e) 
    {
        ExtendedMaterial[] materials = null;
        Device dev = (Device)sender;
    
        // Set up the directory to load the proper data
        System.IO.Directory.SetCurrentDirectory(
                 System.Windows.Forms.Application.StartupPath +  @"\..\..\");
    
        // Load the mesh from the specified file
        mesh = Mesh.FromFile("tiger.x", MeshFlags.SystemMem,
                             device, out materials);
    
        // Extract texture names and material properties from material buffer
        meshTextures  = new Texture[materials.Length];
        meshMaterials = new Direct3D.Material[materials.Length];
        for( int i=0; i<materials.Length; i++ )
        {
            meshMaterials[i] = materials[i].Material3D;
    
            // Set the ambient color for the material
            meshMaterials[i].Ambient = meshMaterials[i].Diffuse;
    
            // Create the texture
            meshTextures[i] = TextureLoader.FromFile(dev,
                                            materials[i].TextureFilename);
        }
        .
        .
        .
    }
    
    static void Main()
    {
        Meshes frm = new Meshes();
        if (!frm.InitializeGraphics())
        {
            // Error handling
        }
        System.Windows.Forms.Application.Run(frm);
    }
    

    }

対象

ExtendedMaterial

© 2002 Microsoft Corporation. All rights reserved. Terms of use.