User:Substitute541/Love3D (日本語)
他の同名ライブラリを探しているのであれば : L3D Library を参照してください。
このライブラリは疑似 3D の模擬を可能にしており、 3D 三角形による基本的な 3D 多面体の一部をモデル化できます。これらには、さらにその他の関数があります。
ダウンロード
Love3D Library.zip 現在のバージョン : 0.3.2 [背面の更新]]
使用手順
- .zip ファイルの展開
- これを使用する場合は、あなたの .love ファイルへ Love3D.lua を同梱します。
- main.lua にある全ての関数の外側へ追加します :
require "Love3D"
- そして love.load() の内側にて、関数の終端付近へ追加します :
love3D.load(fl, vpX, vpY)
- (注釈 : FL は 焦点距離を意味します。この値は通常では 250 です。 vp は消点を意味します)。そして完了です! 後は単に関数を呼び出せば使用する準備はできています。
追加拡張の読み込み方法
- あなたの .love ファイルへ yourExtension.lua を格納します。
- Love3D.luaは yourExtension.lua が存在するときには自動的に require を行います。従って Love3D を読み込み後に love.load() の内側で対象を読み込みます。
love3D.extensionName.load()
- これで完了です!
関数
Love3D 関数
- love3D.load. ライブラリを読み込みます。必ず love.load の内側で呼び出してください。
- love3D.calculatePointPosition. 二次元から三次元座標へ変換することで地点の位置を計算します。
- love3D.isBackFace. 背面であるかどうか面を確認します。
- love3D.graphics.quad. 四辺形を描画します。
- love3D.graphics.triangle. 三角形を描画します。
- love3D.graphics.lineSegment2D. 二次元線分を三次元空間へ描画します。
- love3D.graphics.draw2D. 二次元画像を三次元空間へ描画します。
- love3D.func.rotateX/Y/Z. 選択した中心地点の場所を回転します。
- love3D.func.checkDistCollision. 三次元空間にある二つの環状オブジェクトが衝突したかどうかを確認します。
- love3D.func.getAvgZTriangle/Quad. 三角形/四角形の平均的な Z を検出します。
- love3D.func.zSortTriangle/Quad. 三角形/四角形を平均的な Z にて整列します。
- love3D.func.zSortTriangle2. 最小 Z による三角形にて、三角形を整列します。
- love3D.func.zSortPoint. 点のテーブルを整列します。
- love3D.checkVersion. Love3D の現在バージョンを取得します。
Light3D 関数
- love3D.light.load. Light3D.lua の読み込みます。
- love3D.light.set. 全ての変数を設定します。
- love3D.light.setAmbience. 環境照明の設定します。
- love3D.light.getLightFactor. 照明係数の取得します (love3D.light.getNewColor のみで使用)。
- love3D.light.getNewColor. 新しい色の取得します。
用途の可能性
- メニュー画面にて立方体を回転させる。
- より精密な視差によるスクロール。
更新履歴
- 0.1.x : 遠近法の関数を追加しました。
- 0.2.0 -> 0.2.8 : 単純な遠近法の関数およびグラフィックス関数を追加しました。
- 0.2.9 : コードの最適化、遠近法の関数を名称変更しました。
- 0.3.0 : 単純な照明の追加、コードの最適化しました。
- 0.3.1 : 環境照明の追加、 [[Experimental]] タグを削除しました。
- 0.3.2 : 背面選別の追加、三角形のために別の zSort 関数を追加、 Beetle Debug への対応を追加、 Preset3D を追加しました。