ゆき社長

シーゲンガーのお勉強 ゲームプログラマ、ゲーマー、色々!

久々のBlog 近況など

とりま、Blogやめて久しいです

世の中では Blog→SNSTwitter→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のアセンブラと、SIMDNEON)に書き換え、さらに並列化をして

秒間30FPSオーバーまでもっていきましたよ。

毎回計算きついので、計算結果はバッファリング。これで5体ぐらいまでは 平気!

もちろん、同じ素体なら 計算結果はバッファリングしてるので

GPU負荷かるいのでいっぱい出せます

メモリが心配ですが・・・

その後、UNITYやCocos2d-x 等がはやり それらの仕事も受けて

お金も十分たまったので 仕事辞めて

MH4解禁と同時に 狩人になり、ポケモンXYが出たので 今は ポケモンマスター目指してます

とりま現状こんなかんじで