com.jblend.graphics.m3d
クラス CommandList <Phase3>

java.lang.Object
  |
  +--com.jblend.graphics.m3d.CommandList

public class CommandList
extends java.lang.Object

コマンドリストのクラスです。

このクラスを利用することで、次の例のような 3D Engine のコマンドで描画などができます。


描画中心の指定とクリップ指定の例
  // 320x240のサイズでクリップして、その中央を原点とする
  int[] commnd = {
      VERSION_1 ,
      SCREEN_CENTER ,
      160 , 120 ,
      CLIP_RECT ,
      0 , 0 , 320 , 240 ,
      END
  }
 

レンダラの属性指定の例
  // 光源処理と半透明処理を有効にする
  int[] commnd = {
      VERSION_1 ,
      ATTRIBUTE | LIGHTING | TRANSPARENT ,
      END
  }
 

Toon Shading のパラメータ設定の例
  // threshold = 120, hight = 255, low = 150 として設定する
  int[] commnd = {
      VERSION_1 ,
      TOON_PARAM ,
      120 , 255 , 150 ,
      END
  }
 

テクスチャマップの選択の例
  // setTexture() で設定したテクスチャの0番目を利用する
  int[] commnd = {
      VERSION_1 ,
      TEXTURE_INDEX | 0 ,
      END
  }
 

視野座標への変換行列の選択の例
  // setViewTrans() で設定した視野座標への変換行列の0番目を利用する
  int[] commnd = {
      VERSION_1 ,
      VIEW_TRANS_INDEX | 0 ,
      END
  }
 

カメラの設定の例
  // 投影面の幅と高さを指定して平行投影を設定する
  int[] commnd = {
      VERSION_1 ,
      PARALLEL_SCALE ,
      4096 , 4096 ,
      END
  }
  // 視野角を指定して透視投影を設定する
  int[] commnd = {
      VERSION_1 ,
      PERSPECTIVE_FOV ,
      200 , 10000 ,
      4096 * 70 / 360 ,
      END
  }
 

光源の設定の例
  // 環境光と上方からの平行光を 50% ずつ設定する
  int[] commnd = {
      VERSION_1 ,
      AMBIENT_LIGHT ,
      4096 * 50 / 100 ,
      DIRECTION_LIGHT ,
      0 , 1 , 0 ,
      4096 * 50 / 100 ,
      END
  }
 

描画するプリミティブの指定の例
  // 赤色の四角形の平面を 光源処理をおこない、半透明 ( 50%のブレンド ) で描画する。
  int[] commnd = {
      VERSION_1 ,
      PRIMITIVE_QUADS | ( 1 << 16 ) | BLEND_HALF | LIGHTING | NORMAL_PER_FACE | COLOR_PER_FACE ,
      -2048 , -2048 ,    0 ,
      -2048 , +2048 ,    0 ,
      +2048 , +2048 ,    0 ,
      +2048 , -2048 ,    0 ,
          0 ,     0 , 4096 ,
      0x00FF0000 ,
      END
  }
 


フィールドの概要
static int AMBIENT_LIGHT
          環境光の設定を表すコマンドです。
static int ATTRIBUTE
          環境属性を設定することを表すコマンドです。
static int BLEND_ADD
          加算モードで描画を行うことを表すプリミティブの属性です。
static int BLEND_HALF
          50%ブレンドモードで描画を行うことを表すプリミティブの属性です。
static int BLEND_NORMAL
          通常の描画処理を行うことを表すプリミティブの属性です。
static int BLEND_SUB
          減算モードで描画を行うことを表すプリミティブの属性です。
static int CLIP_RECT
          クリッピングを表すコマンドです。
static int COLOR_KEY
          カラーキーを用いた透過処理を行うことを表すプリミティブの属性です。
static int COLOR_NONE
          プリミティブが色情報を持たないことを表します。
static int COLOR_PER_COMMAND
          プリミティブがコマンド単位で同じ色情報を持つことを表します。
static int COLOR_PER_FACE
          プリミティブが面単位で色情報を持つことを表します。
static int COLOR_PER_VERTEX
          プリミティブが頂点単位で色情報を持つことを表します。
static int DIRECTION_LIGHT
          平行光の設定を表すコマンドです。
static int END
          コマンドリストの終了を表すコマンドです。
static int LIGHTING
          光源対応処理を行うことを表すプリミティブとレンダラの属性です。
static int NOP
          何もしないことを表すコマンドです。
static int NORMAL_NONE
          プリミティブが法線情報を持たないことを表します。
static int NORMAL_PER_FACE
          プリミティブが面単位で法線情報を持つことを表します。
static int NORMAL_PER_VERTEX
          プリミティブが頂点単位で法線情報を持つことを表します。
static int PARALLEL_SCALE
          平行投影の設定を表すコマンドです。
static int PARALLEL_WH
          平行投影の設定を表すコマンドです。
static int PERSPECTIVE_FOV
          透視投影の設定を表すコマンドです。
static int PERSPECTIVE_WH
          透視投影の設定を表すコマンドです。
static int POINT_SPRITE_FLAG_LOCAL_SIZE
          モデル座標系でのサイズを指定することを表すポイントスプライトフラグです。
static int POINT_SPRITE_FLAG_NO_PERSPECTIVE
          パースを無効にすることを表すポイントスプライトフラグです。
static int POINT_SPRITE_FLAG_PERSPECTIVE
          パースを有効にすることを表すポイントスプライトフラグです。
static int POINT_SPRITE_FLAG_PIXEL_SIZE
          スクリーン座標系でのサイズを指定することを表すポイントスプライトフラグです。
static int POINT_SPRITE_PER_COMMAND
          プリミティブがコマンド単位で同じポイントスプライト情報を持つことを表します。
static int POINT_SPRITE_PER_VERTEX
          プリミティブが頂点単位でポイントスプライト情報を持つことを表します。
static int POINT_SPRITES
          ポイントスプライトの描画を表すプリミティブの型です。
static int PRIMITIVE_LINES
          線の描画を表すプリミティブの型です。
static int PRIMITIVE_POINTS
          点の描画を表すプリミティブの型です。
static int PRIMITIVE_QUADS
          四角形の描画を表すプリミティブの型です。
static int PRIMITIVE_TRIANGLES
          三角形の描画を表すプリミティブの型です。
static int SCREEN_CENTER
          スクリーンの中心設定を表すコマンドです。
static int SPHERE_MAP
          環境マッピング処理を行うことを表すプリミティブとレンダラの属性です。
static int TEXTURE_COORD_NONE
          プリミティブがテクスチャ情報を持たないことを表します。
static int TEXTURE_COORD_PER_VERTEX
          プリミティブが頂点単位でテクスチャ情報を持つことを表します。
static int TEXTURE_INDEX
          テクスチャ配列のインデックス設定を表すコマンドです。
static int TOON_PARAM
          トーンシェーディングの設定を表すコマンドです。
static int TOON_SHADER
          トゥーンシェーディングを行うことを表すレンダラの属性です。
static int TRANSPARENT
          半透明処理を行うことを表すレンダラの属性です。
static int VERSION_1
          コマンドリストのバージョンを表すコマンドです。
static int VIEW_TRANS_INDEX
          視点変換行列の設定を表すコマンドです。
 
コンストラクタの概要
CommandList(int[] list)
          コマンドリストを生成します。
 
メソッドの概要
 Texture[] getTexture()
          テクスチャの配列を返します。
 AffineTrans3D[] getViewTrans()
          視線座標系への行列の配列を返します。
 void setTexture(Texture[] textures)
          テクスチャの配列を設定します。
 void setViewTrans(AffineTrans3D[] view_trans)
          視線座標系への行列の配列を設定します。
 
クラス java.lang.Object から継承したメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

PRIMITIVE_POINTS

public static final int PRIMITIVE_POINTS
点の描画を表すプリミティブの型です。

PRIMITIVE_LINES

public static final int PRIMITIVE_LINES
線の描画を表すプリミティブの型です。

PRIMITIVE_TRIANGLES

public static final int PRIMITIVE_TRIANGLES
三角形の描画を表すプリミティブの型です。

PRIMITIVE_QUADS

public static final int PRIMITIVE_QUADS
四角形の描画を表すプリミティブの型です。

POINT_SPRITES

public static final int POINT_SPRITES
ポイントスプライトの描画を表すプリミティブの型です。

NORMAL_NONE

public static final int NORMAL_NONE
プリミティブが法線情報を持たないことを表します。

NORMAL_PER_FACE

public static final int NORMAL_PER_FACE
プリミティブが面単位で法線情報を持つことを表します。

NORMAL_PER_VERTEX

public static final int NORMAL_PER_VERTEX
プリミティブが頂点単位で法線情報を持つことを表します。

COLOR_NONE

public static final int COLOR_NONE
プリミティブが色情報を持たないことを表します。

COLOR_PER_COMMAND

public static final int COLOR_PER_COMMAND
プリミティブがコマンド単位で同じ色情報を持つことを表します。

COLOR_PER_FACE

public static final int COLOR_PER_FACE
プリミティブが面単位で色情報を持つことを表します。

COLOR_PER_VERTEX

public static final int COLOR_PER_VERTEX
プリミティブが頂点単位で色情報を持つことを表します。

TEXTURE_COORD_NONE

public static final int TEXTURE_COORD_NONE
プリミティブがテクスチャ情報を持たないことを表します。

TEXTURE_COORD_PER_VERTEX

public static final int TEXTURE_COORD_PER_VERTEX
プリミティブが頂点単位でテクスチャ情報を持つことを表します。

POINT_SPRITE_PER_COMMAND

public static final int POINT_SPRITE_PER_COMMAND
プリミティブがコマンド単位で同じポイントスプライト情報を持つことを表します。

POINT_SPRITE_PER_VERTEX

public static final int POINT_SPRITE_PER_VERTEX
プリミティブが頂点単位でポイントスプライト情報を持つことを表します。

POINT_SPRITE_FLAG_LOCAL_SIZE

public static final int POINT_SPRITE_FLAG_LOCAL_SIZE
モデル座標系でのサイズを指定することを表すポイントスプライトフラグです。

POINT_SPRITE_FLAG_PIXEL_SIZE

public static final int POINT_SPRITE_FLAG_PIXEL_SIZE
スクリーン座標系でのサイズを指定することを表すポイントスプライトフラグです。

POINT_SPRITE_FLAG_PERSPECTIVE

public static final int POINT_SPRITE_FLAG_PERSPECTIVE
パースを有効にすることを表すポイントスプライトフラグです。

POINT_SPRITE_FLAG_NO_PERSPECTIVE

public static final int POINT_SPRITE_FLAG_NO_PERSPECTIVE
パースを無効にすることを表すポイントスプライトフラグです。

BLEND_NORMAL

public static final int BLEND_NORMAL
通常の描画処理を行うことを表すプリミティブの属性です。

BLEND_HALF

public static final int BLEND_HALF
50%ブレンドモードで描画を行うことを表すプリミティブの属性です。

BLEND_ADD

public static final int BLEND_ADD
加算モードで描画を行うことを表すプリミティブの属性です。

BLEND_SUB

public static final int BLEND_SUB
減算モードで描画を行うことを表すプリミティブの属性です。

COLOR_KEY

public static final int COLOR_KEY
カラーキーを用いた透過処理を行うことを表すプリミティブの属性です。

LIGHTING

public static final int LIGHTING
光源対応処理を行うことを表すプリミティブとレンダラの属性です。

SPHERE_MAP

public static final int SPHERE_MAP
環境マッピング処理を行うことを表すプリミティブとレンダラの属性です。

TOON_SHADER

public static final int TOON_SHADER
トゥーンシェーディングを行うことを表すレンダラの属性です。

TRANSPARENT

public static final int TRANSPARENT
半透明処理を行うことを表すレンダラの属性です。

VERSION_1

public static final int VERSION_1
コマンドリストのバージョンを表すコマンドです。

END

public static final int END
コマンドリストの終了を表すコマンドです。

NOP

public static final int NOP
何もしないことを表すコマンドです。

ATTRIBUTE

public static final int ATTRIBUTE
環境属性を設定することを表すコマンドです。

CLIP_RECT

public static final int CLIP_RECT
クリッピングを表すコマンドです。

SCREEN_CENTER

public static final int SCREEN_CENTER
スクリーンの中心設定を表すコマンドです。

TEXTURE_INDEX

public static final int TEXTURE_INDEX
テクスチャ配列のインデックス設定を表すコマンドです。

VIEW_TRANS_INDEX

public static final int VIEW_TRANS_INDEX
視点変換行列の設定を表すコマンドです。

PARALLEL_SCALE

public static final int PARALLEL_SCALE
平行投影の設定を表すコマンドです。

PARALLEL_WH

public static final int PARALLEL_WH
平行投影の設定を表すコマンドです。

PERSPECTIVE_FOV

public static final int PERSPECTIVE_FOV
透視投影の設定を表すコマンドです。

PERSPECTIVE_WH

public static final int PERSPECTIVE_WH
透視投影の設定を表すコマンドです。

AMBIENT_LIGHT

public static final int AMBIENT_LIGHT
環境光の設定を表すコマンドです。

DIRECTION_LIGHT

public static final int DIRECTION_LIGHT
平行光の設定を表すコマンドです。

TOON_PARAM

public static final int TOON_PARAM
トーンシェーディングの設定を表すコマンドです。
コンストラクタの詳細

CommandList

public CommandList(int[] list)
コマンドリストを生成します。

引数として渡されるコマンド配列は、 "VERSION_1" で始まり、"END" で終わる必要があります。

パラメータ:
list - コマンドリストの配列
例外:
java.lang.IllegalArgumentException - "VERSION_1" で始まり "END" で終わるコマンドではない場合に発生する
メソッドの詳細

setTexture

public void setTexture(Texture[] textures)
テクスチャの配列を設定します。

このメソッドで指定した配列のどの部分を利用するかは、 コマンドで指定します。

パラメータ:
textures - テクスチャの配列

getTexture

public Texture[] getTexture()
テクスチャの配列を返します。
戻り値:
テクスチャの配列

setViewTrans

public void setViewTrans(AffineTrans3D[] view_trans)
視線座標系への行列の配列を設定します。

このメソッドで指定した配列のどの部分を利用するかは、 コマンドで指定します。

パラメータ:
view_trans - 行列の配列

getViewTrans

public AffineTrans3D[] getViewTrans()
視線座標系への行列の配列を返します。
戻り値:
行列の配列


Copyright 2003 Aplix Corporation. All rights reserved. Aplix Confidential and Restricted.