-
Gesamte Inhalte
337 -
Benutzer seit
-
Letzter Besuch
-
Tagessiege
3
Lonely World's Achievements
Advanced Member (3/3)
41
Ansehen in der Community
Einzelstatus Update
Zeige alle Updates von Lonely World
-
Weiß jemand warum Tree Billboards im dunklen leuchten ?
Hier ein Beispiel:
- Vorherige Kommentare anzeigen %s mehr
-
Hab mir mal den Shader angeschaut. Man bekommt zwar den Rand "Nachts" weg aber verschlechtert damit die Ränder tagsüber.
Übrigens den Bug gibt es in Unity 2017.1 immer noch.
Am besten ist wohl man baut einen Flag in den Shader ein, der die beiden auskommentierten Zeilen nur aktiviert, wenn es dunkel sein soll (ist oben im Thread von Life is Good beschrieben):// Unity built-in shader source. Copyright (c) 2016 Unity Technologies. MIT license (see license.txt) Shader "Hidden/TerrainEngine/BillboardTree" { Properties { _MainTex ("Base (RGB) Alpha (A)", 2D) = "white" {} } SubShader { Tags { "Queue" = "Transparent-100" "IgnoreProjector"="True" "RenderType"="TreeBillboard" } Pass { ColorMask rgb Blend SrcAlpha OneMinusSrcAlpha ZWrite Off Cull Off CGPROGRAM #pragma vertex vert #pragma fragment frag #pragma multi_compile_fog #include "UnityCG.cginc" #include "TerrainEngine.cginc" struct v2f { float4 pos : SV_POSITION; fixed4 color : COLOR0; float2 uv : TEXCOORD0; UNITY_FOG_COORDS(1) UNITY_VERTEX_OUTPUT_STEREO }; v2f vert (appdata_tree_billboard v) { v2f o; UNITY_SETUP_INSTANCE_ID(v); UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); TerrainBillboardTree(v.vertex, v.texcoord1.xy, v.texcoord.y); o.pos = UnityObjectToClipPos(v.vertex); o.uv.x = v.texcoord.x; o.uv.y = v.texcoord.y > 0; o.color = v.color; UNITY_TRANSFER_FOG(o,o.pos); return o; } sampler2D _MainTex; fixed4 frag(v2f input) : SV_Target { fixed4 col = tex2D( _MainTex, input.uv); col.rgb *= input.color.rgb; clip(col.a); // Normale Variante //clip(col.a -0.9); // Normale Variante 1, blendet den Rand aus, man kann auch 0.8 oder 0.9 nehmen (verschlechtert aber den Rand noch mehr!) // oder //if (col.a < 0.9) col.rgb = lerp(col, float3(0, 0, 0), 1.3 - col.a); // Variante 2: dunkelt den Rand ab UNITY_APPLY_FOG(input.fogCoord, col); // legt Nebelfarben über den Billboard! return col; } ENDCG } } Fallback Off }
-
Zudem nimm bei dir mal:
UNITY_APPLY_FOG(input.fogCoord, col);
raus weg, wenn dann bei dir das Problem verschwindet liegt es am Fog.
PS:
Das Licht kann auch noch von der Skybox kommen (nur zur Sicherheit):
- DL ausschalten
- Skybox herausnehmen, auf Color schalten und auf "Schwarz" einstellen
- Camera Background auf "Schwarz" -
Jo danke dir!
Das leuchtem kam wirklich vom GI. Dieser Bug nervt wirklich. Das ganze Terrainsystem bräuchte eigentlich mal wieder ein Update.
Die Ränder hab ich jetzt auch so wegbekommen....
Zur Zeit mach ich es so, dass ich nachts dann einen Fog dazu fade die die Bäume dann abdunkelt. Und bei Tag wieder der Tages Fog.
- Nächste Kommentare anzeigen %s mehr