Unity Fogの処理を追う。builtin_shaders調査の手順メモ

UNITY_TRANSFER_FOGの処理で調査した事のメモです。また、builtin_shaders調査の手順メモ。 builtin_shaders-2019.3.9f1をDLして調査。 unity3d.com Create > Shader > Unlitで生成される最低限のshaderコードと比較しながら調べています。 生成されたコード…

PostProcessingStack v2を使い、前フレームの画像と合成するmotion blurを実装する

1フレーム前の画像を取っておき、それをレンダリング中の画像と合成するpost effectを実装します。 shader やっている事は単純で、流し込まれた前フレームの画像をアルファ合成しているだけです。 Shader "MotionBlurLegacyHLSL" { HLSLINCLUDE #include "P…

Timelineに設定したmarkerをプログラム上で取得する

下記コードで取得できます。 private void GetMarkers() { PlayableDirector director = GetComponent<PlayableDirector>(); IEnumerable<TrackAsset> tracks = ((TimelineAsset) director.playableAsset).GetOutputTracks(); foreach (TrackAsset trackAsset in tracks) { foreach (IMarke</trackasset></playabledirector>…

Physical Cameraを使用した時にも使える、視錐台のサイズの求め方

下記に視錐台のサイズの求め方が載っています。 docs.unity3d.com しかしカメラのPysical Cameraを使用している場合、上のドキュメントのやり方では求められません。 docs.unity3d.com その場合、下記で求まります。 Vector3[] corners = new Vector3[4]; Ca…

常に全画面表示されるオブジェクトを実装する

カメラが動いても、常に全画面に表示される処理を書きます。 独自のUIなどを表示する時に使えるかもしれません。 コード using UnityEngine; public class FitDisplay : MonoBehaviour { [SerializeField] private Transform _sprite; [SerializeField] priv…

Timelineでshuriken effectを使う時、再生中にeffectが表示されなくなる問題

環境 Unity 2019.3.0f6 Timeline 1.2.11 現象 TimelineのControl Trackを使ってshuriken effectを表示します。 パフォーマンスのために、Project Settings - Timeの設定でFixed Timestepの値を大きくする事がありますが、この値を大きくしてしまうと、Timeli…

DDD ドメイン駆動設計入門 〜 基礎的な用語を理解する

エリック・エヴァンスのドメイン駆動設計 https://www.amazon.co.jp/dp/4798121967 この書籍を理解するにあたって、基礎となる用語を理解するために纏めました。 ドメイン エキスパート 扱っているテーマについて誰よりも良く知っている人。 例えば、ゲーム…

Unity Timeline "singal" と "marker" の違い

tsubakit1.hateblo.jp 使用しているunity version unity2019.2.17 timeline ver 1.1.0 signal, markerとは 公式マニュアル docs.unity3d.com Timelineの時間軸にイベントを設定し、何かしらの処理を実行したいという事をネット上で調べると、signalかmarker…

Triplanar Mapping

下記チュートリアルで紹介されているTriplanar Mappingをやってみます。 www.ronja-tutorials.com Triplanar Mappingとは Triplanar Mappingとはどういうものかと言うと、上方向、横方向からテクスチャを貼り付けるようなイメージです。 モデルのUVを参照せ…

【未解決】 ShaderのOffset値とは何なのか

前置き ShaderにはOffsetという値があります。 それについて調べたけど、詳細は分からなかった、という記事です。すいません。。 本題 shaderのOffsetとは、座標はそのままで、カメラ深度に対してoffsetをかける、というもののようです。 z-fightingを何とか…

shaderでよくある計算をビジュアライズしたgif

shader forge作者の方のtweetより。 ドット積 (内積) 大きさ1のベクトル同士でドット積を取る時、1 〜 -1の範囲を取る。 同じ方向なら1 直角なら0 反対方向なら-1 dot product - visualized ⚪the dot of two normalized vectors, as shown here, can say how…

よくある計算をグラフで見る

pow shaderでpow計算する事が良くあります。 powする事で値がどう変化するのかを、グラフで見るメモ。 の変化 https://www.desmos.com/calculator/dp5qheqr5n の変化 https://www.desmos.com/calculator/1w0sdd504l の変化 https://www.desmos.com/calculato…

Plant UMLでクラス図を描く セットアップ編

アプリをダウンロード ダウンロードのページ Last version : plantuml.jar をDLしてくる。 /Applicationとかに入れておく。 準備 DLしてきたplantuml.jarを開く。 これから作業するためのフォルダを作る。 画面下のボタン「Change Directory」を押す。 popup…

Depth Fadeで背面にある物体との距離を取得する

Depth Fadeと呼ばれている手法について紹介します。 Unity Products:Amplify Shader Editor/Depth Fade - Amplify Creations Wiki [https://wiki.unrealengine.com/Visual_Effects:Lesson_02:Using_Depth_Fade:title] こちらのチュートリアルに大変お世話に…

PostProcessingStack v2にて、各種設定をランタイムで変更する

[SerializeField] private PostProcessVolume _ppVolume; void Start() { Bloom bloom; _ppVolume.profile.TryGetSettings(out bloom); bloom.threshold.value = 3f; }

数式をグラフ化する。Grapher(macアプリ) と desmos(webサービス)

最近知りましたが、macには標準でグラフを描くアプリが入っていました。 これでガウス関数を作ってみます。 mac標準アプリのGrapher パラメータ化した値を操作して動かす事も出来る。 どんなパラメーターになるのか理解するのに役立ちそう。 しかし ちょっと…

PostProcessing Stackのカスタムエフェクトで解像度を下げる (ダウンサンプリングする) 方法

参考にしたソース https://github.com/Unity-Technologies/PostProcessing/blob/v2/PostProcessing/Runtime/Effects/ScalableAO.cs // AO buffer var rtMask = ShaderIDs.OcclusionTexture1; int scaledWidth = context.width / ts; int scaledHeight = cont…

PostProcessing Stack v2でカスタムエフェクトを作る

公式マニュアルはhttps://docs.unity3d.com/Packages/com.unity.postprocessing@2.2/manual/Writing-Custom-Effects.html 公式 APIドキュメント https://docs.unity3d.com/Packages/com.unity.postprocessing@2.2/api/ どちらもバージョンに注意。 使い方は…

unity C#でのpath取得関連メモ

project viewで選択中のディレクトリ取得 static private string GetSelectedDir() { foreach (Object obj in Selection.GetFiltered(typeof(DefaultAsset), SelectionMode.TopLevel)) { if (obj is DefaultAsset) { string path = AssetDatabase.GetAssetPa…

Unity2019.1 LWRPでのRenderScale、Renderer Featuresの並べ替え

パッケージマネージャーのLightwight RPは5.13.0を使用。 public ScriptableRendererData _data; public LightweightRenderPipelineAsset _asset; をinspecterで設定した後、動的に変更する。 using System.Collections.Generic; using UnityEngine; using U…