視差遮蔽マッピング

環境 Unity2021.3.4f1 概要 視差遮蔽マッピング(ParallaxOcclusionMapping)です。 Depthを書き換えないシンプルなものです。 Shader "Custom/ParallaxOcclusionMapping" { Properties { _MainTex ("MainTex", 2D) = "white" {} _NormalTex("NormalTex",2D) =…

HSVで行う簡易水彩

環境 Unity2021.2.18f1 概要 ポストエフェクトで水彩っぽい表現です。 HSV変換し、適当にいい感じのパラメータに調整し、RGBに戻します。 階調化も行っています。 元は以下で、こはくちゃん達のモデルをStandardシェーダに変えています。 Shader "Hidden/Wat…

UVで移動・回転・拡縮をする

環境 Unity2021.2.18f1 概要 UVで移動・回転・拡縮をしてみました。 AnimationCurveからKeyframe配列のtimeとvalueを抜き出し、シェーダでバイナリサーチをかけ、リニア補間した値を使用しています。 using Unity.Collections; using UnityEditor; using Uni…

遮蔽・可視テスト

環境 Unity2021.2.18f1 概要 遮蔽(もしくは逆に可視)テストによるグレアです。 OcclusionQueryのようなことを_CameraDepthTextureとComputeShaderを用いて行ってみました。 古典的な手法ですが、ブルームはガウスで行っているけど、光芒的なものも欲しい時…

DDX/DDY

環境 Unity2021.2.18f1 概要 ddxとddyは勾配を取得する命令です。 引数で渡した変数のとなりのピクセル(厳密には違う)との差分が得られます。 以下のシェーダはデプスとノーマルのそれぞれの差分を取り、エッジ検出をしてそこにAA的な処理(ただぼかしてい…

テッセレーションとディスプレースメントマップ

環境 Unity2021.2.18f1 概要 テッセレーションシェーダによるディスプレースメントマップです。 テッセレーションで距離により分割数を変えています。 普通に処理するとカメラを移動した時に、分割が変わる部分が見えてしまい見苦しい画面になってしまいまし…

DrawProcedualで1マテでスキニングモデルの一括描画テスト

環境 Unity2021.2.18f1 burst1.6.5 jobs0.50.0-preview.8 概要 DrawProcedualの実験です。 多数のスキニングモデルを1マテリアルで一括描画してみるテストです。 AnimationInstancingのように1つのモデルを大量に出すのではなく、複数種類のモデルをたくさん…

FFTによるグレアフィルター

環境 Unity2021.2.18f1 概要 FFTを用いたグレアフィルターです。 今回も参考リンクのページのコードを実装してみた感じです。 画像も同じのを使わせていただいています。 GenerateStarBurst2Window.cs using System.IO; using UnityEditor; using UnityEngin…

カメラの開口形状からグレア形状を得る

環境 Unity2021.2.18f1 概要 FFTを用いたグレア形状(StarBurst)の生成を行ってみました。 参考リンクのレンズフレアプロジェクトのコードから該当部分のみUnityで動作するようにしています。 GenerateStarBurstWindow.cs using System.IO; using UnityEdit…

水玉コラージュ

環境 Unity2021.2.18f1 概要 DeepNudeの学習済みデータが手に入ったので、onnxファイルに変換してBarracudaで動作確認してみました。 せっかくなので、その情報(水着部分を緑色で塗る)を使い、ComputeShaderで水玉コラージュを作成してみました。 顔情報の…

テッセレーションで草

環境 Unity2021.2.18f1 概要 metalがジオメトリシェーダに対応していないらしいので使わずに草を生やしてみます。 テッセレーションでは点から三角(もしくは四角)形を生成できるのでやってみました。 1チャンネルのテクスチャからMeshTopology.Pointsのメ…

ミップマップのLODレベルによって処理を振り分ける

環境 Unity2021.2.18f1 概要 処理の重いシェーダを作成するときにミップマップのLODレベルで処理を切り替えたい事があります。 そんな場合は、CalculateLevelOfDetailを使用します。 このシェーダはLODレベルに応じてカラーを変えているだけのものです。 Sha…

コースティクス

環境 Unity2021.2.18f1 概要 テクスチャを使用したコースティクスです。 参考リンクのものを実装しました。ルミナンスマスクは実装していません。 以下のサイトのテクスチャを使用させていただいています。 Water Caustics Effect (Small) | OpenGameArt.org…

2DLookupLighting(FakeBRDF)

環境 Unity2021.2.18f1 概要 Lookupテクスチャを使用したライティングです。 以下のページの画像に対応するようにしています。 BRDF - Wakapon Shader "Unlit/2DLookupLighting" { Properties { _NormalTex("Normal Texture", 2D) = "white" {} _Lookup("Tex…

環境マッピング

環境 Unity2021.2.18f1 概要 環境マッピングです。 Cube、FakeSpherical(Matcap)、Equirectangular、FishEyeで行ってみました。 BumpMap付です。 Shader "Custom/Cube-BumpedEnv" { Properties { _Color("Main Color", Color) = (1,1,1,1) _MainTex("Diffu…

フェイクポイントライト

環境 Unity2021.2.18f1 概要 フェイクポイントライトの実装テストです。 法線を考慮してないシンプルなものです。 Hierarchy>3d Object >Sphareで球体モデルを生成して、マテリアルに設定します。 コード Shader "Custom/FakePointLight" { Properties{ [HDR…

UnityでC#7.2を使用できるようにしてVisualStudioに対応させる

この記事は2018年09月05日にqiitaに投稿した内容です。 環境 Unity2018.2.2f1 Incrementalcompiler 0.0.42-preview.19 概要 Incrementalcompilerをインストールしたら、VisualStudioにc#のバージョンが違うと怒られました。 その対処方法です。 Incrementalc…

OpticalFlowによるテクスチャアニメ補間のテスト

この記事は2018年07月02日にqiitaに投稿した内容です。 環境 Unity2017.3.0p4 Windows10 Home 概要 OpenCv3のOpticalFlowでFlowMapを作成して補間するテストです OpenCV OpenCvSharp3を使用しました テクスチャ 使用した画像です https://blogs.unity3d.com/…

NodeJsでBitpointの価格を取得してレスポンスを返す

この記事は2018年03月04日にqiitaに投稿した内容です。 環境 Unity2017.3.0p4 Windows10 概要 UnityからBitpointの価格情報のwebsocketのapiにアクセスしようとしたが、うまくいきませんでした。 仕方ないのでNodeJsからSockJs-Clientを使用して情報を取得、…

Deploygateにアップロードする

この記事は2017年12月28日にqiitaに投稿した内容です。 環境 Unity2018.3.0f2 2017.2.0p4 概要 usb接続してAndroidビルドすると転送エラーになったりすることが頻繁に起こるのでDeploygateにアップするようにしたエディタ拡張です。 プログラム 2018.3.0f2対…

データディレクトリやキャッシュディレクトリをエクスプローラで開く

この記事は2017年10月20日にqiitaに投稿した内容です。 環境 Unity2017.1.1p3 概要 persistentDataPathやCacheのパスを忘れてしまうのでメニューから開けるようにしました。 それだけです。 プログラム Assets/Editor/ShowInExplorer.cs using UnityEditor; …

Buttonに設定したClickイベントのコールバック関数内で呼び出し元のButtonの情報を得る

この記事は2017年09月24日にqiitaに投稿した内容です。 環境 Unity2017.1.1p3 概要 インスペクター上でClick用のコールバック関数を設定した場合を想定しています 実際にButtonをClickした時に、何らかの処理中で一時押せないようにしたい場合等に、Button自…

RectTransformの矩形からスクリーン矩形を得る

この記事は2017年09月05日にqiitaに投稿した内容です。 環境 Unity2017.1.0f3 概要 RectTransformの矩形からスクリーン矩形に変換します 主にWebViewの表示領域に使用します コガネブログさんが作成したのを使用すると良いと思います。 http://baba-s.hatena…

GreeのWebViewをWindowsのUnityEditorである程度動作させるとっかかり

この記事は2017年08月06日にqiitaに投稿した内容です。 環境 Unity2017.1.0f3 Windows10 Home 概要 GreeのWebViewがWindowsのUnityEditor上で動作しないのでEditorWebViewを使用してある程度動作させるようにするためのとっかかり的なものです GreeのWebView…

MeshからVoxel生成

この記事は2017年07月30日にqiitaに投稿した内容です。 環境 Unity2017.1.0f3 概要 MeshからVoxelを生成します モデルにAddComponentして使用 とりあえずCubeモデルで生成 Taskを使用した非同期処理 http://qiita.com/fukaken5050/items/52f0261f1da33493359…

GoogleAppScriptからFacebookに投稿

この記事は2017年07月23日にqiitaに投稿した内容です。 環境 V2.10 概要 GoogleAppScriptを使用して一定時間ごとにFacebookにメッセージを投稿します Facebookアプリの作成 https://developers.facebook.com/apps/ ・「新しいアプリの追加」を押す ・「表示…

GoogleComputeEngineのVMインスタンスにWinScpでログイン

※この記事は2017年07月20日にqiitaに投稿した内容です。 環境 Windows10 Home 概要 コマンドラインでの操作がつらい。GUIでファイル転送したい為にWinScpで接続します GoogleComputeEngineの設定 以下を参照して設定する GoogleComputeEngine上にサーバを立…

Taskを使用した非同期処理のテスト

この記事は2017年07月15日にqiitaに投稿した内容です。 環境 Unity2017.1.0f3 概要 .NET4.6が使用できるようになったのでTask・Async/Awaitのテスト .NET4.6の設定 「PlayerSettings」>「OtherSettings」>「ScriptRuntimeVertion」を「Experimental(.NET4.6E…

AssetBundleManagerのwwwをUnityWebRequestに変えて、さらにキャッシュの古いバージョンを削除してみる

この記事は2017年07月11日にqiitaに投稿した内容です。 環境 Unity2017.1.0f3 概要 wwwは使用しないでUnityWebRequestを使用したほうがいいらしいのでテスト また、Caching.ClearOtherCachedVersionsを使用して、キャッシュの古いバージョンを削除します 変…

c++プラグインでSquirrelスクリプトとやり取りをする(Android)

この記事は2017年07月11日にqiitaに投稿した内容です。 環境 Unity5.6.2f1 Squirrel 3.1 概要 c++Likeなスクリプト言語のSquirrelとやり取りをするテストです Squirrelのダウンロード 以下のページで「Download」を押す https://sourceforge.net/projects/sq…