e.blog

主にUnity/UE周りのことについてまとめていきます

シェーダ

uGUIの背景をぼかしてオシャレに見せる

概要 最近、Apex Legendsにハマって毎日のように時間が吸われていってます。(まずい) さて、今回はこのApex LegendsのUIで使われているような「背景がボケているUI」を作る方法を書いていきたいと思います。 ↓こんな感じで、背景が透過+ボケている「すり…

Unityの行列の扱いとベクトルのオーダー周りについてまとめておく

概要 自分で直に行列変換周りの処理を書くときに、掛ける順番やオーダー周りについていつも混乱するのでまとめておきます。 座標系の向き これは、行列のオーダーには直接関係はありませんがよく混乱するので書いておきます。 Unityでは「左手系」の座標系を…

Unityでガウシアンブラーを実装する

概要 よく使う&表現力の高いぼかし処理。 以前にもぼかしを利用したコンテンツを作成したり、記事を書いたりしていましたがちゃんとぼかしだけにフォーカスしたことはなかったので改めて書きたいと思います。 今回のサンプルを動かしたデモ↓ ちなみに以前、…

モデルの頂点をUV展開した先の位置に任意の絵をテクスチャに描き込む

概要 UV展開した位置に描き込む、とは? それでなにがうれしいの? ことの発端 どうやって傷(デカール)をつけるか 通常のシェーダのレンダリングをどうテクスチャに展開するか UV値をそのまま頂点位置として利用する UV2に全頂点を書き出す UV2の値はUVと…

CustomRenderTextureを使って波紋エフェクトを作る

概要 ダウンロード CustomRenderTextureとは CustomRenderTexture用のcgincがある CustomRenderTexture用シェーダを書く 波動方程式を解く 波動方程式を解くシェーダ(for CustomRenderTexture) CustomRenderTextureのセットアップ CustomRenderTextureの生…

カールノイズを使ったパーティクル表現

概要 前回の実装ではパーティクルはすべて常にアップデートされていた 連続してパーティクルをエミットする パーティクルをプールして管理する プールの状態を初期化するInitカーネル Append Buffer、Consume Bufferを利用してプールを管理する パーティクル…

ジオメトリシェーダ入門

概要 ジオメトリシェーダとは コードを見てみる ドキュメント Syntax パラメーター ストリーム出力オブジェクト Syntax パラメーター 違ったコードを見てみる 実例を見てみる 実際に動いている動画 概要 今回はジオメトリシェーダ入門という形で記事を書いて…

ライトマップデータから影の情報を抜き出し頂点カラーに焼く

概要 とあるプロジェクトで頂点カラーにライトマップの影情報を焼き込めないか、という話があって試してみました。 結局その機能自体は使いませんでしたが、ライトマップデータへのアクセスなど学びがあったのでまとめておきます。 ライトマップデータの読み…

Unityでクリッピング平面を実装する

概要 今作っているARアプリでクリッピング平面を作る必要が出てきたのでそのメモです。 動作サンプル↓ 動画サンプルで動かしたものはGitHubで公開しています。 ちなみに、クリッピング平面自体の説明は以前Qiitaに書いたのでそちらをご覧ください。 今回書く…

UnityのCompute ShaderでCurl Noiseを実装(衝突判定編)

概要 今回は「衝突判定編」です。 前回の「流体編」の続編です。 edom18.hateblo.jp さて、今回は論文で発表されたカールノイズの『衝突判定』について書きたいと思います。 実際に動いている動画↓ やったー。カールノイズの衝突判定もちゃんと動いた。 pic.…

UnityのCompute ShaderでCurl Noiseを実装(流体編)

概要 ソースコード 今回の記事で書くこと 大まかな解説 非圧縮性を確保する 用語解説 ベクトル場 カール(Curl・rot) ramp関数 本題 ノイズを生成する カールノイズのカーネル 次回予告 - 衝突判定 概要 今回は「流体編」と題しました。 というのも、発表さ…

ARKitで撮影した映像を(疑似)IBLとして利用する

今日の記事は、ARKitのAdvent Calendarの2日目の記事です。 qiita.com 概要 今回は、ARKitで平面検出を行っている映像データを使って、(疑似)IBLをしてみたいと思います。 ちなみに、ARKitをUnityで使う際の実装については前の記事で少し書いたので、ARKit…

ComputeShaderを触ってみる その2 ~バッファ・テクスチャ編~

概要 前回の記事(ComputeShaderを触ってみる その1 ~スレッド編~)で、Compute Shaderのスレッドの概念について書きました。 edom18.hateblo.jp 今回は、Compute Shaderを実際に使って、少し意味のある計算をしてみたいと思います。 意味のある計算をさせ…

ComputeShaderを触ってみる その1 ~スレッド編~

概要 並列化可能な、膨大な数の計算を行う場合はCompute Shaderの出番です。 今回はこの「Compute Shader」を触ってみたのでそのメモです。 Compute Shaderの最小単位 Compute Shaderを利用する場合、まずは.computeファイルを作成します。 そして作成したCo…

異空間から転送されてきたように演出するマスクシェーダ

概要 今作っているコンテンツで、なにもない空間からオブジェクトが転送されてきたような演出をしたいと思い、そのために色々シェーダを書いたのでそのメモです。 以下の画像を見てもらうとどういう効果かイメージしやすいと思います。 今回はこれを実装する…

Standard Assetsの「GlassStainedBumpDistort」シェーダを覗いてみた

概要 「Standard Assets」に含まれている「GlassStainedBumpDistort」を覗いてみました。 どういうシェーダかというと、以下のように、オブジェクトの背面を歪ませる効果を実現するものです。 準備するのは歪ませるための法線を持たせたBumpMap用のテクスチ…

ShaderLabについてメモ

もっぱらQiitaで記事を書いていましたが、そろそろUnityの話題に絞ったブログを作りたくなったので、過去に少しだけ使っていたこのブログをまっさらにしました。 今後のUnityの記事はここにまとめていこうと思います。 ということで、第一回目はメモとして残…