基本的な使い方
e3dhsp.asをインクルードしておきます。
E3DInit で初期化。
各初期設定終了後メインループに突入します。
メインループは次のように書きます。
*main
E3DChkInView hsid1 ;描画準備
E3DBeginScene ;-----シーンスタート
…(作画処理)…
E3DEndScene ;-----シーン終了
E3DPresent ;描画処理
E3DWaitbyFPS 60 : await 0 ;時間待ち
goto *main
|
作画処理の部分を上のようにして挟み込んでやって記述します。
最低限の構成として書いたので必要に応じて作画処理の部分以外の部分の書き換えもありうると思います。
ループのイメージは
E3DBeginScene〜
E3DEndSceneの間にバックバッファという仮想画面に描画しておき、
E3DPresentを実行すると、仮想画面に描画した内容をプライマリバッファという実際の
画面に描画する…というしくみみたいです。
E3DBeginScene〜
E3DEndSceneの間が
redraw 0になっていて、
E3DPresentが
redraw 1に相当するという感じでしょうか?
サンプル
タコのモデルを表示させるだけのサンプルです。
タコのモデルファイルはEasy3Dのサンプルにtako.sigというファイル名で含まれています。
タコのモデル用のテクスチャファイルはtako.sigと同じフォルダ内にtako01.bmpというファイル名で含まれています。
tako.sigとtako01.bmpを下記サンプルと同じフォルダ内に入れてから実行してください。
;
; 形状データを表示するだけの最低限のプログラム
;
#include "e3dhsp.as"
;
; 初期化
;
E3DInit
;
; 形状データのロード
;
sdim mediadir, 2048
mediadir = curdir + "\\tako.sig"
E3DSigLoad mediadir, hsid1
; E3DSetPos hsid1, 0, 0, 0
frameno1 = 0 ;モーションは使用しない。
;
; メインループ
;
*main
E3DChkInView hsid1 ;モデルが、視野内にあるか判定
E3DBeginScene ;-----シーンスタート
;バックバッファへの書き込み作業を行う
stick key
if key&128 : goto *bye
E3DRender hsid1, 0, frameno1, 0 ;バックバッファにレンダリングする。(タコ描画)
E3DEndScene ;-----シーン終了
E3DPresent ;バックバッファの内容を、プライマリバッファに転送。描画する。
E3DWaitbyFPS 60 : await 0
goto *main
;
; 終了処理
;
*bye
E3DBye
end
|

光源を設定していないのでちょっと薄暗い。
GHP(仮)