2016年01月15日

UnityでQumarionとDK2のテスト

明けましておめでとうございます。といってももう1月も半分終わってますね…。

先月Qumarionが最大55%OFFセールをしていたので、とりあえず買ってみました。Unityと組み合せて使う場合はどうすればいいのか考えていたのですが、ライブラリを公開してくださっている方がいらっしゃいましたので、使わせていただくことにしました[1]。

使い方としては[1]の通りで、Visual Studio Community 2015でコンパイルしたのですが、System.Reactive.Linqのところでエラーがでました。Reactive Extensions (Rx) v2.0がインストールされていないのが原因だったようですので、[2]を参考にインストールするとコンパイルが通りました。

Unity上での使用方法も[1]の通りで問題ないかと思います。今回はMMD4Mecanimを使ったTda式モデルで試させていただきました。注意点としては、RigをHumanoidにする[3]必要があることと、Tポーズ基準にする必要がありますので、適当にTポーズのvmdファイルを作って変換時に指定しました(これはUnity上でTポーズにしたのでいいのだとは思います)。

後はVR Supportを有効化すればDK2で眺めながら人形遊びができるようになります。また、Head Look Controllerなどを有効にしているとそちらも反映されるようです。

実行結果

unity5_qumarion_001.png

操作性としては、Qumarionはポジショントラッキング機能はないようなので、例えばQumarionを手前に動かしてもUnity上では移動しないのと、後ろを見ようとしてY軸中心に回転させても反映されないなどその辺が何とかなるとより人形遊びに近づくかと思いました。

[1] QUMARIONをUnityで使うライブラリを公開しました
[2] 連載:Reactive Extensions(Rx)入門
[3] Unity内でMMDモデルを自由に走らせる手軽な方法

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

2015年12月21日

色の類似度を用いたグレースケール化

いつの間にかあと2週間で今年も終わりとは困ったものです。

OpenCVを使用していると、たまに入力がグレースケール指定のものがあります。単純にグレースケール化しても良いのですが、例えば赤っぽさで明暗にしたグレースケール画像を入力した方が都合が良い場合もあるかと思います。

というわけで、色々な誤差(類似度)[1]を使ってカラー画像をグレースケール化してみました。HSVに関しては、参考サイトの式ではなく、色相は1周するのでその辺を考慮した[2]のと、Hの類似度(0〜1)×彩度(0〜1)という彩度が低いと類似度が低いという適当な式で計算したものです。

実行結果

rainbow.png
                原画像
Paintて適当に作った画像です。

赤との類似画像

red_SSD.png red_ZNCC.png red_HSV1.png
        SSD               ZNCC                HSV

青との類似画像

blue_SSD.png blue_ZNCC.png blue_HSV1.png
        SSD               ZNCC                HSV

緑との類似画像

green_SSD.png green_ZNCC.png green_HSV1.png
        SSD               ZNCC                HSV

HSVやZNCCを使う場合は分母が0に近づく時が困りますね。

[1] 色の類似度
[2] hue値を使った色類似度計算についての試行

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

2015年11月24日

PolyVoxの使い方についてのメモ

いつの間にか11月下旬ですね…。もう来月で一年が終わってしまうとは困ったものです。
以前の記事でも使っていましたが、PolyVox[1]をMinecraft風に使う場合のメモです。

PolyVoxでは、表面ポリゴン抽出を、マーチングキューブス法を使ってなるべく滑らかな表面を作成する方法と、Minecraftのように立方体が積み重なったような表面を作成する方法のどちらかを選ぶことができます。

CubicSurfaceExtractorWithNormalsでは、ボリュームデータから表面ポリゴンを立方体ベースで作成してくれます。このとき、ポリゴン情報とボリューム格子番号の対応が取れないっぽいのですが、マテリアル番号は格納されているようです。

まず、Minecraft風のボリュームデータでは、各格子が持つデータ1バイト(0〜255)をマテリアル番号として、0を空気、それ以外を物体とします。今回は例題としてMagicaVoxel[2]のサンプルデータを読み込んで、それをボリュームデータとしてそのまま適用しました。

で、ポリゴンデータはチュートリアル[3]にもあるように、下記3行で抽出できます。


  SurfaceMesh<PositionMaterialNormal> mesh;
  CubicSurfaceExtractorWithNormals< SimpleVolume<uint8_t> >
    surfaceExtractor(&volData, volData.getEnclosingRegion(), &mesh);
  surfaceExtractor.execute();

次に、頂点座標やマテリアル番号の参照方法ですが、こちらもチュートリアルを参考にします。

  //Convienient access to the vertices and indices
  const vector<uint32_t>& vecIndices = surfaceMesh.getIndices();
  const vector<PositionMaterialNormal>& vecVertices = surfaceMesh.getVertices();

  for (int i=0; i<vecVertices.size(); i++)
  {
    float p[3], n[3], materialNo;
    p[0] = vecVertices[i].position.getX();
    p[1] = vecVertices[i].position.getY();
    p[2] = vecVertices[i].position.getZ();
    n[0] = vecVertices[i].normal.getX();
    n[1] = vecVertices[i].normal.getY();
    n[2] = vecVertices[i].normal.getZ();
    // float型
    materialNo = vecVertices[i].getMaterial();
  }

あと、テクスチャ座標は取得できない?ようでしたので、面と頂点座標情報から適当に生成して1面に1枚下記画像を張り付けるようにしてみました。
polyvox_test2_003.png

voxファイルにはマテリアル番号と対応する色パレットがありますので、色×テクスチャ色で適当に色付けしています。

実行結果
biome.voxを使用させていただいております。問題があればお知らせください。

 polyvox_test2_001.png polyvox_test2_002.png

まぁMagicaVoxelでPlyやObjで出力できますので、MagicaVoxel対応データをポリゴン化する意味はないですが、現状ではサイズ制限がありますので、大きめのボリュームデータをとりあえずボクセル化したい場合などには使えるかなとは思います。

[1] http://www.volumesoffun.com/polyvox-about/
[2] https://ephtracy.github.io/
[3] http://www.volumesoffun.com/polyvox/documentation/0.2.1/manual/tutorial1.html
web拍手 by FC2
posted by シンドラー at 00:23 | Comment(0) | TrackBack(0) | OpenGL & Metasequoia | このブログの読者になる | 更新情報をチェックする

2015年10月30日

位相限定相関法(POC)のテスト

以前ちょっと試してそのまま放置していたので何となく整理しました。参考サイトもたくさんありますし、OpenCVでも実装されているようです[1]〜[4]。

2枚の画像のマッチングを行うときに、フーリエ変換して位相情報のみの相関をとって逆変換すると、平行移動量の所にピークが出るみたいです。

で、ピークの様子を確認するのにgnuplot等で表示すればいいのだと思いますが、画像サイズと等しいXY平面ポリゴンを作成して、値を高さZにするディスプレイスメントマッピングみたいなものを作ってみました。

POC_002.png

POC_003.png

上記の計算をしてPLYで出力するサンプルプログラムです。法線計算とか除いています。今回は表示をMeshLab上でやっていますが、法線計算もMeshLabでやればいいかと思います。
plytest.cpp

実行結果
poc_001.png

ついでにLenna画像で試してみました。高さはグレースケール化した時の輝度値です。

POC_006.png
横から見た結果
POC_008.png POC_007.png
       光源なし              光源あり

後は高さマップや法線マップを読み込んでポリゴンで出力するバージョンも作ってみました。画像から読み込んで出力する値を変更しただけですが。
POC_005.png
[5]の画像を使用させていただいております。

話が逸れましたが、まずは平行移動させた画像です。同一画像の場合、ピークが画像の中心に来ますので、平行移動量は画像の中心からどれだけずれているか、になるのではないかと思います。

POC_010.png POC_011.png
原画像

POC_004.png
ピーク画像

結果としては完全に一致していたと思います。ペイントで適当に移動させただけですので、サブピクセル単位のずれはありません。

次に、回転角の計算です。こちらはRIPOCというもので、2枚の画像をフーリエ変換して得られたスペクトル画像をLogPolar変換した画像からPOCで平行移動量を求める、という方法のようです。おそらく。

POC_010.png POC_012.png
原画像

POC_013.png
LogPolar変換した2枚の画像
(平坦な部分に見える線が横(画面奥方向)に平行移動している。今回は横方向がθ)

POC_009.png
ピーク画像

LogPolar変換で、今回は横軸にθ(-PI〜PI)をとっていますので、画像の幅が512ピクセルであれば、512ピクセルで2PIラジアンのずれ、ということになります。端の方が大きい値をとっていますので、変換バグがあるかもしれません。

計算した結果、横方向に48ピクセルずれたところにピークがありましたので、2PI*48/512ラジアン≒33.75度となりました。確かGIMPで33.4度回転させた気がしますので、大体あってそうです。もっと精度がほしい場合はピーク位置をsinc関数か何かで出す必要があるみたいです。

[1] http://d.hatena.ne.jp/suzume_r/20100515
[2] http://authorunknown408.blog.fc2.com/blog-category-1.html#39
[3] http://www.soaristo.jpn.org/blog/archives/2015/02/150214.php
[4] http://cvl-robot.hateblo.jp/entry/2014/02/06/171541
[5] http://www.bencloward.com/shaders_offset.shtml

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

2015年10月16日

[Unity 5] FPS移動のためのクラッチ操作のテスト [DK2]

ダンジョン探索系のコンテンツで、視点変更にマウスを使うものがあります。あれはもう駄目ですね。酔います。しかし、後ろを振り向きたい場合、現状のOculus Rift DK2ではトラッキング範囲の限界などもあり何か工夫しないと難しいです。

可動範囲が決まっているマウスの場合、持ち上げている間はマウスカーソルが動かず、領域の端に来たら持ち上げて可動範囲内に戻す、というのを繰り返します。これをクラッチ操作と呼ぶこともあるようです。

今回は、このクラッチ操作を導入してみるテストです。左を向いて、これ以上後ろを向けない場合、キーを押しながら首を前向きに戻す、というのを繰り返す感じです。

仕様
・キーボードを押している間は、Y軸回転を無効化する
 →押した瞬間の向きを保存しておき、押している間はY軸回転の逆回転を親ノードに適用する
 →トラッキングを無効化する操作なので、ユーザが能動的に行わないと酔いそうなため
・キーボードを押している間は、画面を暗くする
 →トラッキング無効化中であることを認識しやすくするためと、酔いを軽減するため

というわけで、カメラに適用するスクリプトは下記のものになります。mainCameraはHMDの位置姿勢で上書きされますので、その親にdummyのGameObjectをつけています。
HMDWalkScript.cs

実行結果

首を限界まで回して、これ以上回らないところでキーを押して前を向く、ということをやっているのですが、動画だとさっぱり伝わりませんね。

感想

慣れると違和感なく操作できました。それ以前に、ただ単に前進しているだけでも体が動いていないのに視点が動くせいで酔ってしまったので、FPSは酔いやすい自分には厳しそうです。以前やったテレポート移動+今回のクラッチ操作が良さそうですかね。適用できるゲームが減ってしまいそうですが。

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

2015年10月15日

Unity 5でG-Bufferのテスト その4

時間が開くと色々忘れて困ったものです。前回のHeadモデルは、1マテリアルの1テクスチャなので問題なかったのですが、一般的なモデルは複数マテリアルで複数テクスチャを使っていて色々大変です。

今回は、マテリアル番号を確認するために、G-Bufferに前回と同様にマテリアル番号を出力して、そのデータを元に特定のマテリアル番号の所だけに特殊な処理をしたり、エッジを表示したりするテストです。

G-Bufferの出力は、前回と同じRenderGBuffer.shaderを使用しています。

手順
1. カメラにDrawEdgeTest.csを割り当てる
DrawEdgeTest.cs
2. ShaderにCustum/DrawEdgeを割り当てたマテリアルを準備する
DrawEdge.shader
3. SSS Matのところに上記マテリアルを割り当てる

後は前の手順なども併せて適当に色々やった気がします。

実行結果


TargetMatNoのところをいじると、マテリアルの境目に赤いエッジが表示されます。これはG-Bufferに出力したマテリアル番号にラプラシアンフィルタを掛けて閾値以上の所を赤色にしていたと思います。

TargetMatListの所に追加したマテリアルは、今回は青色にする処理だけを行っています。このような感じで、処理対象とするマテリアル番号を渡すようにすれば、特定のマテリアルだけに何らかの処理が可能となります。

この辺の処理は重そうで75fpsはきつそうなので、そろそろOculus Rift関係に戻ろうかと思います。

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

2015年10月03日

録音のテスト

いつの間にか10月ですね。困ったものです。

画像や音声の処理をする場合の補助として、切出しやキャプチャツールみたいなものを時間がある時に作っていました。今回は録音のテストです。この辺りはWindows 10になると動かなくなったりするんでしょうかね。

参考サイト[1][2]を見れば特に問題ないかと思います。ステレオミキサーを使うみたいですので、無効になっている場合は[3]等を参考に有効化します。

[1][2]はWindowsアプリケーションで作成していて、コンソールアプリケーションで作成している例が見当たらなかった(ちゃんと探してませんが)ので、そちらで作成してみました。

そのため、なるべくウィンドウプロシージャは使いたくなかったのでコールバック関数[4]を一つ使うようにしてみました。これで合っているのかどうかはわかりません。

基本は[1]のソースコードを[2]を参考に複数バッファ・動的サイズ変更できるようにHeapReAlloc[5]関数を使うように修正した感じです。

以下ソース。エラー処理などもしてません。何か問題があっても責任は取りません。
WaveTestConsole.cpp

WAVEを再生すると音が小さくなってる気がするのですが原因などはよくわかりません。

参考サイト
[1] 入力デバイスによる録音
[2] 音声の入力
[3] パソコンで流れる音を録音する方法(ステレオミキサー)<Windows(R)7>
[4] waveInProc
[5] HeapReAlloc
web拍手 by FC2
posted by シンドラー at 15:20 | Comment(0) | TrackBack(0) | OpenAL | このブログの読者になる | 更新情報をチェックする

2015年09月08日

Unity 5でG-Bufferのテスト その3

続きです。[1]には、16.4にテクスチャベースのSSSについても書かれていて、割とよく使われている方法かと思います。なぜかこれまでやってなかったのでUnity 5とG-Bufferで適当に試してみることにしました。

まずは、テクスチャ座標を展開したような画像を生成します。Vertex Shaderで、テクスチャ座標(0〜1)が取得できると思いますが、これを-1〜1に広げてフラグメントシェーダの頂点として渡せばよい、ということになります。この辺、MMDモデルなどでは複数マテリアルでテクスチャ座標が重なっていたり、顔のテクスチャが半分しかなく、顔の左右で同じテクスチャ座標を持っていたりして、一工夫が必要です。

そこでまずは簡単のために、CGの論文?などでよく見るHeadモデル[3]で試してみることにしました。Unityに.objを読み込むとオブジェクトが複数Groupに分かれていたり表示がおかしかったので、一旦Metasequoiaで読み込んで、1オブジェクト1マテリアルとして出力しなおしました。あとはバンプマップの.pngもうまく読み込めなかったので.bmpにしました。[2]によると16-bit .pngとあるので、それで駄目だったのでしょうか。

MaterialをStandard Shaderにしてレンダリングした結果は下記のようになります。テクスチャが細かいのとGIなのでこれでも十分な気がしますね。

Unity5_sss_001.png

以下手順です。

0. カメラにSSSTest.csを設定、SSS MatにCustom/SSSShaderを割り当てたマテリアルを設定
SSSTest.cs

1. テクスチャ座標を展開した画像をRenderTextureに出力

多分Unityのビルドイン変数や関数を使えばいいのだと思いますが、C#スクリプトからワールド座標や光源の位置や行列を渡しています。[1]では単純に-1〜1にしていますが、上下逆になるのでy座標は反転させています。

UnwrapShader.shader

Unity5_sss_002.png

また、本来はdotNLだけですが、周辺を明るくしたかったのでリムライティングも入れてみることにしました。

Unity5_sss_003.png

2. テクスチャ座標やオブジェクト番号などをG-BufferとしてRenderTextureに出力

最終的にDeferred Shadingで合成するためには、普通にレンダリングした結果と、その座標が持つテクスチャ座標も必要になります。Unityが提供しているG-Bufferには、テクスチャ座標がなさそうな感じでしたので、自前で出力します。ついでにオブジェクト番号や、MMDモデルなどの場合はマテリアル番号なども出力する必要があるかと思います。

RenderGBuffer.shader

Unity5_sss_004.png

Skydomeはテクスチャ座標がないので黒、床はオブジェクト番号を設定していないのでテクスチャ座標のみ、モデルはBlueに1.0を設定しているので、これを使ってSSSする部分とそれ以外を区別します。

3. 1. のテクスチャを適当にブラーして、通常のレンダリング結果と合成

ブラーについては、[1]のものを参考に、[3]のブラーの重み付けを参考にやってみました。本当は複数枚のブラー画像を作成して合成する必要がありますが、手抜きで1枚しか使っていません。あと、歪みの補正みたいな話も[3]には載ってますがそれもやってません。

SSSShader.shader

ブラー画像はこんな感じです。

Unity5_sss_005.png

そういえばRenderTextureの背景色を肌色っぽい色にしていたはずなのに、なんで黒色なんでしょうか。その辺含めてバグがありそうですね。

実行結果

SSSなし
Unity5_sss_009.png
リムライティングなし
Unity5_sss_007.png
リムライティングあり
Unity5_sss_008.png
ブラーしたテクスチャ色のみ
Unity5_sss_006.png

[1] http://http.developer.nvidia.com/GPUGems/gpugems_ch16.html
[2] http://graphics.cs.williams.edu/data/meshes.xml
[3] http://news.mynavi.jp/column/graphics/061/

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

2015年09月02日

Unity 5でG-Bufferのテスト その2

G-Bufferの使い道ということで、とりあえず[1]の16.3 Simulating Absorption Using Depth Mapsを試してみようとしたのですが、色々と詰まりましたのでメモしておきます。まだ色々間違いがありそうですが。

1. RenderWithShaderで光源からの深度値のレンダリングはForwardで行う

レンダリングパスを全部Deferredにしていると、OrthogonalではレンダリングできるのにPerspectiveでは動かないという状態になりました。[2]に同じ症状の人がいましたので、Forwardにして対応しました。

2. 深度値のマクロが色々あってどれを使えばいいのかわからない

これもちゃんと一つ一つシェーダのコードを見ていけばわかるんだとは思うのですが、UnityCG.cgincに色々便利関数が定義されているんですがどれを使ってシェーダ上でどれを使えば参照できるのかなどがわかりにくかったです。まだ怪しいので要検証ですが。

3. 右手系、左手系、OpenGL、DirectXなのかわからない

色々な環境に対応するために色々な工夫がされているようですが、座標系がわかりにくかったです。環境設定のせいかもしれませんが、C#スクリプトでMatrix4x4を使う分にはOpenGL系に見えるんですが、深度値の範囲などシェーダ側ではDirectX系になっているようで、G-Bufferからワールド座標の計算などがなかなかうまくいかなくて大変でした。[3][4]にあるように、DirectXを使用する場合には、C#スクリプト側でDirectX用にプロジェクション行列を変換しないといけなかったようです。

手順
1. 平行光源とそれを子に持つサブカメラを追加する
2. 上記サブカメラにはRenderTextureにRenderWithShaderを使って深度値を書き込むスクリプトとシェーダを設定する。この辺りは[5][6]も参考にさせていただきました。
DepthRenderer_002.cs
RenderDepth_002.shader

3.メインカメラにG-Bufferを取り扱うスクリプトとシェーダを設定する。サブカメラの位置は、対象となるThirdPersonCharacterのZ軸方向後ろ上に角度で指定した位置に設定する(Update関数内)。
GBufferTest_002.cs

シェーダでは、G-Bufferでメインカメラで映っているピクセルのワールド座標を計算し、その座標をサブカメラから見た場合のワールド座標との位置差(length)を使って薄いところは明るく、厚いところは暗くするようにする。
TestShader_002.shader

C#スクリプトからマテリアルには、SetTextureやSetMatrixを使うと色々データを渡せて、それをシェーダ側で参照できることがわかりました。

実行結果

スクリプトでキャラクタが移動したり光源の角度を変えてもうまく光源からの深度値が取れるようにサブカメラの位置を制御しています。

gbuffer_test002_004.png

サブカメラの角度を変えると、一応光源の位置に応じた厚みで色が変わります。

0度
gbuffer_test002_002.png
30度
gbuffer_test002_001.png
60度
gbuffer_test002_003.png

[1] GPU Gems Chapter 16. Real-Time Approximations to Subsurface Scattering
[2] Unity Answers - A Problem About RenderWithShader and Camera Orthographic
[3] Screen Space Reflections
[4] Unity Answers - How do I reproduce the MVP matrix?
[5] kode80 - Screen Space Reflections in Unity 5
[6] Unityのオフスクリーンレンダリング
web拍手 by FC2
posted by シンドラー at 01:31 | Comment(0) | TrackBack(0) | Unity 5 | このブログの読者になる | 更新情報をチェックする

2015年08月21日

Unity 5でG-Bufferのテスト

OpenGL+GLSLの頃には、大体G-Bufferを使った遅延シェーディング(Deferred Shading)をやっていたので、Unity 5でやる場合のメモです。Unityも5から遅延シェーディングに対応したはずで、G-Bufferも取得できるそうです[1]。

シェーダ
_CameraGBufferTexture0: RGB拡散反射色、Aは未使用
_CameraGBufferTexture1: RGB鏡面反射色、Aは粗さ
_CameraGBufferTexture2: RGB法線ベクトル(0〜1)、Aは未使用
_CameraGBufferTexture3: 発光とかライティングとかも入ったテクスチャ

ということで、深度バッファはG-Bufferの中には入っていないようです。深度バッファは別枠で指定できるようです[2][3]。

カメラのスクリプト内のどこか
_camera.depthTextureMode |= DepthTextureMode.Depth;

シェーダ
sampler2D _CameraDepthTexture;

というわけで、[4]を参考にさせていただき、GBufferを切り替えるサンプルを作成してみました。

手順
1. 床とStandard Assets→Characters→ThirdPersonCharacter→Prefabs→ThirdPersonControllerを追加
2. 必要ないけれどStandard Assets→Environment→Water→Water→Prefabs→WaterProDaytimeを追加
3. Edit→Project Settings→Player→Rendering PathをDeferredにしておく

Ethanのマテリアルを適当に変更したりした結果
Unity5_gbuffer_001.png

4. AssetsにMaterials, Shaders, Scriptsディレクトリを作成
5. それぞれにTestMaterial.mat,TestShader.shader, GBufferTest.csを作成(名前は適当)

6. カメラにつけるスクリプトGBufferTest.csの実装
GBufferTest.cs

DepthTextureのモードの設定と、後はImageEffectのところでTestMatというマテリアルを適用しているだけです。

7. TestMaterialに割り当てるシェーダTestShader.shaderの実装
TestShader.shader

フラグメントシェーダで各種G-Bufferを取得して表示しているだけです。ぐるぐるなエフェクトは[4]を参考にさせていただいています。

8. TestMaterialのShaderにCustom/TestShaderを割り当てる
Unity5_gbuffer_002.png
ここのTexture Noでシェーダの処理を切り替えます。

9. Main CameraにGBufferTest.csをドラッグ&ドロップして適用する
10. TestMatにTestMaterial.matをドラッグ&ドロップして適用する

以上です。

実行結果

カラーバッファ                     スペキュラバッファ
Unity5_gbuffer_004.png Unity5_gbuffer_005.png

法線バッファ                      光源計算付カラーバッファ
Unity5_gbuffer_006.png Unity5_gbuffer_007.png

深度バッファ                      ぐるぐるエフェクト
Unity5_gbuffer_008.png Unity5_gbuffer_009.png

後、遅延シェーディング自体書き換えたい、という場合はEdit→Project Settings→Graphics→Built-in shader settingsのDeferredのところにBuilt-in Shaderのものが割り当てられているので、自分で書いたものに差し替えたりもできるみたいです。

[1] http://docs.unity3d.com/Manual/RenderTech-DeferredShading.html
[2] http://tips.hecomi.com/entry/2014/03/16/233943
[3] http://www.kode80.com/blog/2015/03/11/screen-space-reflections-in-unity-5/
[4] http://www.slideshare.net/calmbooks/unity-38485570

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

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。