OBJ Texture Model


OBJ Texture Model を描画します。

tex_box.obj を描画

  1. OBJ モデルの基本は OBJ Cube で説明しています。
    今回は立方体にテクスチャーを貼り付けたモデルを描画します。
    モデルは次のファイルで構成されています。
    モデルによっては、沢山の Texture 画像が使われることもありますが今回は一枚だけです。
    ファイル名 説明
    tex_box.obj 立方体を定義した OBJ モデル
    tex_box.mtl Material を定義したファイル
    star.jpg Texture 画像
  2. 立方体を定義した OBJ モデル tex_box.obj のソースコードです。
    v は頂点の定義で、vt はテクスチャ座標の定義で、vn は法線ベクトルの定義です。
    f 1/1/1 の 1 は頂点座標の Index で、/1 はテクスチャ座標の Index で、/1 は法線ベクトルの Index です。
    Material(カラーとテクスチャー)情報は tex_box.obj とは別の tex_box.mtl で定義されます。
    usemtl emerald などが Material の参照です。
    詳細は Windows Store DirectX から OBJ Model を参照して下さい。
    # Box(Textture: star.jpg)
    mtllib tex_box.mtl
    
    g cube
    v -1 -1 -1
    v 1 -1 -1
    v -1 1 -1
    v 1 1 -1
    v -1 -1 1
    v 1 -1 1
    v -1 1 1
    v 1 1 1
    vt 0 0
    vt 1 0
    vt 1 1
    vt 0 1
    vn 0 0 -1
    vn -1 0 0
    vn 1 0 0
    vn 0 -1 0
    vn 0 1 0
    vn 0 0 1
    
    g face1
    usemtl emerald
    f 1/1/1 3/2/1 4/3/1 2/4/1
    g face2
    usemtl pearl
    f 1/1/2 5/2/2 7/3/2 3/4/2
    g face3
    usemtl sapphire
    f 2/1/3 4/2/3 8/3/3 6/4/3
    g face4
    usemtl jade
    f 1/1/4 2/2/4 6/3/4 5/4/4
    g face5
    usemtl ruby
    f 3/1/5 7/2/5 8/3/5 4/4/5
    g face6
    usemtl gold
    f 5/1/6 6/2/6 8/3/6 7/4/6
    
  3. Material を定義した tex_box.mtl のソースコードです。
    map_Kd で Texture 画像の名前を指定します。
    tex_box.obj と共に適当なフォルダーに utf-8 でタイプして格納して下さい。
    # Texture Box Model
    newmtl emerald
    Ns 600
    d 1
    Ni 0.001
    illum 2
    Ka 0.0215  0.1745   0.0215
    Kd 0.07568 0.61424  0.07568
    Ks 0.633   0.727811 0.633
    map_Kd star.jpg
    
    newmtl pearl
    Ns 88
    d 1
    Ni 0.001
    illum 2
    Ka 0.25     0.20725  0.20725
    Kd 1.0      0.829    0.829
    Ks 0.296648 0.296648 0.296648
    map_Kd star.jpg
    
    newmtl sapphire
    Ns 100
    d 1
    Ni 0.001
    illum 2
    Ka 0.05375  0.05     0.1625
    Kd 0.3275   0.375    0.925
    Ks 0.332741 0.328634 0.346435
    map_Kd star.jpg
    
    newmtl jade
    Ns 100
    d 1
    Ni 0.001
    illum 2
    Ka 0.135    0.2225   0.1575
    Kd 0.54     0.89     0.63
    Ks 0.316228 0.316228 0.316228
    map_Kd star.jpg
    
    newmtl ruby
    Ns 60
    d 1
    Ni 0.001
    illum 2
    Ka 0.1745   0.01175   0.01175
    Kd 0.61424  0.04136   0.04136
    Ks 0.727811 0.626959  0.626959
    map_Kd star.jpg
    
    newmtl gold
    Ns 400
    d 1
    Ni 0.001
    illum 2
    Ka 0.24725  0.1995    0.0745
    Kd 0.75164  0.60648   0.22648
    Ks 0.628281 0.555802  0.366065
    map_Kd star.jpg
    
  4. ウインドウ・エクスプローラーを起動して tex_box.obj と tex_box.mtl と star.jpg を Assets に直接ドラッグ&ドロップして下さい。
    Assets からヒエラルキービューに tex_box をドラッグすると tex_box が表示されます。

  5. [Projectタブ][Createタブ] から [C# Script] を選択すると NewBehaviourScript.cs が作成されます。
    NewBehaviourScript.cs を修正して保存して下さい。
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class NewBehaviourScript : MonoBehaviour {
    
        void Update () {
            transform.Rotate(new Vector3 (15, 30, 45) * Time.deltaTime);
        }
    }
    
  6. NewBehaviourScript.cs をヒエラルキービューの tex_box にアタッチして下さい。
    再生ボタンで実行するとテクスチャが貼り付けられた立方体が回転しながら描画されます。

前田稔の超初心者のプログラム入門
超初心者のプログラム入門(Unity)