ゲーム制作がんばるブログ

グラフィックやりがちなエンジニアのブログです

Unity6のRenderGraphでコンピュートシェーダー

はじめに 実装 RendererFeature RenderPass 宣言部分 コンストラクタ RecordRenderGraph Dispose RenderPass全体の実装 はじめに Unity6でRenderGraphになったことによりComputeShaderの実行方法も変わりました。 Unityは開発者向けにRenderGraph用のCompute…

RenderingLayerMaskで自作のライトの影響範囲を限定させる

RenderingLayerMask RenderingLayerMaskとはTagやLayerとは違いライトやシャドウなどで影響するLayerMaskです。 RenderingLayerMask 実装 複数のカスタムポイントライトのデータを送ると想定して簡単に作ってみます。 (この実装はデータの送り方の解説に使っ…

Unityで簡単なレイマーチング

はじめに RayMarchingとはレイを飛ばし当り判定を取ることによって描画をする手法です。 普通の描画と違い、色々な形や、煙、無限に続くオブジェクトなどをランタイムで自由に作成することが出来ます。 今回はこの方の記事を参考にHLSLで作成してみました。 …

頂点シェーダーで計算する場合とフラグメントシェーダーで計算する場合では結果が変わる話

はじめに 頂点シェーダーは値を線形補完している 頂点シェーダーでComputeNormalizedDeviceCoordinatesWithZを使うとなぜ問題が起きるのか VertexPositionInputsのNDCにはバリバリ使い道がある はじめに 今回はこの記事の続きの話です osushi-soba.hatenablo…

UnityのGetVertexPositionInputsで取得するNDCには罠があるという話

UnityにおいてGetVertexPositionInputsは便利ですよね。 一個呼ぶだけでいろんな座標系の値を取得できます。 しかしこの関数で得られるpositionNDCはなんとNDCではないのです。 ???と思う方もいるかもしれませんがこの関数の中身を見ると理由が分かります…

UnityのUIのパフォーマンスチューニング【ドローコール削減】

はじめに バッチングの条件 同一のテクスチャを使用する 同一のインスタンスのマテリアルを使用する チューニング チューニングの仕方 実際にチューニングをする テクスチャのチューニング マテリアルのチューニング はじめに UnityのUIはいろんな人が触ると…

メッシュの交差点を表すポストエフェクト

見本 はじめに メッシュのアウトラインを表示するエフェクトは世の中に沢山あると思います。 ただそれだけだとメッシュの交差する場所には線が出ず、遠目で見ると絵が溶け込んでしまうことがあると思います。 今回はそんな問題を解消するポストエフェクトを…

はてなブログとZennの併用の話

この度Zennを開設しました そして前に書いたRenderGraphのMRTの話を詳しく書きました。 なぜZennを併用するようになったのかと言いますと運用をちゃんとまとめた記事を集約する場を作りたいなと思ったからです。 このブログはポエムや日常的なアウトプット、…

ライトの向きを考えて影を作るビルボード

はじめに 最近なんとなーく情報収集してると鳴潮の技術記事を目にしました。 鳴潮の記事 ここではビルボードによって影が想定しない回転することによる問題を解決するために影を書き込む際に光源に面するようにしていると書いてました。 この手法について気…

【UI】レンダーテクスチャを使用しないソフトマスクの実装を考える

はじめに ゲームを作る際によくマスク使いますよね。 UnityのuGUIにあるマスクはステンシルを用いたものです。 ステンシルを用いたMaskには弱点があって、角がジャギジャギになってしまいます。 それを解決するのが一般的に言われるソフトマスクというもので…

【Unity6】RenderGraphでシンプルなマルチレンダーターゲットを作ってみた【MRT】

はじめに お久しぶりです。 仕事がやtttっと落ち着いたので今回から頑張っていこうと思います。 今回はUnity6のRenderGraphについて触れていこうと思います。 環境 Unity 6000.0.45f1 URP 17.0.4 複数のテクスチャに書きこむ もう今回はプログラムで語っ…

【Unity】和紙表現【URP】

はじめに 今回は前回の波の演出を流用し、和紙の表現をポストエフェクトで作ってみました。 環境 Unity 2022.3.4f1 URP14.0.8 ポストエフェクトの掛け方 URPにはURP12からSwapBufferというポストエフェクトをかける時に機能があります。 今回はこちらを使用…

【URP14】 水表現を作ってみた

はじめに 今回はリアル調の水表現を作成してみました。 環境 Unity 2022.3.4f1 URP14.0.8 水を作ってみる 今回は以下の表現をしてみようと思います。 1.水中の深さ表現 2.水面の環境の反射表現 3.水面の光反射表現 4.水中の屈折表現 5.波の境界表現 水中の深…

パーリンノイズを用いてスクリプトでフラクタル地形メッシュを作成してみた

はじめに 今回技術研究を色々行っていくにあたり適当に背景になる使い勝手のいい地形が欲しいなと思いました。 ただデザイナーでもないのでポリゴンをこねこねするのはめんどくさいしUnity以外のツールも手元にない・・ なのでワンボタンで地形メッシュを出…