Dycoonの日記

2012-06-03 Aiming Study 4 Unity勉強会に参加してきました。

Aiming Study 4 Unity勉強会に参加してきました。 15:11  Aiming Study 4 Unity勉強会に参加してきました。を含むブックマーク

AimingのUnity勉強会に参加してきました。

http://www.zusaar.com/event/275053

Unityのasset bundle運用実例@lordofknights

http://www.slideshare.net/ppcchan/unityasset-bundlelordofknights

関連ツイート: https://twitter.com/ppcende/status/208465666863403009

webからリソースなど(GameObjectとかPrefabとか)をダルンロードして

インスタンスを作るAssetBundleの機能について

iOSなど審査がある場合、審査をおこなわなくても

あとからリソースなどを追加できる。

Proの機能。

Shadow gunのサンプルから学べるモバイル最適化

http://www.slideshare.net/KatsutoshiMakino/shadow-gun-13160409

関連ツイート: https://twitter.com/aiminginc/status/208527153824923648

モバイルでグラフィックスリソースなどどの程度使えるかなど。

私的には感覚が何となくつかめて非常に有意義でした。

Extending the Unity Editor Extended

http://www.slideshare.net/lucifuges/extending-the-unity-editor-extended

関連ツイート: https://twitter.com/lucifuges/status/208521330428084224

Unityエディターの機能拡張について。

かなりいろいろなことができるのだなと思いました。

かなり使いこなされている感じ。

大変有意義な話が聞けていい勉強会だと思いました。

トラックバック - http://d.hatena.ne.jp/Dycoon/20120603

2011-10-30 OpenCLの簡単なプログラムを書いてみて速度比較してみるなど

OpenCLの簡単なプログラムを書いてみて速度比較してみるなど 19:11  OpenCLの簡単なプログラムを書いてみて速度比較してみるなどを含むブックマーク

OpenCLの簡単なプログラムを書いてみてCPUGPUの速度比較してみるなど。

基本的な感触をつかんでみた。

ソースコードなどはこちらに置きました。

https://github.com/dycoon/dycoon_simple/tree/master/OpenCL/SimpleTest

SimpleTest : 整数配列から奇数偶数がいくつあるか数える

VMMultTest : 3次元ベクトルのアフィン変換の総和を返す

VertexBlendingTest : 3次元ベクトルを4つのアフィン変換で変換し均等にブレンディングしたものの総和を返す

それぞれの計算では、OpenCLによる処理と、C++で書かれたCPU上での処理の結果とかかった時間を返します。

処理内容はだいたい同じですが、OpenCLによる処理では並列処理を行うことを考慮した書き方になっているためその点で違いがあります。

CPUの処理ではシングルスレッドで処理しています。

計測は、

CPU : Core i7-2600 3.40GHz

GPU : NVIDIA Quadro 600

でおこなった。

OpenCLSDKNVIDIA GPU Computing SDK 4.0

Windows7で64bitの実行ファイルで、コンパイラはVC2008

プログラムGPUバッファ転送時間(ms)GPU計算時間(ms)GPU処理時間(GPUバッファ転送時間 + GPU計算時間)(ms)CPU処理時間(ms)
SimpleTest17712730484
VMMultTest554610137
VertexBlendingTest5555110147

SimpleTestとVMMultTestではメモリーの量に対して処理が簡単すぎるためかメモリー転送を除いた

単純に計算している時間でみてもOpenCLによる計算のほうが遅くなっている。

VertexBlendingTestだと、メモリーの量に対して処理がそこそこ複雑なためか

OpenCLの処理のほうが勝っている。

もっとメモリーの量に対して処理が多ければどうなるのかというのは興味深いが、

現在は試していない。

OpenCLの処理を記述するに当たっては速度を上げるためにいろいろ試行錯誤した。

  • 一度に処理する要素数(呼び出すOpenCL関数内のループの回数でこれを書いたときは5000)
  • clEnqueueNDRangeKernelのlocal_work_sizeの値(これを書いたときは16)
  • __localを使用する(SimpleTestなどではかえって遅くなることも)

あと、引っかかったポイントとしては

  • clBuildProgramでCL_INVALID_BINARYを返してコンパイルが失敗する

以下のようにして最適化を無効にすることで動作するようにはなるようだ、

clBuildProgram(program, 0, NULL, "-cl-opt-disable", NULL, NULL);

ただ、これだと速度が下がってしまう場合があったので

変数を__localにしてみるなど、あてずっぽうに処理を書き換えて今回は対処した。

また、x64では起こらないがWin32では起こるという傾向があった。

  • 構造体の代入は要素ごとにおこなう

構造体を代入すると、コンパイルエラーが返るわけでもエラーコードが返るわけでもないが、

計算結果が正しくない。

こう書いていたのを

r[gid] = sumR;

以下のようにするなど

r[gid].x = sumR.x;
r[gid].y = sumR.y;
r[gid].z = sumR.z;

レイトレースの処理や当たり判定などの処理に使ってみたいという気がします。

それより前にいろいろやらねばならないことがあるので

私がそこら辺をやるのはかなり先の話になりそうですが。

トラックバック - http://d.hatena.ne.jp/Dycoon/20111030

2011-01-03 明けましておめでとうございます。うさぎみたいのを描いたり。

明けましておめでとうございます。うさぎみたいのを描いたり。 23:27  明けましておめでとうございます。うさぎみたいのを描いたり。を含むブックマーク

sculptrisでうさぎみたいのを描いてみました。

f:id:Dycoon:20110103230620p:image

f:id:Dycoon:20110103230621p:image

体の部分や足の部分が適当になってしまいました。

Blenderに持って行ってYafaRayでレンダリングしてみたのが下のものです。

f:id:Dycoon:20110103230939p:image

3D Model SNS CG にも同じものを置いてみたり。

http://www.cg-site.net/products/102802

今年もよろしくお願いします。

トラックバック - http://d.hatena.ne.jp/Dycoon/20110103

2010-09-19 blenderで作ったボーンのアニメーションをPapervision3Dで表示

Dycoon2010-09-19

blenderで作ったボーンのアニメーションつきデータをPapervision3Dで表示 21:20  blenderで作ったボーンのアニメーションつきデータをPapervision3Dで表示を含むブックマーク

ちょっと急ぎでFlash上で3Dを表示しなければいけない状態になった

と思ったらそうでもなくなったのですが、

blenderで作ったボーンのアニメーションつきデータをPapervision3Dで表示させてみました。

blenderは2.49bを使ったいました。

このバージョンまでのColladaエクスポーターだと

ボーンのアニメーションPapervision3Dで読み込むことができないもようです。

(いろんなところで最終的にあきらめている様子)

(補間がLinearなのがいけないのだろうか?と思っているが原因は究明していない)

blenderでfbxを出力してから以下においてある

http://usa.autodesk.com/adsk/servlet/pc/item?siteID=123112&id=10775855

FBX 2011.3 Converter for WindowsColladaを出力させると

ボーンアニメーションが表示されるようになった代わりに

テクスチャーが表示されなくなってしまいました。

ただ、これをPapervision3Dで表示されるように修正するのは比較的簡単であったので

方法を書いておきます。

とりあえず、表示しているFlashはこちら

http://www.rmake.net/dycoon/files/papervisionsample/index.html

ソースコードやデータなどのファイル一式は以下においてあります。

http://www.rmake.net/dycoon/files/papervisionsample/PapervisionSample.zip

Papervision3DライブラリはPapervision3D_2.1.932.swcを使いました。

http://code.google.com/p/papervision3d/downloads/detail?name=Papervision3D_2.1.932.swc&can=2&q=


詳細は以下のとおりです。

続きを読む

br1cklayerbr1cklayer 2011/03/08 22:45 どうしても、COLLADAのアニメーションができなくて途方にくれていたところ、このサイトを発見しました。rubyのスクリプトも試し、さきほどテクスチャ付きのボーンアニメーションの出力に成功しました!!嬉しくて涙が。。本当にありがとうございます。

質問があるのですが、
・BlenderのFBXの出力の設定を教えて頂けますか?
・FBXの出力も知りたいです。

こちらでためした所、ワイヤーフレームが表示されたままでテクスチャが付いてきています。これはどういったことが要因だと思われますか?
初心者丸出しで恥ずかしい質問ですが、よろしくお願いいたします。

br1cklayerbr1cklayer 2011/03/08 22:46 >・FBXの出力も知りたいです。
Cooladaの間違いでした。。よろしくお願いいたします。

DycoonDycoon 2011/03/11 08:59 多少参考になったようでよかったと思います。
すみませんが、FBXやColladaの出力設定をどうやったかは正確には覚えていません。
立方体や、テクスチャーを貼った立方体、分割してボーンを通した立方体、私のblenderのデータなどを変換してみて、
どのように表示されるか、どのようなXMLが出力されるかなどを確認してみると
もしかしたら原因がわかるかもしれないと思いますが、
私のところでは起こったことがないのでわからないなあという感じです。
よろしくお願いします。

トラックバック - http://d.hatena.ne.jp/Dycoon/20100919

2010-09-04 Rmakeのjavascript対応とパーサーをクラス化したkmyacc用定義ファイ

Rmakejavascript対応とパーサーをクラス化したkmyacc用定義ファイル 15:18  Rmakeのjavascript対応とパーサーをクラス化したkmyacc用定義ファイルを含むブックマーク

先日Rmakejavascript版をテストで実装しました。


HTML5で動作するノベルゲームのエンジンを作ってみた

http://d.hatena.ne.jp/akasata/20100810/1281439398


それにともない、Rmakeのゲームの挙動を記述するスクリプト言語(Arrp)をjavascriptでも実行できるようにしました。

このときパーサーをクラスで出力できるようにしたかったのでkmyacc用定義ファイルを編集して、

パーサーがクラスになるように(つまり、メンバーとして扱うものの前にthis.をつけた)しました。


動作するテストプログラムはここを見てください。

http://www.rmake.net/dycoon/files/kmyaccjs/scripttest/kmyacctest.html

入力欄に書いた四則演算の数式を、runボタンを押したときに解釈し、

結果を出力します。


定義ファイルなどは以下に置きました。

http://www.rmake.net/dycoon/files/kmyaccjs/scripttest.zip

Windowsでkmyaccへのパスが通してあれば、makeコマンドを呼ぶことでパーサーを生成することができます。

kmyaccなどについては以下が参考になるかと思います。

kmyacc - 多言語対応LALRパーサー生成系

http://www005.upp.so-net.ne.jp/kmori/kmyacc/

ActionScriptyaccを作ったよ

http://d.hatena.ne.jp/yukoba/20080220/p1

トラックバック - http://d.hatena.ne.jp/Dycoon/20100904