2017年04月30日

KVSに関するメモ

Kyoto Visualization System(KVS)[1]という可視化ライブラリがあるようなので、使ってみることにします。今回は環境設定などが楽そうなのでVirtualBox上[2]のUbuntu[3]で試してみたいと思います。細かい設定など面倒なので、Ubuntu DesktopのISOを使って、開発に必要そうなものなど色々インストールしました。

VirtualBox上でマウス操作する際、画面外に出られなかったり使いにくいのですが、Guest Additionsのインストールを行えば普通に使えるようになるそうです[4]。その他、WindowsとUbuntuでデータ共有もしたかったので、その方法も調べてみました。VirtualBox上で設定して後はUbuntu上でマウントすればいいみたいです[5]。

使い方と環境設定ですが、Wikiの内容が最新かと思います[6]。まずはGLUTとGLEWのインストールです。
  sudo apt-cache search glut
freeglut系が見つかりましたので、とりあえずそれを入れます。
  sudo apt-get install freeglut3-dev
次はGLEWです。
  sudo apt-cache search glew
  sudo apt-get install libglew-dev
続いて必要なのが環境変数KVS_DIRの設定です。これはWikiの通り.bashrcを編集しました。

次はインストールです。[1]からデータをダウンロードして解凍します。後はmakeとmake installで問題がなければうまくいくと思います。今回はWikiの通りKVS_DIRに~/local/kvsを指定しましたので、そこにinstallされます。

コンパイルについてですが、kvsmakeというプログラムが用意されていますので、それを使用します。
  kvsmake -G lesson1
  kvsmake
テストデータもWikiの通りです。
  git clone https://github.com/naohisas/KVS.data.git

付属のデータ以外でも試してみようと思いましたので、ボリュームデータというわけではありませんがMagicaVoxelのサンプルをKVSで用いられている.kvsmlに変換して表示してみました。

実行結果
kvsview_biome.png

動作確認は終わりましたので、次は実際にプログラミングしてみたいと思います。

[1] Kyoto Visualization System
[2] Oracle VirtualBox
[3] Download Ubuntu Desktop
[4] http://clubsepc.seesaa.net/article/229489943.html
[5] http://qiita.com/HirofumiYashima/items/6044cfc64cfa3e84f97c
[6] 入門KVS

web拍手 by FC2
posted by シンドラー at 03:47 | Comment(0) | TrackBack(0) | Rendering | このブログの読者になる | 更新情報をチェックする

2015年05月09日

Appleseedレンダリングエンジンのテスト その10

レンダリングが終わったのでYouTubeにアップロードしてみました。



レンダリング時間短縮のため、1パスしか飛ばしていないので結構ノイズが残ってしまっています。後、カメラは面倒だったのでフレーム間はオイラー角を線形補間しただけなので元のものと変わってしまっているかもしれません。

下記のものをお借りしました。

[1] モデル: ままま様 アラン・スミシー様 yon様
http://www.nicovideo.jp/watch/sm23664403
[2] モーション: あひるP様
http://www.nicovideo.jp/watch/sm25558790
[3] 曲: きむた様
http://ch.nicovideo.jp/suzukirin/blomaga/ar634504
[4] カメラ: 猫姫様
http://www.nicovideo.jp/watch/sm25399243
[5] スカイドーム: ussy様
http://www.nicovideo.jp/watch/sm10968092

web拍手 by FC2
posted by シンドラー at 23:37 | Comment(0) | TrackBack(0) | Rendering | このブログの読者になる | 更新情報をチェックする

2015年05月07日

Appleseedレンダリングエンジンのテスト その9

あっという間にGWが終わってしまいましたね。



というわけで、VMDファイルからカメラ情報を取得して.appleseedに埋め込むように修正しました。とりあえず全部流し込み動画を作成中ですが、1フレーム1分でも2800フレームで47時間弱とかかなりかかりますね。
web拍手 by FC2
posted by シンドラー at 18:37 | Comment(0) | TrackBack(0) | Rendering | このブログの読者になる | 更新情報をチェックする

2015年04月23日

Appleseedレンダリングエンジンのテスト その8

変形モーションブラーのテストです。一応アニメーションまでやりましたので一通り試しましたかね。



実行結果

tda_roku_blur01000.png

MMDBridge[1]はバージョンアップしてフレーム抜けもなくなって素晴らしいですね。モーションは[2]を使用させていただいております。約30秒の動画に差替えました(2015.4.25)。


静止画だとちょっとブレ過ぎかなと思ったのですが、アニメーションにすると結構自然に見えますね。

[1] http://mmdbridge.render.jp/
[2] 【MikuMikuDance】 好き!雪!本気マジック 【MMDモーショントレース】

web拍手 by FC2
posted by シンドラー at 23:19 | Comment(0) | TrackBack(0) | Rendering | このブログの読者になる | 更新情報をチェックする

2015年04月18日

Appleseedレンダリングエンジンのテスト その7

続きです。どうも肌が白っぽくなっているので表面下散乱ができるといいのですが、現状Disney MaterialのSubsurfaceパラメータだけでは難しいようでしたので、EDFを使ってなんとかならないかのテストです。肌の内側から赤っぽい光が発生していれば、表面下散乱のような効果になるのではないかということです。

まずは表面を肌色、EDFをRGB(0.9, 0.2, 0.1)にした球で試してみました。

edf_test_001.png

後はGUIを変更してその辺も選べるようにしました。

実行結果

前回の結果
tda_roku_blend_001.png

今回の結果
tda_roku_edf_002.png

前のよりは肌色っぽくなりました。

web拍手 by FC2
posted by シンドラー at 22:38 | Comment(0) | TrackBack(0) | Rendering | このブログの読者になる | 更新情報をチェックする

2015年04月08日

Appleseedレンダリングエンジンのテスト その6

続きです。複数BRDFを設定してBlendできるようにしてみました。現状Oren-NayarとAshikhminモデルの2つを対象としています。他にもたくさんありますが、今のところこれぐらいでいいかなといった感じです。

また、360度パノラマ画像でレンダリングできるかなと試してみたところ一応できた気がします。



GUIの画面
anttweakbar_gui_002.png

Oren-NayarモデルのパラメータとBlendのWeight設定、後はSpherical Cameraでの.appleseed出力などに対応してみました。

BSDF BlendでOren-NayarとAshikhminモデルを混合したレンダリング結果
tda_roku_blend_001.png

パノラマ画像
wo_spherical.png

web拍手 by FC2
posted by シンドラー at 22:10 | Comment(0) | TrackBack(0) | Rendering | このブログの読者になる | 更新情報をチェックする

2015年04月07日

Appleseedレンダリングエンジンのテスト その5

続きです。Appleseedでは色々なBSDFモデルが提供されているのですが、これまで出力していたのはOren-Nayer BRDFで出力していたので、DiffuseだけでSpecularがありませんでした。ここここなど、以前Specularで異方性も反映されるものとしてAshikhminモデルのテストをしていて、AppleseedにもAshikhmin-Shirley BRDFがありましたので、GUIでこの辺のパラメータを設定して.appleseedで出力するようにしてみました。

ashikhmin_gui_001.png

一応シェーダは昔書いてたやつを使いまわしていますので、大まかな確認はできますがAppleseedでの結果とは異なるので参考程度です。

また、マテリアル毎にパラメータを設定する必要があるので目安として赤いアウトラインを表示するようにしてみたのですが、CPU側で画像処理でやっているので重いです。

実行結果

anttweakbar_wo_normal1.jpg
前回の結果

ashikhmin_gui_002.png
今回の結果

ashikhmin_gui_003.png
ステージも変換して設置した結果

ちょっとアルミっぽい感じになりすぎていますので、Ashikhminモデルのみではなく、複数BSDFのBlendなどしないと調整不足な感じがします。ステージは[1]のオバケの木ステージを使用させていただきました。ステージはAshikhminにしない方が良かった気がします。GUIの方で選択もできるようにしますかね。

[1] http://emipon.net/

web拍手 by FC2
posted by シンドラー at 04:32 | Comment(0) | TrackBack(0) | Rendering | このブログの読者になる | 更新情報をチェックする

2015年04月02日

Appleseedレンダリングエンジンのテスト その4

Appleseedにはノーマルマッピングの機能がついていますので、試してみることにしました。3Dモデルにはノーマルマップを付けてくださっている場合とない場合があります。ある場合にはハイポリモデルで計算してノーマルマップだけ出力している場合があるので、そちらを用いた方がより正確なデータとなります。ない場合は仕方がないのでカラーマップから生成する場合が多いと思います。

カラーマップからノーマルマップを生成する方法として、GIMP[1]のノーマルマッププラグインやWeb上でノーマルマップを作成できるもの[2]や、Knald[3]というソフトウェアがありました。Knaldはモデルの読込などもできて良さそうでしたが、Freelancer Licenseで100ドルとのことです。ちゃんとしたノーマルマップが欲しい場合はこちらがいいのではないでしょうか。

というわけで、今回はAntTweakBar[4]の使い方に関するメモです。

1. std::stringを使って文字列の読書きを行う場合
コールバック関数を設定する必要があります。やり方は[5]に書いています。これをやっていなくてReadOnly状態になってて困りました。

2. 動的にメニューの追加/削除を行う方法
TwAddVarRWで、読書き可能な変数を初期化後なら割といつでも追加できます。削除したい場合はTwRemoveVarでできます。同じ名前のGUI変数は定義できないので、例えばデータの格納先だけを変えたい場合などは、TwRemoveVarで取り除いてからもう一度TwAddVarRWとやればできます。このやり方が正しいのかどうかはわかりませんが。

3. 数値が変わった場合などに何か処理を行う方法
数値を変更した際に特定の処理を行いたい場合には、コールバック関数を指定するためにTwAddVarCBを使います。変更されたときに呼び出される関数と、値を取得するときに呼び出される関数の2つを指定するとReadWrite状態にできます。引数の一つ目が設定/取得する変数の値で、二つ目がユーザが設定できるクライアントデータとなります[6]。

モデルを読み込んで各テクスチャ毎にノーマルマップを作成して出力するようにGUIを変更してみました。

手順
1. カラー画像をグレースケールに変換。α値があればそれを掛ける。
2. グレースケール画像をコントラスト伸長して0〜1の範囲に広げてこれを高さマップとする。
3. 差分フィルタを用いて高さの勾配を計算して法線ベクトルを計算する。
4. 画像として出力

至って普通のやり方ですね。

フィルタのサイズや法線ベクトルの勾配に掛けるスケール値、高さマップを反転するかどうかなどのパラメータをGUIで調整できるようにしました。

anttweakbar_001.png

高さマップの表示/非表示、バンプマッピングの有効/無効などもGUI上で設定できるようにしています。

anttweakbar_002.png

後ノーマルマップの設定をした.appleseedを出力するようにしました。

実行結果

tda_roku.jpg
以前の結果
Tda_roku_normal.jpg
今回の結果

その他モンテコア様のヲ級[7]で試してみました。こちらのモデルはノーマルマップ付属でしたが、自前の方でテストしています。マントの凹凸などはやはり色情報からでは辛いので元のノーマルマップの方が良いと思います。

anttweakbar_wo_no_normal.jpg
ノーマルマップなし
anttweakbar_wo_normal1.jpg
付属ノーマルマップ
anttweakbar_wo_normal2.jpg
今回の結果

テストということで勾配のスケール値を結構大きくしたのでところどころ黒くなってしまっています。そろそろステージとか床を配置したりしないと浮いてて駄目ですね。

[1] GIMP normalmap plugin
[2] NormalMap-Online
[3] Knald
[4] AntTweakBar
[5] TwCopyStdStringToClientFunc (function)
[6] TwAddVarCB (function)
[7] 深海棲艦 空母ヲ級
web拍手 by FC2
posted by シンドラー at 21:51 | Comment(0) | TrackBack(0) | Rendering | このブログの読者になる | 更新情報をチェックする

2015年03月20日

Appleseedレンダリングエンジンのテスト その3

今回はAppleseedの特徴らしいfluffyとmotion blurを少し試してみました。studioでできることは少なくて.appleseed(XML)を直接編集したりコマンドラインで実行したりする、もしくは(こちらが本来の使い方なんだと思いますが)MayaやBlenderのプラグインを使ってくださいということだと思います。



slideshareを使うようになったのでブログには書くことがないです…。

web拍手 by FC2
posted by シンドラー at 00:35 | Comment(0) | TrackBack(0) | Rendering | このブログの読者になる | 更新情報をチェックする

2015年03月17日

Appleseedレンダリングエンジンのテスト その2

VidroやAppleseed用に.objに変換したり.vdrや.appleseedを出力したりする場合に、コマンドラインで指定するのが面倒になってきたので、GUIを作ることにしました。今回は簡単そうなAntTweakBar[1]を使用してみました。ついでにオレオレライブラリのPMX読込みがバグだらけだったので、ある程度修正しました。

後、モデルのサイズなどによって視点位置を色々調整したりするのも面倒だったので、とりあえず初期の視点位置だけ自動で計算するようにしてみました。これで縦は収まるはずですが、横ははみ出るかもしれません。横もはみ出さないようにする計算ももう一計算追加すればできるとは思います。

init_viewpoint_001.png

init_viewpoint_002.png

init_viewpoint_004.png

自動設定結果
tda_roku_001.png

そのうちパラメータとか追加したいですが、やらない気もしますね。読込みテストとして[2]のTda式改変憤怒ミクさんを使用させていただいております。遅刻が勿体ないぐらいの出来ですね。

Appleseedレンダリング結果
tda_roku.jpg

ポーズとかパラメータとか手抜きですみません。まぁ材質毎にいい感じのパラメータを探すのが結構大変だったりするんですが。背景に前回と同じHDR画像を使用させていただいております。

最近書き忘れていることが多い気がするのでライセンス表示を…。

この作品はピアプロ・キャラクター・ライセンスに基づいてクリプトン・フューチャー・メディア株式会社のキャラクター「初音ミク」を描いたものです。

[1] http://anttweakbar.sourceforge.net/doc/
[2] http://seiga.nicovideo.jp/seiga/im4688893

web拍手 by FC2
posted by シンドラー at 02:19 | Comment(0) | TrackBack(0) | Rendering | このブログの読者になる | 更新情報をチェックする

2015年03月09日

Appleseedレンダリングエンジンのテスト

UE4やUnity5が無償で使えるようになったみたいで素晴らしいことですね。そういうわけでUE4やUnity5を使えばいいと思うのですが、appleseed[1]というオープンソースのレンダラがあるようでしたので試してみることにしました。とりあえずGetting Startedの適当和訳です。画像などは[2]を見てください。

ダウンロードとインストール
Downloadのページから、対応するプラットフォームの現在のバージョンをダウンロードしてください。
zipファイルですので、解凍するだけでappleseedを使用することができます。ここでは、appleseedというディレクトリに解凍したと想定します。

appleseed.studioの開始
appleseed.studioが、統合的なグラフィカル環境となっています。appleseedはレンダラなので、本当はユーザインタフェースを持ちませんが、appleseed.studioを中心的なツールとして使用することができます。
Windowsでappleseed.studioを起動するためには、appleseed\binディレクトリにあるappleseed.studio.exeをダブルクリックしてください。

上図のようなウィンドウが現れます。appleseed.studioのメインウィンドウは、4つのセクションに分かれています。
1. 中央のレンダーエリア
2. 左側のシーンを作るための実体を表示するためのプロジェクトエクスプローラ
3. 右側の選択された実体のプロパティを編集するための属性エディタ
4. 下側のアプリケーションの動作や情報、警告、エラーなどを表示するためのログパネル

パネルは個別に動かすことができます。ウィンドウの右下のコーナーにあるボタンで隠すこともできます。

最後に、F11を押すことで、すべてのパネルを隠すことができ、もう一度F11を押すと元に戻ります。

appleseed.studioは、終了時にユーザインタフェースの状態を記憶して、次回起動時に再現します。

内蔵シーンの読込みとレンダリング
appleseedでは、Cornell Boxのシーンをあらかじめ用意しています。File→Open Built-in Projectメニューを選んで、Cornell Boxを選択してロードしてください。レンダーエリアの中心に、黒い立方体が現れます。私たちは、これをレンダーウィジェットと呼びます。

レンダリングを始めましょう:Renderingメニューを開き、Start Interactive Renderingを選ぶか、F5を押してください。

最初、Cornell Box画像はノイズだらけですが、すぐにより滑らかにレンダリングされるでしょう。デフォルトでは、インタラクティブレンダリングは画像をいつまでも再生成し続けます。

RenderingメニューのStop Renderingを選択するか、Shift-F5を押すことで、レンダリングを停止することができます。

シーンのナビゲート
シーン中をナビゲートするためには、インタラクティブレンダリングを実行している必要があります。F5を押してインタラクティブレンダリングを開始してください。

視点を変えてみましょう。コントロールは次のようにできます:
・カメラの回転:Ctrl+左マウスボタン+レンダーウィジェット内でドラッグ
・カメラの平行移動:Ctrl+中マウスボタン+レンダーウィジェット内でドラッグ
・カメラの前後移動:Ctrl+右マウスボタン+レンダーウィジェット内でドラッグ

最終レンダーの開始
ここまで、インタラクティブレンダリングだけ使用しました。このモードはクイックプレビューに向いています。しかしながら、最終的な画像を得るときには、Final Renderingモードを使用します。

RenderingメニューのStart Final Renderingを選択するか、F6を押すことで最終レンダリングを開始することができます。また、Shift-F5を押すことで、レンダリングを中断することができます。

注意点として、レンダリングはタイル毎に行われ、デフォルトでは、あなたのマシーンが複数のCPUコアを持っていれば同時にレンダリングされます。

レンダリング設定に依存して、レンダラはシングルパスでレンダリングしたり、プログレッシブにマルチパスレンダリングを行ったりします。

レンダラ設定の変更
レンダラ設定を変更する前に、レンダリングを停止する必要があります。もし停止していなければ、Shift-F5を押してレンダリングを停止してください。

F7を押して、レンダラ設定ダイアログを開いてください。

一番上のConfigurationのドロップダウンリストは、何の設定を行うかを変更するためのもので、FinalがFinal Renderingモード、InteractiveがInteractive Renderingモードになります。

最終レンダラ設定を変更しましょう:Finalが選択されていることを確認してください。

最終レンダリングモードの欠点の一つとして、デフォルト設定では、結果が期待通りであるかどうかを確認するために長時間待たないといけないことが挙げられます。

早めに良い結果かどうか判定するための方法として、マルチパス最終レンダリングを使用することができます。このモードは、最終レンダリングでもいくらかプログレッシブ的に結果を確認できます。

パスの数を、デフォルトの1から8に増やしてみましょう。また、それぞれのパスのサンプル数を、64から8に減らしましょう。

OKを押して、F6で再度最終レンダリングを開始しましょう。

8パスでは、それぞれのパスでは8サンプルなので、トータルでのサンプル数は同じですが、1/8の時間で最終結果の概要を確認することができます。

[1] http://appleseedhq.net/
[2] http://appleseedhq.net/docs/tutorials/gettingstarted.html

ついでにSlideShareを試してみることにします。ちゃんと見れますかね。


web拍手 by FC2
posted by シンドラー at 23:06 | Comment(0) | TrackBack(0) | Rendering | このブログの読者になる | 更新情報をチェックする