久々のBlog 近況など
とりま、Blogやめて久しいです
世の中では Blog→SNS→Twitter→LINE と遷移しておりますが
わたしも 時代のビッグウェーブに乗っかりつつも
やっぱ最後は、情報が残せるBlogに戻ってきましたってかんじ。
うん、やっぱ発言には責任もたないとね。。持てないけど。
ってことで 簡単に今までの経緯。
もう5年ぐらい放置ですか。しかたないですよね。。。
5年前といえば LINEAGE2やったり MHFしてた時期ですね
MMORPGは大好きで今でも始めたいぐらいだし
モンハンは わざわざ3DS買ってまでプレイしてますよ。
あいかわらずゲーマーで、ゲームプログラマで、スーパーハカーしてます
そうそう、あの後 LINE2引退し 音楽やってました。へっぽこベーシストですが
ちょっとすごい人たちと繋がって 練習しないとな!!
そして 携帯SNSサイトの3Dアバターの 3Dエンジン&Flash変換 作りました
私がエンジンを作って、設計して、ツール類やおまけ部分を 先輩に作ってもらいました
ぶっちゃけ ほぼ一人です。
自分で言うのもなんですが めちゃパフォーマンス出しましたよ
当時情報のなかった 出たばかりのDirectX11で、DirectComputeやらGPGPU(CUDA)使ったり
並列化ライブラリ(TBB)使ったり、64ビット&SIMDアセンブラ使ったりね。
特にアセンブラはやっぱ マジキチレベル。
キャッシュまでちゃんと考えると 1000倍の速度アップしたりね。
大量のループをする箇所があったので その部分 x64コードにSIMD乗っけましたよ
おまけで 行列演算の部分を数学的に整理し、SIMDアセンブラにしましたよ
その後、iPhone Android用のリアルタイム3Dエンジン作成。
OpenGLES2.0+NDK+Boost っていうかんじで。
なにがたいへんって、もともとがレンダラー用のモデルを
リアルタイムゲームに使えっていう 社長命令ですよ!!
その時は 請負のつもりが気づいたら雇用にされてたので、従うのですが
1対1万ポリゴンでボーン256本 頂点ウェイト4、テクスチャがフルカラー 512x512
ありえない オーバースペックですよ!
ボーン256ってね、OpenGLでいうと Unified memoryに ボーン行列を入れるのですが
1行列が4ベクトル x 256 = 1024ベクトル必要なのですが
スマホ端末のハードウェアスペックでは128本しかベクトルがないようです。
ってことで、スキンメッシュは GPUで行えませんので
CPUで スキンメッシュやアニメーション補完をして
GPUは、パースペクティブとテクスチャマッピング のみっていう設計。
最初は 1万ポリゴンのスキンメッシュが 0.3FPSしか出ませんでしたよ
それなので CPUスキンメッシュ&補完部分の大半を
ARM32のアセンブラと、SIMD(NEON)に書き換え、さらに並列化をして
秒間30FPSオーバーまでもっていきましたよ。
毎回計算きついので、計算結果はバッファリング。これで5体ぐらいまでは 平気!
もちろん、同じ素体なら 計算結果はバッファリングしてるので
GPU負荷かるいのでいっぱい出せます
メモリが心配ですが・・・
その後、UNITYやCocos2d-x 等がはやり それらの仕事も受けて
お金も十分たまったので 仕事辞めて
MH4解禁と同時に 狩人になり、ポケモンXYが出たので 今は ポケモンマスター目指してます
とりま現状こんなかんじで