ユーザ用ツール

サイト用ツール


flatlib3

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
flatlib3 [2015/11/29 16:12]
oga [特徴]
— (現在)
行 1: 行 1:
-====== flatlib3 ====== 
- 
-開発中 
- 
-  * リアルタイム 3D 描画を想定したゲームやアプリケーション開発用ライブラリ&ツール 
- 
- 
- 
-===== 特徴 ===== 
- 
-  * Multi Platform 対応 
-    * 独自の build system で、開発 HOST も Windows, Mac OS X, Linux どれでも OK 
-      * アプリケーション自体は VisualStudio, Xcode, AndroidStudio 等の IDE を使います 
-  * Database Backend 
-    * On memory の data 構造 (Script 系言語の 連想配列, Dictionary, Hash 等の機能に近いもの)、明確な型付けあり 
-    * リソース管理、データフォーマット、モジュール&タスク管理、その他のバックエンドとして活用 
-  * テキストベースのデータファイルフォーマット 
-      * 自由度が高く冗長性を持たせることが可能。情報が増えても上位互換性を保つことができる 
-      * バイナリ化対応予定 (flatlib4 で実装) 
-  * Script Engine (FlatScript) 
-    * 独自の Script 言語、Compiler & VM 
-    * ほぼ <nowiki>C++</nowiki> に近いサブセット 
-  * 共通 Module API 
-    * <nowiki>C++</nowiki> で実装した Module は、FlatScript だけでなく他の言語からも利用可能 
-    * Android の Java 等、他の言語との連携も容易に行うことができる 
-  * 仮想ファイルシステム 
-    * プラットフォームごとに異なる Data path を統一化できる 
-    * アーカイブファイルを File API で読み込み可能 
-  * 開発効率を向上させるための軽量&高速なデータ開発サイクル 
-    * プログラムの再コンパイルなしにデータやスクリプトを更新可能 
-  * 最小限の外部依存ライブラリ 
-    * 出来る限り flatib3 自身で実装しているので、基本的には各 Platform 毎の標準ライブラリのみで実行可能 
-  * 描画関連 
-    * 頂点データ形式が自由でシェーダーとのマッチングも自動 
-      * 頂点データフォーマットの任意変換が可能 (モバイル向けに頂点形式を圧縮するなどの変換が API からも容易にできる) 
-    * 複数のテクスチャ圧縮フォーマットに対応 
-      * ハードウエアにとって最も効率が良いフォーマットを選んで描画することが可能 
-        * 複数フォーマットに対応したコンバータを開発予定 
-    * シェーダー管理の自動化 
- 
- 
-===== 対応プラットフォーム ===== 
- 
-  * Windows x86/x64 
-    * Direct3D 12 (DirectX 12) 
-    * OpenGL 4.x / OpenGL ES 2.0, 3.0, 3.1 (各種Emulator/OpenGL 4.x ES互換モード) / DirectSound/DirectShow/OpenAL 
-  * Android armeabi/armeabi-v7a/arm64-v8a/mips/mips64/x86/x86_64 
-    * OpenGL ES 2.0, 3.0, 3.1 / OpenSL 
-  * iOS armv7/armv7s/arm64 
-    * Metal / OpenGL ES 2.0, 3.0 / OpenAL 
-  * Linux x86/x86_64/armv7l/armv6l 
-    * OpenGL 4.x / OpenGL ES 2.0, 3.0, 3.1 / OpenAL 
-  * Mac OSX x86_64 
-    * Metal / OpenGL 4.1 / OpenAL 
-  * Web Emscripten 
-    * WebGL 
- 
-  * 64bit 対応 
-  * <nowiki>C++11</nowiki> 対応コンパイラが必要 (VS2013, gcc4.7, clang 3.1 以上) 
- 
- 
- 
-===== 対応ツール ===== 
- 
-  * Maya 2014~2016 
-    * データ export プラグイン(mll) &ツール(mel) (現在 Windows x64 のみ) 
-    * Model, Light, Camera, Material, Animation 
-      * Polygon model のみ 
-    * Material 詳細 
-      * Texture Map (Ambient, Color, Specular, Emissive, Normal, Height) 
-      * Vertex Color 
-      * Maya TangentSpace / 独自 TangentSpace 対応 
- 
-  * Blender 2.69~ 
-    * データ export プラグイン 
-      * 現状 単純な Model のみ 
- 
- 
- 
-===== 機能 ===== 
- 
-  * システムライブラリ一式 
-    * マルチプラットフォームに対応した共通化 API 
-    * デバッグに便利な各種サポート機能 
-    * DCC ツールからの Export とデータ確認ビュア、実機のロード&描画ライブラリといったコンテンツ作成パイプライン 
-    * スクリプト言語による柔軟な開発システム 
-    * モジュール化で部分利用が可能 (システム Core のみ使って描画は別エンジンといった組み合わせが可能) 
- 
- 
-  * フレームワーク 
-    * 高速なビルドシステム 
-    * Database バックエンド (Script 言語の Object のようなもの) 
-    * スクリプト言語 (アプリケーションバイナリから独立、<nowiki>C++</nowiki> ベースで class あり) 
-    * Module で各機能の独立& API 管理を行うことが可能。スクリプトや Android Java など他の言語とのインターフェースも Module 単位で行う。 
- 
- 
-  * モデルデータビュア 
-    * Windows, Android, iOS, MacOSX, Linux (x86_64,armv7l), browser (WebGL) 
- 
-  * Texture Converter 
-    * Mipmap, Cubemap, 3D, Array 対応 
-    * flat-script による自動処理に対応 
-    * BC(DXT), PVRTCv1, PVRTCv2, ATITC, ETC1, ETC2-EAC, ASTC 変換 (外部 dll が必要) 
- 
- 
-  * データとアプリケーションの完全な分離 
-    * 再コンパイル無しに、モデルデータやスクリプトを入れ替え可能 
- 
-  * レベルエディタ、マテリアルエディタ系の統合ツールはありません 
-    * DCCツール内で作業し、そのまま Export することを想定しています。 
- 
- 
- 
- 
-===== flatlib3 Library 概要 ===== 
- 
-==== core ==== 
- 
-  * マルチプラットフォーム用共通ライブラリ 
-    * Memory 管理 
-    * FileSystem 
-    * Thread API (Lock, Queue 他) 
-    * Database 
-    * Module 管理 
-    * Slice (Task/Event) 
-    * Math (Vector/Matrix 等) SSE,NEON 対応 
-    * Encoding (文字コードアクセス、変換) 
-    * その他 
- 
- 
- 
-==== gw ==== 
- 
-  * 3D モデル描画 
-    * シェーダー管理 (シェーダーの膨大な組み合わせを効率的に管理する) 
-    * テクスチャ管理 (GPU 毎の独自フォーマットの自動判別、キャッシュ) 
-    * モデルデータの描画や管理 
- 
-  * 対応API 
-    * OpenGL ES 2.0 / OpenGL ES 3.0 / OpenGL 4.x 
-    * Metal 
-    * Direct3D 11 は未対応 
- 
-  * モデルフォーマット 
-    * 独自形式 a7 
- 
-==== event ==== 
- 
-  * UI Event の共通化 
-    * Multi Touch API (Windows 7/8/8.1, iOS, Android) 
-    * Keyboard API (debug目的) 
-    * Gamepad API (DirectInput/Android) 
- 
-==== script ==== 
- 
-  * FlatScript 
-    * script コンパイラ 
-    * script VM 
-    * script ランタイム 
- 
-  * 静的な型付けで、32bit int と 32bit float の効率よい処理が可能 
-  * コンテキスト (VM) はわずか 36byte (64bit時は 64byte) + スタック領域 のみ。いくらでもインスタンス化可能 
-  * 実行コンテキストの任意中断による非同期処理が可能 
-  * <nowiki>C++</nowiki> 構文なので、Text Editor の syntax ハイライトや等の補佐機能が活用できる 
-  * 最小限のプリプロセッサ機能 (C# の プリプロセッサに近いが、include や数値定義が可能) 
-  * 構文が同じなので、enum 等のシンボル値をアプリケーションと共有可能 
-  * アプリケーションとバイナリの完全な分離 
-  * 動的コンパイルだけでなく、事前コンパイルによるバイナリ化が可能 
-  * Script 言語風のオブジェクトにアクセスできるインターフェース (辞書、ハッシュ、連想配列の JavaScript ライクな構文) 
-  * static な Lambda 式風構文 (インラインで記述できるがオブジェクトを伴わない、<nowiki>C++11</nowiki> の構文を採用、クロージャーではない) 
-  * 64bit プラットフォームに完全対応 
-  * Script 自体が動的な暗黙のオブジェクトの生成は行わない。 
-    * メモリアロケートが発生する処理は <nowiki>C++</nowiki> で記述した命令 (Module API) を利用する 
-  * 言語単体は最小限で、それ以外の機能はすべて <nowiki>C++</nowiki> 側で作成した Module API に依存 
-    * Module API 自体は FlatScript 以外の言語からも呼び出しできる 
-  * string 型無し、静的なテキストのみ 
- 
- 
- 
- 
- 
-==== window ==== 
- 
-  * gw + script ベースの簡易 Window システム 
-    * デバッグ用の情報表示やパラメータ操作等が可能 
-    * Touch 操作 UI 
-    * 挙動は script で記述可能 
- 
-++++ FlatScript の例| 
- 
-<code c++> 
-// ただの C++ に見えますが FlatScript です 
-class MyWindow : public ListWindow { 
- 
-    static MyWindow Create( stirng name ) 
-    { 
-        return  iWindowModule->Create( name, "ListWindowM" ); 
-    } 
- 
-    void Init( MyWindow this ) 
-    { 
-        this->SetScript( GetScriptName() ); 
-        this->SetEvent( "MyWindow:" ); 
- 
- this->SetPosition( 2.0f, 16.0f ); 
- this->SetSize( 400.0f, 600.0f ); 
- 
- this.Title= "MyWindow title"; // プロパティ 
- this.LineHeight= 64.0f; 
- 
- // ボタンを押した時の動作 
- this.AddItem( "<Back", 
-     []( MyWindow this ){ // C++11 Lambda 構文 
-     this->Close(); 
-     }); 
- 
-    this->Focus( WINDOW_FLAG_DMT ); 
-    } 
-}; 
-</code> 
- 
- 
-++++ 
- 
-==== sound ==== 
- 
-  * 単純な機能のみ 
-    * DirectSound/OpenAL/OpenSL の Wave 再生 
-    * DirectShow/OpenSL/AVAudioPlayer のストリーム再生 
- 
- 
- 
-==== network ==== 
- 
-  * Socket API 
-  * 初歩的な web アクセス 
-    * Android / iOS 端末における、Wi-Fi 経由のデバッグ用 
- 
- 
- 
- 
-==== image5 ==== 
- 
-  * テクスチャツール用 API 
-  * テクスチャ画像の読み込みと変換 
-  * Mipmap, Cubemap, 3D, Array 対応 
-  * dds, ktx, pvr3, pvr2, bmp 形式の読み書きに対応 
- 
- 
- 
- 
- 
- 
- 
  
flatlib3.1448781165.txt.gz · 最終更新: 2015/11/29 16:12 by oga