unity3d双面材质_Unity中创建双面材质

Unity中创建双面材质:在其它三维软件中设置好的双面材质导入到Unity3D中就失去了效果,

不过我们可以通过自定义材质来在Unity3D中实现双面材质的效果

步骤如下:

在资源库中新建一新shader;代码如下:

Shader "Nature/Vegitation Vertex Lit" {

Properties {

_Color ("Main Color", Color) = (1,1,1,0)

_SpecColor ("Spec Color", Color) = (1,1,1,1)

_Emission ("Emmisive Color", Color) = (0,0,0,0)

_Shininess ("Shininess", Range (0.01, 1)) = 0.7

_FrontTex ("Front (RGB)", 2D) = "white" { }

_BackTex ("Back (RGB)", 2D) = "white" { }

}

SubShader {

Material {

Diffuse [_Color]

Ambient [_Color]

Shininess [_Shininess]

Specular [_SpecColor]

Emission [_Emission]

}

Lighting On

SeparateSpecular On

Blend SrcAlpha OneMinusSrcAlpha

Pass {

Cull Front

SetTexture [_BackTex] {

Combine Primary * Texture

}

}

Pass {

Cull Back

SetTexture [_FrontTex] {

Combine Primary * Texture

}

}

}

}

然后在模型材质中更改shader为上面新建的Nature/Vegitation Vertex Lit这个shader即可实现双面效果。

(责任编辑:脚印)

免责声明:Unity之家部分内容来源于互联网,如有侵权,请联系我们,本站将立即进行处理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Unity3D 的贴花效果通常可以通过 Shader 来实现,其最常用的是标准的 Diffuse Shader。下面介绍一种在 Unity3D 实现地面印花效果的方法: 1. 准备贴花材质 首先需要准备贴花材质,可以使用 Photoshop 或其他图片编辑软件制作,保证图片格式为 PNG,并且背景透明。然后将其导入 Unity3D 。 2. 创建地面 创建一个 Plane 对象,并且将其旋转至水平方向,作为地面。 3. 创建印花 Shader 在 Unity3D 创建一个新的 Shader,这里我们使用的是 Unity 内置的 Standard Shader。在 Shader 增加一个贴花纹理属性,代码如下: ``` Shader "Custom/GroundStamp" { Properties { _MainTex("Albedo (RGB)", 2D) = "white" {} _Glossiness("Smoothness", Range(0,1)) = 0.5 _Metallic("Metallic", Range(0,1)) = 0.0 _StampTex("Stamp Texture", 2D) = "white" {} _StampTiling("Stamp Tiling", Range(0,10)) = 1.0 _StampAmount("Stamp Amount", Range(0,1)) = 1.0 } SubShader { Tags { "RenderType"="Opaque" } LOD 100 CGPROGRAM #pragma surface surf Standard sampler2D _MainTex; float4 _MainTex_ST; sampler2D _StampTex; float _StampTiling; float _StampAmount; struct Input { float2 uv_MainTex; float3 worldPos; float3 worldNormal; }; void surf (Input IN, inout SurfaceOutputStandard o) { // 计算贴花纹理坐标 float2 stampUV = IN.worldPos.xz * _StampTiling; // 获取贴花纹理颜色 float4 stampColor = tex2D(_StampTex, stampUV); // 计算最终颜色 o.Albedo = lerp(o.Albedo, stampColor.rgb, _StampAmount); } ENDCG } FallBack "Diffuse" } ``` 其,_StampTex 是我们刚才准备的贴花材质,_StampTiling 是贴花纹理的缩放比例,_StampAmount 是贴花的强度。 4. 将 Shader 应用到地面 将刚才创建的 Shader 应用到地面的材质,并将贴花纹理指定为刚才准备的贴花材质。可以通过调整 _StampTiling 和 _StampAmount 参数来控制贴花的大小和强度。 这样,我们就成功实现了在 Unity3D 的地面印花效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值