アーティストの言葉で シェーダ体系の説明

GCS2013において、SIG-TAのショートセッションで講演させて頂きました。

絵周りのテクニカルアーティストが 扱っているようなシェーダについて、
光学言語ではなく 普通にアーティストが使う、絵の文法を使って説明する。
という試みです。

スライド

口頭の内容も、スライド内に 粗くキャプションで入れてあります。

カテゴリー: TECH

パーマリンク

Simon schreibt Blogのゲーム技術ネタ

Simon schreibtさんのBlog、
ゲームのArt系 技術小ネタがいっぱいで、
アニメーションGIFによる説明も多く、とても面白いです。
http://simonschreibt.de/game-art-tricks/

記事は、自作タイトルからのメイキング的なものと、
皆で技術を推測してみているものが 混在しています。
以下、各回の概要(と たまに注釈)メモ

#1 Fallout 3 – Edges
法線マップ付きのパンチスルーを重ねる事による破損表現 


#2 Teleglitch – Viewcones
見下ろし型ゲーム用の視野マスクを 外にオフセットして、壁自体は見えるように 
 


#3 Teleglitch – RGB Flickering 
RGBチャンネルに個別のデフォームをかけて歪み表現 
 

#4 Diablo 3 – 2.5D Trees 
カメラマップオブジェクト
(これにディティールマップで質感つけると使い勝手良いです) 
 

#5 Warcraft 3 – Billboards 
球をビルボードで表現(マリオ64のワンワン的な)
. 
 


#6 Divine Divinity – 2D Reflexion 
スプライトのミラー空間配置 
 


#7 Cell Shading 
べベル+法線反転モデルによるトゥーン輪郭線 
 

#8 Deus Ex – Occlusion 
オクルージョン表現 頂点カラー~SS 
 


#9 Deus Ex 3 – Folds 
UVゆらぎアニメーションによる旗表現 
 


#10 Deus Ex – Scan Lines 
MIPMAPが適正でないディティールマップを利用した、画面内モニターのモアレ表現
. 
 


#11 World of Warcraft – Balloon 
簡易環境マップ(litsphere)による内部発光表現
(後半に出てくる 中心位置ズレは、視線ベクトルにカメラ画角を考慮しないと起きます) 
 

#12 Assassins Creed 3 – Windows 
環境マップ(を透過ベクトルで取る)による室内表現、部屋壁と内装の多重スクロール 
 

#13 Assassins Creed 3 – LoD Blending 
遠近LODモデルをパンチスルーのディザー表現でフェードする。半透明でないのでフォグにも強い 
 

#14 Kid Icarus – Tricks 
UVスクロールによる布表現、短冊で炎表現、
球状の液体が分離する表現(繋ぎ部分をモデルで用意)、
描画順を指定したビルボードによるボリューム表現
 
 

#15 Left 4 Dead – Puke 
シリンダー内の液体をボーンRotで物理っぽく揺らす
. 
 

#16 Sacred 2 – Crystal Reflexion 
スクリーンスペースでクリスタルの反射
(FFCCやFF12のクリスタルも これっぽかったですね) 
 

#17 Sacred 2 – Pulse Shader 
点滅アニメーション用テクスチャ。
R=タイミングをばらけさせる為のディレイ
G=点灯時間
B=消灯時間
 
 

#18 Battlefield Bad Company 2 – Smoke Column 
巨大な煙のアニメートで、UVスクロールする煙模様を重ねる
(元の輝度に応じてブレンド率を~と書かれていますが、これはBattlefieldが リニアカラー空間にレンダリング後モニターカラー空間にカラコレしている為、グラデーションが指数的に見えるだけで、
普通に半透明合成で 煙マスク上に重ねているように思います ) 
 

#19 Battlefield 2 – Flag Pole 
サウンド。旗がそよいでるだけのオブジェクトに、ポールにロープが当たる音を割り付けてるのがナイス 
 

#20 Sacred 2 – Burning Map 
紙が燃える表現のワイプ。高さマップに閾値バイアス足してグラデーションマップ変換
. 
 


#21 Assassins Creed 3 – Bouncing Light 
地面からの照り返しをGI系でなく逆太陽光源おいて表現
(奥の壁や、 ゲート側面は照り返しているけど すぐ横の 同じ向きの壁が照り返していない事を見るに、単純な3rdLightではないような気が。 WorldAO で遮蔽度高い所を、マルチ露出的に照り返し強めて…とか?) 
 

#22 Airborn – Trees 
ふさふさの樹。
遮蔽担保用の不透明の芯球と、周りの短冊。法線は芯球に寄せる。
 
 


#23 1943- Retro Shadows 
レトロゲーの影。パンチスルーメッシュとか点滅とか懐かしい 
 


#24 Metal Gear Rising – Slicing 
MGライジングの切断。
L4D2のステンシル手法ではなくメッシュ生成。厚み持ってる。その他気になった仕様
 
 

#25 Dead Space 3 – Diffuse Reflections 
床の反射。
画面バッファからのフェッチだが、限定レイトレースしている

. 
 


#26 Homeworld 2 – Backgrounds 
天球テクスチャを頂点カラーに焼く。
独特のタッチになるが容量対比で綺麗なグラデーション持てるかも
 
 

#26.2 Homeworld 2 – Backgrounds.Tech 
続・天球テクスチャを頂点カラーに焼く(メッシュ生成)ツール、検証。 
 


#27 Diablo 3 – Resource Bubbles  
球面回転っぽいUVスクロールの為の ディストーションメッシュ 
 

#28 007 Legend – The World 
球面回転っぽいUVスクロールの為の ディストーションテクスチャ
(でもこれ DXTで持っても、解像度256×256で限界こない?リニア補間されるのかな) 
 


#29 Homeworld 2 – Engines 
大型宇宙船のエンジン炎、
端を逆フレネルで暗くしたスフィアを 3サイズ加算で重ねて
ボリューム表現。
小型宇宙船はスプライト並べる手法で。
あとスポットライトのボリュームもスライスが見える、という話
 
 

#30 Homeworld 2 – Hyperspace
ワープエフェクト、動的ブーリアン?
(SketchUpの断面エフェクト的な。)

カテゴリー: TECH

パーマリンク

Blender2.65 Cycles用サンプルシーン

[ENG]

Blender2.65 Cycles(OSL)用のサンプルシーンです。
eka_cycles_materialset.zip [1.36MB]




HDRレンダリング環境用のSkyマテリアル,
汎用のUberマテリアル,液体用のLiquidマテリアル、
テスト用のSuzanneモデル、カメラリグで構成されています。

____

Skyマテリアルは、ふたつのSkyテクスチャ(ライトスキャッタリングで生成されるグラデーションテクスチャ)を雲のマスクで合成します。

Skyテクスチャは太陽に照らされた大気の陰影を表現してくれますが、太陽そのものは描かれていません。太陽(発光球オブジェクト)を加えて、クッキリしたハイライトやコントラストを作ります。

太陽オブジェクトは Skyテクスチャのsun_directionに連動するようになっていますが、このドライバにはバグがあって、Skyテクスチャ上の 値の変更が、うまく検出されません。
…なので、アレですが、”sun_vector_target”,を選択して、グラフのdriverプロパティを開き、”Show Debug Info”チェックボックスをon/offして、手動で値を更新する必要があります…。

____

Uberマテリアルは、
一般的なオブジェクトに使う為の 汎用マテリアルです。

Cyclesでは大抵、まず、GlossyシェーダのRoughnessを調整する形で 質感を調整します。しかし、これだけではRoughnessの高い(表面の粗い)マテリアル表現として十分ではありません。

そこでDiffuseシェーダを

材質の屈折率に応じたFresnelで合成して、
中間的な質感表現に使います。

この辺りの自分調整をパックしたサンプルが、Uberマテリアルとなります。

このマテリアルは、ひとつのDiffuseシェーダと ふたつのGlossyシェーダを、フレネルを考慮して合成します。合成具合はRoughnessパラメータ(0.0~1.0)をもとに自動的にコントロールされます。

Roughness(粗さ)にテクスチャマップを適用してみます。
仮面の部分を Suzanneの顔よりもツルツルにしました。

さらにDisplacementマップを加えます。

現在のCyclesレンダラでは、Displacementマップはバンプマップとして扱われます(レンダリング設定をExperimentalに切り替えるとDisplacementが試用できます)。
バンプマップは 面の方向を変えますが、高さを変位しません。
代わりの表現として、自分で作ったDetail ambient occlusionマップ(細部の陰影をそれっぽく描いたマップ)を適用する事が できます。

それとカラーマップ。

Roughnessが低いほど カラーマップの効果は弱くなりますが、DetailAOマップの効果は弱くなりません。

なので、カラーマップは材質の色情報に徹し、モデルとして立体化していない 細かい陰影等を描き加えたい時は DetailAOマップに描き加えて使います。

____

Liquidマテリアルは、液体系のオブジェクト用のマテリアルです。

中身はGlassシェーダが主で、屈折率に応じてGlossyによる鏡面反射がブレンドされます。また、通常のIOR(屈折率)、Roughness(粗さ)以外に いくつかパラメータがあります。

IORsep(屈折率変位)の値に応じて 透過光がスペクトラム分離します。
opacity(不透明度)を上げるとTranslucentシェーダによる濁った表現がブレンドされます。

____

カメラは動かしやすいようにリグを組んであります。

cam_rootが カメラ位置、
cam_targetが 目標物の位置、
cam_bankが カメラの傾き、
cam_pintが カメラのピント距離です。

ビューワ用には そのまま使えると思います。
乗り物や人間の視界をイメージしたカメラワークをつける時は、cam_bankをペアレントから外すと 体幹っぽい傾きがつきます。
あとcam_rotRootに首根っこから目までの距離を入れると、顔のLookAtと眼球のLookAtを使い分けられて便利です。
____
Update
1/09 Uberマテリアル追加
1/10 Liquidマテリアル追加

カテゴリー: TECH

パーマリンク

iPad 操作感が良いゲーム

タッチ操作が練られる中で、
感触の良いゲームが増えてウハウハです。

_

[スラッシュ]

Monsters Ate My Condo
ダルマ落とし

Pudding Monsters
ぷるぷる

Fruit Ninja
斬る
http://www.youtube.com/watch?v=aDydT4UALac

_

[ドラッグ]

4 Elements2
揃えるパズルと砂遊びパズルが多重

ペリーどこだ?
砂遊び

Aqueduct
もの凄く手触りが軽い+手数制限なし

Splice
プチっと関節をもぐ

ElectroMaster
タメ+移動 と 振り回し+移動、2種類のドラッグ感

Catapult King
ぱちんこ引く

Wonderputt
ちまちま flash版

怒首領蜂大復活
リッチなリアクション

Solitaire City
カード滑らす

Reactable
編曲

_

[タップ,長押し]

Hundreds
整理収納

Blot
マリオの水中

bit Dungeon
タッチ カジュアル ディアブロ flash版

http://www.youtube.com/watch?v=GqnVSWDosgU

Tetris
まさかの4択クイズ方式が、意外と 高速レベルの操作感に近い

_

[バーチャルコントローラ]

Minigore 2
デフォルメや地形込みで、バーチャルコントローラに雑さを揃えてある

Dynamite Jack
ルート掃引との使い分け

カテゴリー: bookmark

パーマリンク

2017年5月
« 1月    
1234567
891011121314
15161718192021
22232425262728
293031  

comment