基本的な使い方

e3dhsp.asをインクルードしておきます。
E3DInit で初期化。
各初期設定終了後メインループに突入します。

メインループは次のように書きます。

*main
	E3DChkInView hsid1	;描画準備
	E3DBeginScene	;-----シーンスタート

		…(作画処理)…

	E3DEndScene	;-----シーン終了
	E3DPresent	;描画処理
	E3DWaitbyFPS 60 : await 0	;時間待ち
goto *main

作画処理の部分を上のようにして挟み込んでやって記述します。
最低限の構成として書いたので必要に応じて作画処理の部分以外の部分の書き換えもありうると思います。

ループのイメージはE3DBeginSceneE3DEndSceneの間にバックバッファという仮想画面に描画しておき、 E3DPresentを実行すると、仮想画面に描画した内容をプライマリバッファという実際の 画面に描画する…というしくみみたいです。
E3DBeginSceneE3DEndSceneの間がredraw 0になっていて、 E3DPresentredraw 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

サンプル実行結果 光源を設定していないのでちょっと薄暗い。
- HOME -

GHP(仮)