Slide 1

Slide 1 text

スクロール表現のための Position Bake

Slide 2

Slide 2 text

自己紹介 梶田悠 (かじた はるか) twitter : @kajitaj63b3 情報系の大学生 演出周りのUnityエンジニア シェーダー好き! githubにLTのリポジトリあるよ!

Slide 3

Slide 3 text

スクロール表現

Slide 4

Slide 4 text

オブジェクト座標でスクロール

Slide 5

Slide 5 text

体に沿ってない...

Slide 6

Slide 6 text

オブジェクト座標のY座標でスクロールしているから、体に沿って スクロールはしない... ボーンアニメーションすると更に目立つ...

Slide 7

Slide 7 text

一生腕を上げていればいい!!!

Slide 8

Slide 8 text

というわけにはいかない... 腕を上げた状態のオブジェクト座標を取得すればいい! →座標をベイクすればいい!

Slide 9

Slide 9 text

腕を上げた時の座標

Slide 10

Slide 10 text

ジオメトリシェーダーでUV展開

Slide 11

Slide 11 text

テクスチャ化 1. カメラで撮影 2. RenderTexture 3. Texture2D 4. Png

Slide 12

Slide 12 text

ベイクしたテクスチャかでスクロール

Slide 13

Slide 13 text

実は場合によっては問題がある 座標をそのまま色にしている 座標が0~1の範囲からはみ出すとクランプされてしまう 0~nの範囲に対応していくと、大きくなるほどベイクされる座標の精度が 落ちる(色は256階調だから)

Slide 14

Slide 14 text

解決策 float値1つをfixed値4つに分解するテクニックがある →テクスチャ4枚.... 座標をベクトルの向きと長さに分けてベイクすることで解決 →テクスチャ2枚!!!

Slide 15

Slide 15 text

Vectorテクスチャ 座標を正規化 各成分が0~1に収まるように調整

Slide 16

Slide 16 text

Lengthテクスチャ 色 = RGB(8bit × 3チャンネル) 1ピクセル = 24bitのバッファ!!! →値を2^24 階調で表現できる 0~1までを16777216階調で保存できる!

Slide 17

Slide 17 text

Vectorテクスチャ Lengthテクスチャ

Slide 18

Slide 18 text

できたー

Slide 19

Slide 19 text

注意! Import Settings で圧縮・ミップマップはきる 圧縮とかフィルタとかが絡む時は基本きる 色が補間されたりで情報として価値のない値になっちゃう...

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

え?レイを飛ばしたい???? 技術書典で出ました! 出来立てホヤホヤ レイを飛ばして、 GPUもホヤホヤにしよう!!! https://booth.pm/ja/items/1307309