次の方法で共有


TextureLoader.FromFile

FromFile メソッド

使用例

ファイルを基にしてテクスチャを作成する。

オーバーロード リスト

public Texture FromFile (Device, String, Int32, Int32, Int32, Usage, Format, Pool, Filter, Filter, Int32)
public Texture FromFile (Device, String, Int32, Int32, Int32, Usage, Format, Pool, Filter, Filter, Int32, PaletteEntry)
public Texture FromFile (Device, String, Int32, Int32, Int32, Usage, Format, Pool, Filter, Filter, Int32, ImageInformation)
public Texture FromFile (Device, String, Int32, Int32, Int32, Usage, Format, Pool, Filter, Filter, Int32, ImageInformation, PaletteEntry)
public Texture FromFile (Device, String)

使用例

ファイルを基にしたテクスチャの作成

この例では、ビットマップ化したテクスチャ ファイルをロードする方法を示す。

ファイルを基にして、テクスチャ値を含むテクスチャ オブジェクトを作成するには、TextureLoader.FromFile メソッドを呼び出す。この例では、オーバーロードされた FromFile(Device,String) メソッドが呼び出される。このメソッドは Device 名とファイルの場所を示す文字列を引数にとる。

次は、アプリケーション定義の OnResetDevice メソッドに対し、各呼び出しでロードされるテクスチャ値である。

using Microsoft.DirectX.Direct3D;
.
.
.
// Global variables for this project
Device device = null; // Rendering device
Texture texture = null;

// Initialize the device
.
.
.
// Device reset method
public void OnResetDevice(object sender, EventArgs e)
{
    Device dev = (Device)sender;
    
    // Now create the texture
    texture = TextureLoader.FromFile(dev, Application.StartupPath + 
                                              @"\..\..\banana.bmp");
}

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

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

アプリケーション定義の 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);
    }
}

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