UNITY

UNITY シェーダーのmulti_compileの #ifdefに or条件を

非常に単純なのでちらっと UNITYでシェーダーをmulti_compileで #ifdefを書きますが、例えば USE_AとUSE_Bがあり、どちらかが宣言されている場合有効にしたい そんな時に #if defined(_USE_A) || defined(_USE_B) ... #endif と、C言語のように書けばOKでした…

UNITY 2018.3 Timelineで遊ぶ。 任意のタイミングでカットインを実行させる

攻撃して敵が吹っ飛ぶようなのつくる 前回まで UNITYちゃんをタイムラインで動かした 攻撃してみる Unityちゃんのアニメーションを合成 まずUnityちゃんにクリップを追加します とりあえず、移動後にWin00を再生させる Clipを重ねると補完してくれます Cube…

タイムライン使ってみる AnimationClip Unity2018.3

タイムラインとは Unity2017のあたりでPreviewで入った機能 カットシーンやリアルタイムムービーシーンの再生等で使う 単純に決められたムービーの再生だけではなく、今のシーンからシームレスにオブジェクトを動かしたり可能 また、エディタ拡張でClassを派…

UNITY StandardAssetを使う

久々にUNITYを使ったら StandardAsset周りで苦労したので Import 昔はメニューの Assets->Importから StandardAssetをImport出来ていたが、今はメニューにない AssetStoreから StandardAssetを検索しダウンロードして Importする エラー StandardAssetをImpo…

UnityのマルチプレイヤーネットワークAPIについて

種類 UNet UNITYの5.1から入ったおなじみのAPI こうレイヤーのHLAPIと低レイヤー LLAPIがある が、これは間もなく廃止予定だ blogs.unity3d.com Multiplayer 次世代のネットワークAPI だが、フォーラムによると、まだ機能的にはしょぼいらしい 2021年にはUne…

UNITY DrawCall調査 GPU Instancing ~ UNITY2018.3.6f1 ~

UNITYのパフォーマンスの鍵は昔からDrawCall削減といわれている 今はSetPassとともに語られるようになった まず、DrawCall、SetPassとは何か? それらを減らす方法は? GPUインスタンシングとは何か? から、GPUインスタンシングで減らすのを調査した qiita.…

今更ながらLINQを初めて使ったが便利だった

qiita.com 前々から使いたかったLINQをこの際なので使ってみた 予想以上に使いやすく、これからはForループみるたびにLINQにするか考える必要があるね

UNITYで影にテクスチャをはる(スクリーンスペース)

やること 影にテクスチャを張っていこうと思います 具体的には、戦場のヴァルキュリアのような影部分にスクリーンスペースで ハッチングかけます わかりいくいけど、影部分にハッチングいれてます ソースはこちら github.com 考えられる手法 マルチレンダー…

UNITYの影調査

先程まででUNITYの影の作成ができましたが 今回はもう少し調査してみます 通常表示 ShadowCasterパスを追加し、ちゃんと影を表示できてます 影のみ表示させてみる 影のみは SHADOW_ATTENUATION で取れる 今回は R要素のみに SHADOW_ATTENUATION値を入れる フ…

UNITYで影を受け取る

前回は影を落としましたがまだこのシェーダでは影を受け取れません 地面(Plane)メッシュのシェーダーを 今使ってる yUnitに変えると影はおちないし、セルフシャドウもありません 今回は影を受け取るようにします https://github.com/YukiMiyatake/UnityLes…

UNITYで影をつくる〜ShadowCaster

UNITYでは簡単に影を落とせます 具体的には ShadowCasterパスにて #include "UnityStandardShadow.cginc" とするだけです CUBEMAPや各種設定に対応するため 上記の用意されたものを呼ぶ あるいは その中身をみて ビルトイン関数を使うべきですが 勉強のため…

UNITYちゃんトゥーンシェーダー2.0(UTS2.0)を調査

UNITYちゃんトゥーンシェーダーとは 現ユニティーテクノロジー ジャパンの小林さんの作ったトゥーンシェーダー 元々映像用に作ってあり かなり立地な表現が可能 GGXrdのトゥーンシェーダーがすごく、それを再現したようなシェーダー 今は更に機能が追加され…

UNITYシェーダー研究 Vertexライティング?

コード https://github.com/YukiMiyatake/UnityLesson/tree/Shader_7 はじめに 前回まではピクセルシェーダにてライティング計算をしていました これはクオリティの高いライティングになりますが、少し処理が重くなるので ディフューズカラー、スペキュラを…

UNITYシェーダ研究 複数ライトの影響

コード https://github.com/YukiMiyatake/UnityLesson/tree/Shader_6 前回まで 前回はAmbientも入れて だいたいライティング出来た ただ、複数ライトを置いても1つ目のライトの影響しか受けない ので、複数ライトの影響をうけるようにする ライトの強さ 複数…

UNITYシェーダ研究 Ambient

コード https://github.com/YukiMiyatake/UnityLesson/tree/Shader_5 前回のシェーダ ディフューズとスペキュラを実装し、だいぶライティングができた テクスチャマッピングもしている でも、Ambientも与えていません Ambientの設定 UNITYのバージョンにより…

UNITYシェーダ研究 Lambertモデル実装

前回は 新規で作ったUNITシェーダの説明したので 簡単なシェーダ作ります コードはココ https://github.com/YukiMiyatake/UnityLesson/tree/Shader_3 基本シェーダ(Albedo) 先ほどのシェーダからFOGを削除しシンプルにします テクスチャは・・・雰囲気欲しい…

UNITYシェーダー研究 UNITシェーダを読む

今回のソース https://github.com/YukiMiyatake/UnityLesson/tree/Shader_2 前回のあらすじ Surfaceシェーダを新規で作る 中野シスターズに適用 Surfaceシェーダの解説 たいした内容じゃなくてすみません でも 初歩からやりたいの UNITシェーダを適用する 本…

UNITYシェーダー研究 環境構築~サーフェースシェーダ軽く

このソースは GitHub - YukiMiyatake/UnityLesson at Shader_1 はじめに UNITYのシェーダの知見が少したまってきたので、自分でアウトプットしておかなければ忘れてしまう ので メモをしていたが もっと基礎から知りたいという人が多かったので 超基礎からや…

トゥーンシェーダ―作ってみる 

トゥーンシェーダ―作りたい シェーダーの色々な知見が出来たので少しずつメモ 中野シスターズ まず 中野シスターズをダウンロードしてくる 詳細は省略するが、ダウンロードして UNITYにインポートしシーンに配置する 暗いので、今後色々と遊ぶので ポイント…

UNITYでDepthをリニアでEXR形式で出力

概要 Depthマップ欲しい事は多いと思います Depthの取得自体は簡単ですが、Depthの計算上 Z値とリニアで変化しないため感覚的にわかりにくいので リニアにしたい DepthをPNGファイルにすると 256段階に丸められてしまうため、浮動小数点形式で保存したいので…

RenderTextureを使いレンダリング結果をTextureに保存する

レンダリング結果をテクスチャでほしい事ってありますよね 例えばレンダリング結果を鏡にうつしたり G-Bufferをファイルに保存したり ってことで、RenderTextureを作り カメラにAttachし、レンダリング結果を取得します まず RenderTextureをCreateします Mu…

UNITYのライト消したいの巻

まずデフォルト UNITY-Chanと中野シスターズを表示してみる ライトはディレクショナルライトいれて ドーン ここからライトを消していきます Directional Light OFF UNITYちゃんは真っ黒になったけど、中野シスターズも背景も光があります これは UNITYはデフ…

UNITY ScriptableRenderLoop アウトラインのミス

前回調べた時に ポストエフェクトのアウトラインが入っていた・・・ EdgeDetectionというやつだ なので、Unity-chanシェーダーのアウトラインではなく ポストエフェクトのアウトラインが入っていた たしかこれはDepthや法線でアウトラインを出すタイプだった…

UNITY EdgeDetection

ふと気になった 先ほど出力した画像のSphereに アウトラインが付いている・・・・・ なぜだ?? カメラに EdgeDetectionってやつがいた! こいつ怪しい! ってことで こいつをOFFしたら、Sphereのアウトラインが消え Unity-Chanのアウトラインが、カラー反映…

ScriptableRenderLoopでUNITY Chan表示

環境 ベータ版の機能なので EditorをUNITY2017のβを使います。今回は b10です サンプル GitHub - Unity-Technologies/ScriptableRenderLoop: Scriptable Render Loop 個々のサンプルを落とす 多分コンパイルエラー出るので、エラー出る所をつぶせばなんとか…

ScriptableRenderLoop概要

今までは情報がある程度まとまってから書いてたけど 試しに気にせずに毎日でも書くことにしたよ すぐ飽きるけど ScriptableRenderLoopとは UNITY2017から入る機能の1つで、現在はベータ版でお試しが可能 今までブラックボックスだった UNITYのレンダリングパ…

【UNITY】PostProcess

イメージエフェクト ってUNITYでは 言うらしいよ ポストプロセスの事 概要 ポストプロセスに関しては ご存知と思うが UNITYは基本的に オブジェクトにスクリプトをくっつけていくタイプだ UNITYではポストプロセスはカメラにつけるっぽい MonoBehaviour.OnRe…

【UNITY β機能】ScriptableRendererLoop 使ってみる

ScriptableRendererLoopとは Unity 2017から搭載される予定の機能で現在はβバージョンである 今までブラックボックスだったレンダリングのループをある程度カスタマイズできる カリング、Depthクリア、不透明描画、半透明描画・・・ 等の処理を変更できる サ…