記事一覧

Anamorphic Lensflare その2

ファイル 215-1.jpgファイル 215-2.jpg

前のより良いのができたかもしれない。
原理はすごい簡単。

新型ブラー

強度や視界の中心付近で効果を弱まらせることができるので、視点に合ったDoFを簡易的に表現できます。

ファイル 214-1.jpg
クロマブラーのみ


ファイル 214-2.jpg
クロマブラー + 新型ブラー


ファイル 214-3.jpg
上:クロマブラー + 新型ブラー
下:クロマブラーのみ


ファイル 214-4.jpg
単純に画面の外側になるほど効果が強い。

Minnaertモデル

ファイル 213-1.jpg

しっとりとしたシルクの布表現とかに使えます。
あんまり無いかそんなの。
WL-ShaderのClothをCustomLightingに作り変えて導入。ノーマルマップがらみのバグを修整。

ありがたいソース
http://oliverm-h.blogspot.de/2012/02/how-to-use-minnaert-reflectance-for-ue3.html

予定
・カスタマイズ可能なImage Grainのポストプロセス
・もうすこしカメラなどで撮影した状態をシミュレートしたAAの補助的なブラーっぽいポストプロセス
・キューブマップの導入(今キューブマップを量産している)

ZBrushによるハイレベルな映画キャラクタの作成 レンダリングはUDK

http://www.zbrushcentral.com/showthread.php?168180-UDK-Realtime-Davyjones-and-other-characters

Dx11のSSS+Tranmissionでキャラクタ特有のわずかな光の透過がリアル。
テッセレーション+ディスプレイスメントマップも活用し、ZBrushのディテールを維持。リアルタイムには見えない。
何よりZBrushのモデリングとテクスチャペイントのクオリティには学ぶところもありますね。

WL-Shaderも一部使われています。次の更新内容のアイデアもいただきました。

WL-Shader v1.2

Sky・POMの新しいマテリアルを追加。
いくつかの処理内容を修整。
まだおかしいところもあるけど、区切りがいいと思うので公開。
v1.1の後からブログで報告していた内容が全て入ってます。
そのままな二次配布を除いて使用制限はありません。

追記:
見つからないポストプロセスのマテリアルを参照することによるエラーを修整して再度アップロードしなおしました。
最初にエラーが出る状態でも、そのまま上書きすれば修復されると思いますが、念のため。

ファーシェーダ@UDK(失敗)

ファイル 210-1.jpg

UDKのマテリアルエディタにはポリゴンを生成するジオメトリシェーダの機能にアクセスする方法が無いので、輪郭部分の毛の表現がどうしても不可能。あったとしてもやり方分からないけどね。
フレネルとオフセットを兼ね合わせて輪郭を削ろうとしているけど、やっぱり無理がある。

ジーンズ作成4

ファイル 209-1.jpg

ファイル 209-2.jpg
テクスチャを一まとめにしたいので、全モデルのUVができるまでノーマルマップのベイクのみ。
シワとか縫い目等はZBrushでレイヤ管理しているのでまだ修整可能。

これは一年半前にBlueMars用に作ったジーンズ。手順は同じだけど、これより良いのを目標に。
http://unreal.rgr.jp/diary.cgi?no=58

HighLightOffset

ファイル 208-1.jpg
衝動的にこんなシェーダを作った。直線的な髪のテクスチャ限定だけど、かなり有効な機能だと思う。
今のところオフセットの強さとオフセット用テクスチャのタイリング時のサイズ変更が可能

参考資料
http://developer.amd.com/media/gpu_assets/Scheuermann_HairSketchSlides.pdf

http://game.watch.impress.co.jp/docs/series/3dcg/20100401_358445.html
髪の毛の表現あたり

ファイル 208-2.jpg
荒めのノイズに移動ぼかしフィルタをかけたようなテクスチャでランダムっぽく法線情報を変化させる。ちなみにライティングモデルはMLM_Anisotropicです。

Character12

ファイル 207-1.jpg

前作ったやつをベースに作業開始。

Parallax Occlusion Mapping@ UDK その2

ファイル 206-1.jpg
凹凸用のマップをノーマルマップのアルファチャンネルに入れようと思ったけど、BC5形式だとダメっぽいので専用のテクスチャのアルファチャンネルに入れて使っている。

ファイル 206-2.jpg ファイル 206-3.jpg
デカル機能を使うことにより、凹凸感のあるディテールも追加できる。
http://udn.epicgames.com/Three/DecalsHomeJP.html

UDKのFBXインポート

ActorXで作成するPSK/PSAのインポートが無くなってました。これからはアニメーション関連もFBXで行うらしい。確かにFBXは今まで出来なかった機能の属性を含ませることができるし、モーフやアニメーションなども一括で更新できたりするので非常に便利で作業もやりやすい。
またActorX等のプラグインが無いソフトでもFBXは大抵のソフトでサポートされているし、MayaやCinema4Dのように高さ方向の軸がYのソフトでオフセットの回転を加えなくてもそのまま使える。
StaticMeshのインポートもずっと前からFBXでやってます。


ファイル 205-1.jpg
FBXのインポート時にファイル内の構成を確認できるという徹底ぶり。
複数のオブジェクトが有る場合、一つのStaticMeshに結合させたり個別にインポートさせることも可能。個別にインポートする場合、"Name_シーン内のオブジェクト名"という名前でインポートされる。シーン無いのオブジェクト名だけにしたい場合はNameの部分を空白にすればいいだけ。

距離によるテッセレーション減衰

UDKのテッセレーションは標準でもある程度分割の減衰を行うが、広大なメッシュに使用すると最低限の分割を行ってしまい、広い海面では重すぎて使えなかった。
そこで、カメラからの距離に応じてTessellationFactorsに小さな数字を入れる処理を追加し、凹凸マップと0.5の凹凸無しを掛け合わせるAlphaにも追加した。
遠距離の並みの波形はノーマルマップだけで十分。


ファイル 204-1.jpg
ファイル 204-2.jpg
ファイル 204-3.jpg
ただ多少問題があり、ソースモデルのエッジ部分と分割度合いの変化している部分が重なると生成されたポリゴンも分離してしまっている。
非透明にすると目立ちやすい。

VertexShader

葉と動きは頂点カラーを仕込んで、その色のRGB各チャンネルで異なる属性の動きを処理させます。

UDK Wind Vertex Shader
http://www.minifloppy.it/tutorials/7/udk-wind-vertex-shader
UDKサンプルマップのFoliageで使われている葉の動きをパフォーマンス面で改良(個人的に見つけたバグっぽいのも無くなってた)したものらしい。どちらも基本的な処理はCrysisと同じ。
風の設定はWindDirectionalSourceアクタで強度や方向などを統一して設定できるので楽だ。

Maxに限らずMayaでも複数の頂点カラーと加算ブレンドはできるけど、頂点カラーをサポートしていないDCCソフトは多いはず。その場合は専用のカラーテクスチャでも代用可能だと思う。

話は変わるけど、いつの間にかCollada形式のサポートは無くなったようだ。これからはFBX一筋か。

UDKのマシニマをどんなに重くても指定したフレームレートでキャプチャする

UDKのMatinieeにはリアルタイムで動画をキャプチャする機能はある。しかし解像度が高く重い描写だと、パフォーマンス不足になりカクカクな動画になってしまうだろう。
それを解決するのが以下の方法。

UDK Gameのショートカットにパラメータを追加。これはキャプチャ専用のショートカットになり常にキャプチャした状態で動作する。



~UDK-2012-03\Binaries\Win32\UDK.exe NightAndDayMap -BENCHMARK -MAXQUALITYMODE -NOTEXTURESTREAMING -DUMPMOVIE -FPS=30 -ResX=1920 -ResY=1080

これだと毎秒30フレームでフルHDのNightAndDayMapのキャプチャを作成できる。
プリレンダのCGソフトのように一コマずつ描写とキャプチャを行い、生成されるファイルは無圧縮なBMPの連番ファイル。かなりのファイル容量になるので注意。これを何らかのソフトで動画に変換すればいいんだろう。

詳細
http://udn.epicgames.com/Three/CapturingCinematicsAndGameplayJP.html

まだまだ海面シェーダ

今まではマテリアル上で深度の透明を再現していたけど、かなり深いところになると完全に透明じゃなくなるので、これではやはり無理がると思った。
そこで、Crysisの海のように水面下に限定したフォグを試してみるとかなり良い感じに。

ファイル 201-1.jpg

深度による透明(Opacity by Depthと命名)は、Switch機能で呼び出し可能にして、とりあえず無効化。
視点と面の角度によりわずかに透明度が変化する処理はあるものの、マテリアル自体の透明度がかなり高まった。水の色がフォグに依存するところが多くなったが、水の色というのは水の表面部分で決まるわけではなく水の中濁り具合で決まるので、フォグによる海水の色の再現はむしろ良くなったと思う。

ファイル 201-2.jpg
太陽光の透過もバッチリ


ファイル 201-3.jpg
髪のアルファ透過と背景のDoF処理の組み合わせが上手くいかない。
マスクでやらないとダメかな。

雲@UDK

UDKのテンプレートにある空用の球体メッシュには空と雲を再現したマテリアルがあり、今までそれを背景に使っていたけど、今回それを思い切って削除。
そして同じくテンプレートに入っていたExponetial Height Fogだけで空の色を作成し、雲はゆっくりとアニメーションするパーティクルで表現。

ファイル 200-1.jpg
ファイル 200-2.jpg
大きめに作ってそこそな遠距離に配置。太陽光に影響して影やライトシャフトも作るので良い感じです。パーティクルの設定とは別に、マテリアルはFoliageMapで使われているものに多少の手を加えて使用。そのマテリアルがまた良い仕事をしているんだな。

ファイル 200-3.jpg
DoFとTranslucientの2つが絡む処理が完璧じゃないけど、それほど困ることは無いだろう。マテリアルの設定次第で解決するかもしれない。

WL-Shader v1.1

v1.1をアップロードしました。
今後は草木の頂点を風で靡いて揺らす処理やLandscapeのマテリアルを勉強したいと思います。
Downloadsからどうぞ。

Skin material @WL-Shader

ファイル 198-1.jpg
ファイル 198-2.jpg
ファイル 198-3.jpg
左がSkin 右がPhong
スペキュラやノーマルなどの設定は同じ。
SSSとTransmissionで光の浅い透過をシミュレートし、独自の追加スペキュラで潤い(?)を追加

モデルはこちらのを使い、xNormalでノーマルマップだけ作成しています。
http://www.ten24.info/index.php/shop/character-models/free-3d-head-scan-model-52/

http://www.ir-ltd.net/infinite-3d-head-scan-released

i7-3930Kへの換装 その後

MBも交換しなければいけなかったので、OSも再インストールが必要かと思っていけど、ダメもとでそのまま立ち上げてみたらWin7は難なく起動。
メールの設定やらソフトの再インストールが面倒なので、そのまま使使っております。
Win7のライセンスの確認だけがチョロっと出てきたけど、2,3回のクリックで認証された。

UDKのマテリアルやマップのビルドやCPUのレンダリング等、マルチコアに対応している処理がかなり速くなった。
Intelの規格のオーバークロック機能が標準で働いてるようで、クロック数が1.2G~3.8くらいに変動しています。

i7-3930Kにしました

ファイル 196-1.jpgファイル 196-2.jpg

電源・MB・CPU・メモリの交換完了。
一番苦労したのは、CPUのヒートシンクだった。
シンプルで簡単そうなインテル純正のでもよかったと思う。