移動段的實時陰影,之前的實現方案是,讓角色受光,讓接受陰影的地表受光,達到乙個實時陰影的效果。然後就發現美術的地表做得比較複雜 面數跟材質球數量都不少,一旦受光,dc跟面數都增加的比較明顯,對效率影響比較高。
於是有了新的方案,地表上本來就會做一層行走網格,面數比較少,而且整個場景也就一到兩個模型,乾脆就用行走網格來接受陰影。讓產生陰影的地方半透疊加到地表,沒有陰影的地方全透明,對效率影響相對比較低。
效果如下:
shader如下:
shader "scenes/shadowcollision"
blend srcalpha oneminussrcalpha
zwrite off
pass
cgprogram
#pragma vertex vert
#pragma fragment frag
#define unity_pass_forwardbase
#include "unitycg.cginc"
#include "autolight.cginc"
#pragma multi_compile_fwdbase_fullshadows
fixed4 _lightcolor0;
struct vertexinput ;
struct v2f ;
v2f vert (vertexinput v)
fixed4 frag(v2f i) : color
endcg
} }
fallback "transparent/cutout/vertexlit"
}
Laya3D 自定義shader 實時陰影
laya自帶的預設材質 blinnphongmaterial 是支援實時陰影的,只需要將directional light 的陰影開啟 meshrender 的receiveshadow 設定為 true 就能簡單的在材質上投射陰影了。但是顯然基礎材質 blinnphong是不夠用的,當需要自定義材...
Shader 點光源和自陰影
本教程基於教程4 法線對映。在實現乙個點光源前你無需知道法線對映,所以如果你只想知道如何實現乙個點光源,可以暫時無需理解教程4的知識。這個教程只解釋什麼是點光源以及如何實現它,你可以在本教程使用的演算法之後新增法線對映或其他你需要的shader。只要你理解了教程1,2,3,這個教程不是很難。點光源 ...
shader之 多光源漫反射以及陰影
shader unlit mullight subshader cgprogram pragma vertex vert pragma fragment frag include unitycg.cginc pragma target 3.0 衰減與陰影的實現 include autolight.c...