Unity3D Shader:宝石反射

本文详细探讨了如何在Unity3D中利用Shader技术实现逼真的宝石反射效果,通过调整法线贴图、环境光和镜面反射等参数,创造出璀璨夺目的视觉体验。适合Unity3D开发者提升图形渲染技巧。
Shader "Unlit/Test"
{
Properties
{
_MainColor("MainColor",COLOR)=(0,0,0,1)
[NoScaleOffset]_MainCUBE ("MainCUBE", CUBE) = "white" {}
_RefStreng("RefStreng",Range(0,2.0))=0
_Enviorenment("Enviorenment",Range(0,2.0))=0
_Emission("Emission",Range(0,2.0))=0


}
SubShader
{
Tags { "Queue"="Transparent" }
LOD 100


Pass
{
Cull Front
ZWrite Off


CGPROGRAM
#pragma vertex vert
#pragma fragment frag

#include "UnityCG.cginc"


struct appdata
{
float4 vertex : POSITION;
float3 uv : TEXCOORD0;
float3 n:NORMAL;
};


struct v2f
{
float3 uv : TEXCOORD0;
float4 vertex : SV_POSITION;
};


samplerCUBE _MainCUBE;
float4 _MainColor;
float _Enviorenment;
float _Emission;


v2f vert (appdata v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
float3 viewDir=normalize(ObjSpaceViewDir(v.vertex));
o.uv=-reflect(viewDir,v.n);
o.uv=mul(unity_ObjectToWorld,float4(o.uv,0));
return o;
}

fixed4 frag (v2f i) : SV_Target
{
float4 col=texCUBE(_MainCUBE,i.uv)*_MainColor;
float4 re
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值