【3Dゲームエンジン】Unity質問スレッド3at GAMEDEV【3Dゲームエンジン】Unity質問スレッド3 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト382:名前は開発中のものです。 12/12/31 19:27:12.02 KaDSngcP こんばんは。 SurfaceShaderでトゥーン調にしようと思って以下のようなコード(カスタムライティング部部のみ)を 書いたのですが、ポイントライトでライティングがうまいこと行ってないみたいなので わかる方教えてください。 half4 LightingToon (SurfaceOutput s, half3 lightDir, half atten) { half NdotL = dot (s.Normal, lightDir) * 0.5 + 0.5; half3 toonCol = tex2D(_ToonMap, NdotL).rgb; half4 c; c.rgb = s.Albedo * _LightColor0.rgb * toonCol.rgb * atten); c.a = s.Alpha; return c; } このライティングモデルを適用すると、ポイントライトにおいて 法線とライトベクトルの方向がほとんど同じ向きのところ、 つまり面と点(ポイントライト)の距離が一番近くなるところで 本来なら明るくならないといけないのに暗くなってしまっていて 黒点ができます。 どこが間違っているのでしょうか・・ 383:名前は開発中のものです。 12/12/31 19:29:42.64 KaDSngcP 382です。 すいませんコピペミス。 コードは以下です。 half4 LightingToon (SurfaceOutput s, half3 lightDir, half atten) { half NdotL = dot (s.Normal, normalize(lightDir)) * 0.5 + 0.5; half3 toonCol = tex2D(_ToonMap, float2(NdotL,NdotL)).rgb; half4 c; c.rgb = s.Albedo * toonCol * atten * _LightColor0.rgb; c.a = s.Alpha; return c; } _ToonMapには単純な白黒のグラデーションの画像です。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch