unity 在透明物体上投射阴影

unity版本:2019.4.16

创建一个shader,代码如下:

Shader "ChuckLee/ARShadow"
{
	Properties
	{
		_ShadowColor("Shadow Color", Color) = (0.1, 0.1, 0.1, 0.53)
	}
		SubShader
	{
		Tags{ "RenderType" = "Transparent" "Queue" = "Geometry+1" }
		Blend SrcAlpha OneMinusSrcAlpha

		Pass
		{
			Tags{ "LightMode" = "ForwardBase" }

			CGPROGRAM
			#pragma vertex vert
			#pragma fragment frag
			#pragma multi_compile_fwdbase

			#include "UnityCG.cginc"
			#include "AutoLight.cginc" 

			struct appdata
			{
				float4 vertex : POSITION;
			};

			struct v2f
			{
				float4 pos : SV_POSITION;
				SHADOW_COORDS(2)
			};

			fixed4 _ShadowColor;

			v2f vert(appdata v)
			{
				v2f o;
				o.pos = UnityObjectToClipPos(v.vertex);
				TRANSFER_SHADOW(o);
				return o;
			}

			fixed4 frag(v2f i) : SV_Target
			{
				fixed atten = SHADOW_ATTENUATION(i);
				return fixed4(_ShadowColor.rgb,saturate(1 - atten)*_ShadowColor.a);
			}
			ENDCG
		}
	}
		FallBack "Diffuse"
}

将shader添加到材质球,将材质球给到被透明的物体,即地板plane

将相机ClearFlags设置为SolidColor模式即可

最终效果如下:

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论
### 回答1: 在 Unity 中,如果想要让一个物体不接受阴影,可以在该物体的材质上勾选「不受阴影」的选项。 在 Inspector 面板中,打开材质的属性,找到「渲染阴影」这一选项,将其设为「关闭」即可。 需要注意的是,设置这个选项后,这个物体将不会给周围的物体产生阴影,但是它本身仍然会受到其他物体阴影的影响。 ### 回答2: 要让Unity中的物体不接受阴影,你可以按照以下步骤进行设置: 1. 选择你想要不接受阴影物体,点击Inspector面板中的"Renderer"组件。 2. 在"Renderer"组件中,找到"Receive Shadows"(接受阴影)的选项,将其关闭。这将使该物体不再接受任何投射在它上面的阴影。 你也可以通过编程来控制物体是否接受阴影。在代码中,你可以使用"Renderer"组件的`receiveShadows`属性,将其设置为`false`,以禁用阴影的接收。 例如,以下代码段将禁用名为"myObject"的物体接受阴影: ```csharp Renderer renderer = myObject.GetComponent<Renderer>(); renderer.receiveShadows = false; ``` 通过使用上述方法,你可以在Unity中轻松地设置物体不接受阴影。请记住,禁用阴影接收可能会影响场景的真实感和逼真度,因此在使用此设置时要慎重考虑。 ### 回答3: 在Unity中,可以通过以下步骤设置物体不接受阴影: 1. 选中你想要设置的物体。 2. 在Inspector面板中,找到Renderer组件。 3. 展开Renderer组件,可以看到一些相关的设置选项。 4. 找到"Cast Shadows"和"Receive Shadows"两个选项。 5. 将"Receive Shadows"选项关闭。 6. 确定修改后的设置。 通过上述步骤,你可以将物体阴影接收设置为关闭,这样该物体就不会显示任何阴影效果。 需要注意的是,这只是针对单个物体的设置。如果你想要同样设置一组物体,可以选中它们,然后重复上述步骤。另外,还可以使用代码进行设置,详细的设置方法可以查阅Unity的官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Abel02

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值