ラベル 3DCG の投稿を表示しています。 すべての投稿を表示
ラベル 3DCG の投稿を表示しています。 すべての投稿を表示

2018年10月26日金曜日

「Ray Tracing in One Weekend」をやってみて

最近レイトレやc++、OpenGLなどを触り始めました。
今回はPeter Shirley氏のRay Tracing in One Weekendについて書いていこうかと思います。
日本語訳はここ。
githubはここ。
pdfをココ最近配布されたのですが、url忘れました。
*2019/3/10追記
pdfは ここ。

技術的な解説は他の方がたくさんされていらっしゃって、非常にわかりやすいので、
レイトレ自体の解説は省き、環境構築、注意事項についてのお話です。

 

環境構築について

私はDebianで開発しています。
理由は以下のとおりです。
1.Linuxは開発環境としてぶっ壊しと再生が楽
2.VisualStudioが重すぎてヤダ
3.他の開発を考えるとクソ楽
の3つです。

1と3は似たような感じなのでまとめますが、私はEmacsをプログラミングをする際に使っています。また、freeglutやglfwを触ったりもしています。そして、gitを頻繁に使っています。
Windows環境下ですとソフトウェアのダウンロードがめんどくさいからです。
今回では特別なライブラリが必要ではないのですが、最低必要なエディタにコンパイラ、gitをインストールするはめになります。

2ですが、私の環境におけるEmacs、g++、gdbなどなどその他諸々を制覇した素晴らしいIDEです。ですが、その分重い。後、Windowsでしか起動できないはず。
叩いて3sくらいで開かないとやる気なくしてしまうところがあるからです。
*2019/3/10追記
ウィンドウにツリーとか表示して邪魔。
自動で{}を縮めてくれるのはいいんですけど。
コード一気にみたい。

注意事項

私自身あるあるでググったら出てくるオチなのですが、 Chapter8でsphere.hのclassにmaterial *mat_ptrを入れなければなりません。
後、MAXFLOATでダメならば、FLT_MAXにすると走ります。

感想

多分ほぼ初めてc++とレイトレを触ったのに近い感じの私ですが、レイトレはどのように実装されて、c++でどのように書かれているのか少しわかりました。
この一冊では球体しか出すことができませんが、レイトレの基礎を触りだけ簡単に理解できる気がします。
CGの基礎をきちんと実装も含めて書いてあるので気になるなぁというお方はエディタとコンパイラさえあればできるのでされてみるのはいかがかなぁと思います。
macOSやLinuxをお使いの方は何もせずできると言っても過言ではないくらい依存ライブラリがありません。
今現在、私は床井教授が出されているOpenGLのをしているので先になると思うのですが、この次のものもチャレンジしてみようかと思うところです。

2018年6月8日金曜日

VR Zoneにて


前に似たような記事では、今はなきジョイポリスでSIMVRの「BLASTxBLAST」(その時の記事)で体験しました。





今回はVR Zone Umedaで「アーガイルシフト」というVRシネマティックアトラクションを体験しました。


内容はVRを用いた体感型映画みたいな感じですね。
何かしら敵機体破壊の操作方法が言われますが、まぁそういうアクションはあって意味がないような感じですね。

ロボットのコックピットに乗って、隣に可愛いアシスタントがいて、 動きを感じながら空中を速く爽快に進んでいくっていうのは、まぁ~すごい、良い、好き、かっこいい、ロマンです。

ガンダムの戦場の絆とか体験したことがない(ガンダム勢怖い)ですので、比較はできませんが、xに240度位、yに140度位でUIが浮かんでいて、足があるっていうのが臨場感ありまくりでした。

ただ、7mで1000円は高く、コンテンツ自体面白くて短く感じてしまうのは難点ですね。
また、トロッコ式でほぼなにもしないので、何度も体験したくなる感じは低いですねぇ...。
 
個人的には2000円30mで箱庭を自由に闊歩して、ジョイスティックで移動と照準を合わした攻撃で基地制圧とかがあって、スコアアタックなると数回はプレイすると思いました。
BLASTxBLASTの操作のViveコントローラーは流石にパスで、重くて死ぬ。
作るの死ぬほど面倒そうです、デバックとかヤバそう。

やはり、前のSIMVRと同じでかなりViveの画像の粗さ、網目状のやつが気になりますね...。
これはHMDの使用で仕方がないので、Vive Proか世代交代の時期に期待ですかね。

VR Osakaができれば、ユーザーの自由度が高い
・マリオカート アーケードグランプリVR
・VR-ATシミュレーター 装甲騎兵ボトムズ バトリング野郎
をやってみたいですね、マリカ以外全く原作知りませんが。

百聞は一見にしかずですので、機会があれば触ってみると価値観は変わりますね。
上でなんだかんだ言っておきながらすごく楽しかったですw 
続きプレイしたいですわ...Steamで...。

2016年9月12日月曜日

SIMVRを体験

昨日、2016/9/11に「SIMVR」というものを体験してきました。

SIMVRとはぶっちゃけ簡単に言うと動く椅子に乗ってVRを楽しむシステムです。
細かいことは公式のホームページで SIMVR-VR Ride-
こういうとちゃちい感じがしますが、いざ体験してみるとすごい体験です。
私自身DK2やGearVRを体験したことがあるのですが、体験の質といいますか、没入感が全く違います。
使用しているVRデバイスがHTC Viveは解像度が片目につきで1080x1200で、DK2は960x1080でGearVRはスマフォにアタッチメントを付けているものでGalaxyS6は全体で2560x1440ですが、画面をフルに使えない上それを二つに分け、ハードがPCと比べると非情に低いので実際はかなり下で、メガネを使用している私としてはViveはDK2やGearVRと比べてつっかえにくかったこともあるからかと思います。
VRを視覚と聴覚だけではなく、体全体で感じるためにSIMVRが役割を果たします。
読者の方でUSJに昔あったバック・トゥ・ザ・フューチャーのアトラクションを覚えているでしょうか?
一言でまとめるとそのアトラクションを同じ体感を出来ます、見かけはちょっとごついだけの椅子ですが、いざ体験してみると見た目は知りませんが、非常に動いていてあたかも乗り物に乗っているかのように思います、といいますか今回のは自動操縦のロボットに乗っている感じでした。
重力を感じるような重さのある動きでした、予想以上の感覚で声を上げちゃましたケド^^;
動きによるブレを感じることはありませんでした、本当に没入している感じでした。
画面としては少々タイトルでアラを感じるもののプレイ中には気になりませんでした。
端の方や建物にリソースを割けないのか液晶の限界かわかりませんが^^;

ちょっと難点があるとすれば、プレイ料金が少々高かったのと腕がつかれるのと自動操縦による違和感があった点ですね。
ワンプレイ800円で料金としては一度でしたらありですが、二回三回となるとお高いです。
SIMVR自体が約100万、Vive自体が約10万、動かすPCが約15万で総額約125万で1台につき原価だけでも1600回ほど回して元がなんとか取れるんですね。
期間限定で本業ではないのでリースかと思うので、この値段でしょうね。
開発者のSDKは20万もするので大体150万になるので本腰を入れて正規稼働するにはメンテナンスのことも考えると厳しいですね。
ふたつ目はアミューズメントパークで気軽にできるというのを目標としてそうなので狙いをつける分には非常に簡単で直感的でゲームを良くしない人でもプレイしやすいものになっているかと思います。
ですが、腕が疲れますし、ある程度サポートが有るとはいえ狙いにくいですし、揺れが予想以上にあるので掴まれるものがあると嬉しいという感じですね^^;
最後はレール型FPSがあまり好きでない私自身の問題ですね^^;
とは言え、動かすとなると親指で押す部分のタッチパッドでの移動となり、直感的ではなくなり、クローズドなコックピットになるかと思います^^;

私としてはコアな層を開拓するにもライトな層を開拓するにもソフトのほうでカバーできると思うので期待は大きいです(^^)
個人的にはカーレスが好きなのでリアルシュミレーターででて欲しいですね~。
層が縛られるのでやる場所は限られそうですが(´・ω・`)

2016年8月26日金曜日

UE4でMMDモデルを読み込む方法

UnrealEngine4でMikuMikuDance向けのモデルを読み込む方法は以下のとおりです。
使用するモデルによってはMMD系列以外での使用を禁止する物がありますので、
ご注意ください。
1.IM4Uを使用する。
 この動画のようになります。プラグインなどを導入し、MMDBridgeを用いるので少々めんどくさいですし、IK周りが少々おかしい場合がありますが、マテリアルを自動で組んでくれて、一度使ったモデルを使いまわせるのが利点ですね。
2.Alembicを用いる。 
これは先ほど使用したMMDBridgeを用いますが、私の環境、Windows10 64bit,i5-4460,DRAM8GB,GTX960 VRAM2GBではDRAMが足りないかしてクラッシュしました。
更に言うと、MMDBridgeから直接出したAlembicは使えず、Blender2.78 TB2で読み込み、書きだしたものを使用しました。50フレーム程度ならスケルタルでキチンと動きましたが、1200となると動きませんでした。
32GBなどの大容量のメモリを積んでいると動作が可能みたいです、きしめんAllstarで25GBだそうです。
また、daeやfbxに変換しようにも形式があっていないせいかして上手く行きませんでした。
また、mddファイルに書き出す作戦ではあまりにも容量が大きく、変換するソフトがごねて動かなくなり、クラッシュしました。
要検証なので、皆さんのコメントをいただけると嬉しいです。
3.pmx2fbxを使用する。
非常にシンプルですが、まぁまぁUE4では後処理が面倒なのであまり好きじゃないです。
とは言え、非常に確実です。

なので、おすすめ順としては1>3>2です。
ただ、正確性を求めるのであれば2のalembicを用いた方法でmayaやhoudiniなどのゲームエンジンに直接フック出来るソフトを用いての使用がおすすめです。

今回の動画で使用しようと思ったモデルはSPSさん作成のなつちゃん、以下なっちゃんです。



このモデルは非常に複雑で大量のIKが仕組まれており、1の方法では哀れな姿になりました。
2の方法では先程述べたとおりUE4では使えないですが、統合型ソフトでレンダリングするにはいいかと思います、これが一番早く、正確です。
結果として3番を利用しましたが、後処理がめんどくさいです^^;
しかし、非常に目立つエラーはなくほぼ見た感じキチンと動いています。

現時点ではalembicはどちらもテスト版(2016/8/26現在)なので 、今後に期待ですね。

2016年7月4日月曜日

MMDBridgeでの不具合(2016/7/4時点)

IKなどの改善は日々行われているのですが、「全ての親」が派手に動くモーションは破綻しやすいようです。
また、pythonを32bitで入れているせいかしてMMDBridgeの一部機能でフリーズします。

皆様の知識をコメントにてお菓子いただけると幸いです(^^)