↔ ページ送り

J スライド一覧

P 印刷用画面

HDRP

High
Definition
Render
Pipeline

Unity が公式に開発配布する SRP のひとつ 最新の機能を詰め込んだ新しいレンダーパイプライン もっと分かりやすく有り体に言ってしまえば……

PS4 を
ベースラインにした
新しいレンダラー

PS4 の AAA タイトルなどでよく使われているレンダリング方式をベースに PS4 および PS4 以降のハードウェアのスペックに合わせて設計されたレンダラー

ここが便利だな、ここがおいしいな、と思ったポイントをアトランダムに紹介


メリットその1
ライティングが
むちゃくちゃ強力

ライティングについて、様々な便利な機能が追加されているうえ、同時に高速化もなされているため、負荷を適度に抑えつつも、凝ったライティングを構築することが可能に

FPTL

その高速化のカギとなるのが FPTL

Fine
Pruned
Tiled
Lighting

Deferred Shading を高速化する仕組み いわゆるタイルベースレンダリングの一種 例えばこんなシーンがあるとする

Directional Light は例外

20 x 10 = 200 個のスポットライト

半透明
Clustered Forward Shading

FPTL は主にパフォーマンスに関係 他にもパワーアップのポイントはある

新しいライト形状
矩形ライト
線分ライト

テレビ画面のような面積を持った光源 レフ板やディフューザーを使ったような柔らかなライティング

Sphere や Disc も追加予定

従来のスタティックなエリアライトと違ってダイナミックな使い方ができるのが面白い

すごく便利
弱点:
明るくなり過ぎがち

シャドウが使えないので

Direct lighting strength


色温度

Volumetric Lighting

(Volumetric Fog)

ライティングについては以上

メリットその2
標準シェーダーがむちゃくちゃ強力

標準の PBR シェーダーが強化されている

ぱっと見では若干パラメーターが増えているかなあ、という程度だが……

Subsurface Scattering
表面下散乱

人の肌、ゼリー、ミルク、大理石

エリアライトとの組み合わせが面白い

Anisotropy
異方性反射

Tangent

Binormal

Iridescence
虹色反射

シャボン玉、虫の羽

Bent Normal Mapping

Specular Occlusion

Displacement Mapping

Pixel displacement (parallax occlusion mapping) Vertex/Tesselation displacement

Pixel displacement は凹み方向のみ 平面への適用のみ正しく処理できる

このようにマテリアルの基本的な表現力が向上しているが それを組み合わせて更に複雑にするための機能が用意されている

Layered Material
レイヤー機能

マスクにはテクスチャと頂点カラーが使える

レイヤーとデカールを使いこなすのがディテール感を出すコツ


メリットその3
カスタマイズに
フレンドリー

カスタマイズされることを想定した設計になっている まず何といっても違うのは……

ソースコードが
GitHub 上に
公開されている

パッケージとして
独立した
バージョニング

シェーダーの
ホワイト
ボックス化

今までのUnity
謎マクロ
謎プラグマが暗躍

謎なブラックボックス部分が多くてカスタマイズしにくいという側面があった

#pragma surface surf Standard vertex:vert addshadow

void vert(inout appdata_full v, out Input data)
{
  UNITY_INITIALIZE_OUTPUT(Input, data);
  ...
}

void surf(Input IN, inout SurfaceOutputStandard o)
{
  ...
}

シェーダーコンパイラが見えない所で生成するものが多く、読み解くにも限界が

普通のC言語風の実装
ソースから解読可能
改造も可能

シェーダーライブラリも汎用性の高いものになっている

まずはここから HDRP/Material/Lit/Lit.shader

#define
#ifdef
#include
の塊

ホワイトボックス
なので諦める
ポイントは少ない


HDRP
導入検討の
ポイント

で、もう
完成してるの?
使っていいの?

残念ながら、まだプレビュー Unity 2019 のどこかでプレビューを外したい

後方互換性がしっかりしていないので、長期間付き合っていくのはつらい とは言え、いきなりクラッシュするような不安定さは無いので、短期間の用途で使うなら

謝辞