方块的 材质必须 有2个,1个是物体自身的颜色,另一个是 OutlineSilhouette

Outlined/Silhouette Only.shader(参考文章1,2)
Shader "Outlined/Silhouette Only"
{
Properties
{
_OutlineColor("Outline Color", Color) = (0,0,0,1)
_Outline("Outline width", Range(0.0, 0.03)) = .005
}
CGINCLUDE
#include "UnityCG.cginc"
struct appdata
{
float4 vertex : POSITION;
float3 normal : NORMAL;
};
struct v2f
{
float4 pos : POSITION;
float4 color : COLOR;
};
uniform float _Outline;
uniform float4 _OutlineColor;
v2f vert(appdata v)
{
v2f o;
o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
float3 norm = normalize(mul((float3x3)UNITY_MATRIX_IT_MV, v.normal));
float2 offset = TransformViewToProjection(norm.xy);
o.pos.xy += offset * o.pos.z * _Outline;//o.pos.xy += offset * _Outline;
o.color = _OutlineColor;
retu

本文介绍了如何在Unity中实现3D物体的遮挡描边效果,重点讲解了需要使用的OutlineSilhouette shader及其配置。通过设置两个材质,一个用于物体颜色,另一个用于描边效果,可以实现3D模型的描边视觉增强。同时,提到了相关Unity插件和教程资源,帮助读者深入理解和应用这一技术。

4万+

被折叠的 条评论
为什么被折叠?



