スクロール表現の為のPosition Bake

スクロール表現の為のPosition Bake

9ee09c3363fa6badc5b62893bcb4c8c7?s=128

HarukaKajita

April 15, 2019
Tweet

Transcript

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

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

  3. スクロール表現

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

  5. 体に沿ってない...

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

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

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

  9. 腕を上げた時の座標

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

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

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

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

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

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

  16. Lengthテクスチャ 色 = RGB(8bit × 3チャンネル) 1ピクセル = 24bitのバッファ!!! →値を2^24

    階調で表現できる 0~1までを16777216階調で保存できる!
  17. Vectorテクスチャ Lengthテクスチャ

  18. できたー

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

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