CrossFramework/実装メモ
をテンプレートにして作成
ホーム
検索
最終更新
ヘルプ
Wiki書式ヘルプ(整形ルール)
開始行:
* 実装メモ [#nc172af3]
#contents
** 2016/10/27 GLSLの行列コンストラクタ引数 [#e7c994e9]
- コンストラクタに渡す要素が何の順番なのか毎回こんがらが...
- 公式のPDFが一番わかりやすかった。
https://www.khronos.org/files/opengl-quick-reference-card...
https://www.opengl.org/sdk/docs/manglsl/
- 列順に初期化していく。シンプル。
- mat4 引数順番は 0列目Vec4 1列目Vec4 2列目Vec4 3列目Vec4
- mat3x4は3列4行の行列 引数順番は 0列目Vec4 ... 2列目V...
- mat4x3は4列3行の行列 引数順番は 0列目Vec3 ... 3列目V...
** 2016/10/03 各ライブラリテクスチャフォーマット一覧 [#i3...
- GL3.3 https://www.opengl.org/sdk/docs/man/html/glTexIma...
- GLES3.0 https://www.khronos.org/opengles/sdk/docs/man3/...
- Vulkan https://www.khronos.org/registry/vulkan/specs/1....
- Metal https://developer.apple.com/reference/metal/mtlpi...
- DX10 https://msdn.microsoft.com/en-us/library/windows/d...
** 2013/11/27 Cygwinパッケージ作成メモ [#n4baaaf2]
久々にCygwinを新しくする。
- Baseを全て,それに加えてgcc-g++,patch,zip,unzip,wget,op...
- makeはDOS形式対応版の3.82をネットから落としてきてインス...
- fstabファイルも後から上書き。
** 2013/11/06 XCode5.0.1でビルドする方法 [#dbf8c4a5]
下記を参考に10.6のSDKを入れる必要がある。
http://qiita.com/shuhei@github/items/3980a9082a2631565065
** 2012/12/04 行指向と列指向の行列のかけ算の順番 [#j52c5a...
列指向(OpenGLなど)
gl_Position = projMtx * viewMtx * vtxPos;
行指向(DirectXなど)
gl_Position = vtxPos * viewMTx * projMtx;
** 2012/11/18 G3D::ResMdlの要素を整理する [#y55fbdc1]
|登場人物|クラス名|略称|補足|h
|モデル|ResMdl|mdl|1visual_sceneノードが1xmdlファイルで1R...
|ノード|ResMdlNode|nod|行列制御単位。|
|メッシュ|ResMdlMesh|mes|Visibility制御単位。daeでいうmes...
|シェイプ|ResMdlShape|shp|描画単位ジオメトリ。1マテリア...
|マテリアル|ResMat|mat|マテリアル。|
となると状態保持はNodeState,MeshState(VisibilityState),Ma...
コンバータのイメージ
DAEConverter.exe input_xml_path -xmdl "Hoge.xmdl" # 0番...
DAEConverter.exe input_xml_path -xmdl "Foo;Hoge.xmdl" #F...
** 2011/04/03 MSVC2010 で同名cppファイルによるobjファイル...
オブジェクトファイルの出力先を次のように変更する
$(IntDir)\%(Identity).obj
** 2011/04/02 iOSのXCodeプロジェクトの注意 [#wccb3975]
リンカフラグに -ObjC がないとアプリケーションデリゲートが...
** 2011/03/21 テクスチャのサイズ制限 [#n38acdde]
2のべき乗制限は有りにする。
無しにしたいけど未だにこの制限があるハードはたくさんあり...
** 2011/03/20 UVの座標系 [#c2581dbb]
DirectXは画像の左上が(0,0)。
OpenGLは画像の左下が(0,0)。
この違いを吸収するには仕様を片っ方に合わせておけばいいの...
OpenGL基準(画像の左下0,0)にしたとするとDirectXでは上下...
エンジンの仕様でどっちを採用するか決めてしまえばいいだけ...
** 2011/03/15 拡張子とクラス名 [#y482144c]
.xtex .bxtex CrossFramework.G3D.ResTex
** 2011/03/08 G3Dの初期設定 [#z9a61350]
|項目|初期値|h
|viewport|メインスクリーンのサイズいっぱい|
|clearColor|RGBA(0.0,0.0,0.0,0.0)|
|colorUpdate|enable|
|clearDepth|1.0|
|depthUpdate|enable|
|depthCompare|always|
|mtxProj|ortho l-r(-1,1) b-t(-1,1) n-f(0,1)|
|mtxView|identity|
** 2011/03/06 iOSのエントリーポイント [#x1600cb2]
こんな感じかな。
#code(c,){{
int main()
{
// Macと同じように引数解釈
// ...
// C++のコードに移動
return mainC( ... );
}
int mainC( Arg aArg )
{
// xmainスレッド作成
// ...
// UIMain実行
// ...
// xmainスレッドの完了待ち
// ...
// 終了
}
int xmainThreadEntryPoint( Arg* aArgPtr )
{
// 起動完了待ち
waitSignal(); // UIMainからSignalが来るのを待つ
// ここにくるのはDidFinishedLaunchのタイミング
// xmain起動
int result = 0;
{
// Application作成
Application app( *aArgPtr );
// xmain呼び出し
result = xmain( app );
}
// ここにくるのはapplicationWillTerminate
// UIMainに終了したことを伝達
signalToUIMain();
// 何も待たずスレッド終了
return result;
}
}}
スレッドでUIViewとかUIWindowを作っても表示されないところ...
スレッドがexitせずにsleepする状態だと怒るらしい。
スレッドを寝かす前に CATransaction::flush() で明示的にCor...
正しい方法かどうかは不明…。
** 2011/03/05 iOS対応どうやろう [#fd178c92]
元々WinとMacのクロスプラットフォームで考えていましたが
流行のiOSも対応させてみるのはおもしろそうと思いちょっと考...
iOS対応となると一番ネックなのがイベントドリブン式になると...
didFinishLaunchingWithOptions
applicationWillTerminate
applicationWillResignActive
applicationDidBecomeActive
初期化・後始末・アクティブ化・非アクティブ化のイベント。
後は毎秒60回のイベントが流れてくると考えれば良さそうです。
…という要件からメインループを書いてみる。
#code(c,){{
int xmain()
{
Application app;
bool doExit = false;
while ( !doExit )
{
Event event = app.eventReceive();
switch( event )
{
case EventKind_Quit:
doExit = true;
break;
case EventKind_BecomeActive:
break;
case EventKind_ResignActive:
break;
case EventKind_UpdateFrame:
update();
draw();
break;
default:
break;
}
}
}
}}
なんとかいけるかな?
終了行:
* 実装メモ [#nc172af3]
#contents
** 2016/10/27 GLSLの行列コンストラクタ引数 [#e7c994e9]
- コンストラクタに渡す要素が何の順番なのか毎回こんがらが...
- 公式のPDFが一番わかりやすかった。
https://www.khronos.org/files/opengl-quick-reference-card...
https://www.opengl.org/sdk/docs/manglsl/
- 列順に初期化していく。シンプル。
- mat4 引数順番は 0列目Vec4 1列目Vec4 2列目Vec4 3列目Vec4
- mat3x4は3列4行の行列 引数順番は 0列目Vec4 ... 2列目V...
- mat4x3は4列3行の行列 引数順番は 0列目Vec3 ... 3列目V...
** 2016/10/03 各ライブラリテクスチャフォーマット一覧 [#i3...
- GL3.3 https://www.opengl.org/sdk/docs/man/html/glTexIma...
- GLES3.0 https://www.khronos.org/opengles/sdk/docs/man3/...
- Vulkan https://www.khronos.org/registry/vulkan/specs/1....
- Metal https://developer.apple.com/reference/metal/mtlpi...
- DX10 https://msdn.microsoft.com/en-us/library/windows/d...
** 2013/11/27 Cygwinパッケージ作成メモ [#n4baaaf2]
久々にCygwinを新しくする。
- Baseを全て,それに加えてgcc-g++,patch,zip,unzip,wget,op...
- makeはDOS形式対応版の3.82をネットから落としてきてインス...
- fstabファイルも後から上書き。
** 2013/11/06 XCode5.0.1でビルドする方法 [#dbf8c4a5]
下記を参考に10.6のSDKを入れる必要がある。
http://qiita.com/shuhei@github/items/3980a9082a2631565065
** 2012/12/04 行指向と列指向の行列のかけ算の順番 [#j52c5a...
列指向(OpenGLなど)
gl_Position = projMtx * viewMtx * vtxPos;
行指向(DirectXなど)
gl_Position = vtxPos * viewMTx * projMtx;
** 2012/11/18 G3D::ResMdlの要素を整理する [#y55fbdc1]
|登場人物|クラス名|略称|補足|h
|モデル|ResMdl|mdl|1visual_sceneノードが1xmdlファイルで1R...
|ノード|ResMdlNode|nod|行列制御単位。|
|メッシュ|ResMdlMesh|mes|Visibility制御単位。daeでいうmes...
|シェイプ|ResMdlShape|shp|描画単位ジオメトリ。1マテリア...
|マテリアル|ResMat|mat|マテリアル。|
となると状態保持はNodeState,MeshState(VisibilityState),Ma...
コンバータのイメージ
DAEConverter.exe input_xml_path -xmdl "Hoge.xmdl" # 0番...
DAEConverter.exe input_xml_path -xmdl "Foo;Hoge.xmdl" #F...
** 2011/04/03 MSVC2010 で同名cppファイルによるobjファイル...
オブジェクトファイルの出力先を次のように変更する
$(IntDir)\%(Identity).obj
** 2011/04/02 iOSのXCodeプロジェクトの注意 [#wccb3975]
リンカフラグに -ObjC がないとアプリケーションデリゲートが...
** 2011/03/21 テクスチャのサイズ制限 [#n38acdde]
2のべき乗制限は有りにする。
無しにしたいけど未だにこの制限があるハードはたくさんあり...
** 2011/03/20 UVの座標系 [#c2581dbb]
DirectXは画像の左上が(0,0)。
OpenGLは画像の左下が(0,0)。
この違いを吸収するには仕様を片っ方に合わせておけばいいの...
OpenGL基準(画像の左下0,0)にしたとするとDirectXでは上下...
エンジンの仕様でどっちを採用するか決めてしまえばいいだけ...
** 2011/03/15 拡張子とクラス名 [#y482144c]
.xtex .bxtex CrossFramework.G3D.ResTex
** 2011/03/08 G3Dの初期設定 [#z9a61350]
|項目|初期値|h
|viewport|メインスクリーンのサイズいっぱい|
|clearColor|RGBA(0.0,0.0,0.0,0.0)|
|colorUpdate|enable|
|clearDepth|1.0|
|depthUpdate|enable|
|depthCompare|always|
|mtxProj|ortho l-r(-1,1) b-t(-1,1) n-f(0,1)|
|mtxView|identity|
** 2011/03/06 iOSのエントリーポイント [#x1600cb2]
こんな感じかな。
#code(c,){{
int main()
{
// Macと同じように引数解釈
// ...
// C++のコードに移動
return mainC( ... );
}
int mainC( Arg aArg )
{
// xmainスレッド作成
// ...
// UIMain実行
// ...
// xmainスレッドの完了待ち
// ...
// 終了
}
int xmainThreadEntryPoint( Arg* aArgPtr )
{
// 起動完了待ち
waitSignal(); // UIMainからSignalが来るのを待つ
// ここにくるのはDidFinishedLaunchのタイミング
// xmain起動
int result = 0;
{
// Application作成
Application app( *aArgPtr );
// xmain呼び出し
result = xmain( app );
}
// ここにくるのはapplicationWillTerminate
// UIMainに終了したことを伝達
signalToUIMain();
// 何も待たずスレッド終了
return result;
}
}}
スレッドでUIViewとかUIWindowを作っても表示されないところ...
スレッドがexitせずにsleepする状態だと怒るらしい。
スレッドを寝かす前に CATransaction::flush() で明示的にCor...
正しい方法かどうかは不明…。
** 2011/03/05 iOS対応どうやろう [#fd178c92]
元々WinとMacのクロスプラットフォームで考えていましたが
流行のiOSも対応させてみるのはおもしろそうと思いちょっと考...
iOS対応となると一番ネックなのがイベントドリブン式になると...
didFinishLaunchingWithOptions
applicationWillTerminate
applicationWillResignActive
applicationDidBecomeActive
初期化・後始末・アクティブ化・非アクティブ化のイベント。
後は毎秒60回のイベントが流れてくると考えれば良さそうです。
…という要件からメインループを書いてみる。
#code(c,){{
int xmain()
{
Application app;
bool doExit = false;
while ( !doExit )
{
Event event = app.eventReceive();
switch( event )
{
case EventKind_Quit:
doExit = true;
break;
case EventKind_BecomeActive:
break;
case EventKind_ResignActive:
break;
case EventKind_UpdateFrame:
update();
draw();
break;
default:
break;
}
}
}
}}
なんとかいけるかな?
ページ名: