http://tsubakit1.hateblo.jp/entry/2018/03/06/224207
こちらのサイトを参考にしてポストプロセッシングで2Dのスプライトを発光させようと思ったのですが、見た目が全く変わりません。
EditからHDRにチェックも入れてみたのですが、変わりませんでした。
原因として何が考えられるでしょうか。ご教授お願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答1件
0
ベストアンサー
単にスプライトの発光強度が足りないんじゃないでしょうかね?
Bloomの「Threshold」が1になっていますが、これはつまり少なくとも1.0以上の強度の色じゃないとブルーム効果が発生しないということかと思います。このしきい値を0.75、0.5...と下げていけば光り出すんじゃないでしょうか。
ですが、Thresholdを下げる方法では明るい色のスプライトの場合は全体がぼんやり光ってしまっていまいちかもしれません。やはり光らせたい部分だけ局所的に色の強度を上げたいところですが、インスペクターを見てもいまいち使えそうな設定項目が見つかりませんでした。
もしかすると独自のシェーダーを用意してやらないといけないかもしれません。試しにデフォルトのスプライト用シェーダーを改造してエミッションカラー、エミッションマップを追加し...
ShaderLab
1// Unity built-in shader source. Copyright (c) 2016 Unity Technologies. MIT license (see license.txt) 2 3Shader "Sprites/Emission" 4{ 5 Properties 6 { 7 [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {} 8 _Color ("Tint", Color) = (1,1,1,1) 9 [MaterialToggle] PixelSnap ("Pixel snap", Float) = 0 10 [HideInInspector] _RendererColor ("RendererColor", Color) = (1,1,1,1) 11 [HideInInspector] _Flip ("Flip", Vector) = (1,1,1,1) 12 [PerRendererData] _AlphaTex ("External Alpha", 2D) = "white" {} 13 [PerRendererData] _EnableExternalAlpha ("Enable External Alpha", Float) = 0 14 15 [HDR] _EmissionColor ("Emission Color", Color) = (0, 0, 0) 16 [HDR] _EmissionMap ("Emission Map", 2D) = "black" {} 17 } 18 19 SubShader 20 { 21 Tags 22 { 23 "Queue"="Transparent" 24 "IgnoreProjector"="True" 25 "RenderType"="Transparent" 26 "PreviewType"="Plane" 27 "CanUseSpriteAtlas"="True" 28 } 29 30 Cull Off 31 Lighting Off 32 ZWrite Off 33 Blend One OneMinusSrcAlpha 34 35 Pass 36 { 37 CGPROGRAM 38 #pragma vertex SpriteVert 39 #pragma fragment frag 40 #pragma target 2.0 41 #pragma multi_compile_instancing 42 #pragma multi_compile_local _ PIXELSNAP_ON 43 #pragma multi_compile _ ETC1_EXTERNAL_ALPHA 44 #include "UnitySprites.cginc" 45 46 sampler2D _EmissionMap; 47 half3 _EmissionColor; 48 49 half4 frag(v2f IN) : SV_Target 50 { 51 return SpriteFrag(IN) + half4(tex2D(_EmissionMap, IN.texcoord).rgb * _EmissionColor.rgb, 0.0); 52 } 53 ENDCG 54 } 55 } 56}
下図のようなロボットの画像に対して...
下図のように目の部分を白く抜いたエミッションマップを用意し...
マテリアルにエミッションマップをセットし、エミッションカラーをとりあえず(50, 50, 25)に(これは0.0~1.0での色表現における値であって、0~255ではない点にご注意ください)してみたところ...
下図のように目が光って見えました。
投稿2019/09/03 15:06
総合スコア10807
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。