Shader编程思路来源浅墨大牛,思维记录用。
今天我们开始写第一个demo,用于两个纹理的混合。
用到素材为大热绝地求生demo,自带material失效,我们试着做出理想Shader。
两个纹理的混合
Shader “0_FirstShader”
{
Properties
{
_MainTex (“主纹理”,2D) = “white” {}
_BlendTex (“混合纹理”,2D)= “white” {}
}
SubShader
{
Pass
{
SetTexture[“_MainTex”]{combine texture}
SetTexture[“_BlendTex”]{combine texture *previous}
}
}
}
这是一层贴图效果
添加混合纹理
怎么样是不是耳目一新的感觉,当然了一共有四种贴图,我们后续慢慢优化。
纹理和颜色的混合
扫描二维码关注公众号,回复:
2198175 查看本文章
Shader "Sony/0_FirstShader"
{
Properties
{
_MainTex("主纹理",2D) = "white"{}
_BlendTex("副纹理",2D) = "white"{}
_MainColor("主颜色,可调节",Color) = (1,1,1,1)
}
SubShader
{
Pass
{
SetTexture[_MainTex]
{
constantColor[_MainColor]
combineconstant * texture
}
SetTexture[_BlendTex]
{
combinetexture * previous
}
}
}
FallBack"Diffuse"
}
修改颜色界面
衣服纹理还在,但是多了一层骚红
那么还有第二种写法就是在Material定义材质颜色,渲染中设置渲染
Shader "Sony/0_FirstShader"
{
Properties
{
_MainTex("主纹理",2D) = "white"{}
_BlendTex("副纹理",2D) = "white"{}
_MainColor("主颜色,可调节",Color) = (1,1,1,1)
}
SubShader
{
Material
{
//漫反射颜色
Diffuse[_MainColor]
}
Pass
{
SetTexture[_BlendTex]
{
combinetexture * previous
}
SetTexture[_MainTex]{Combine previous * primary}
}
}
FallBack"Diffuse"
}
纹理与各种光效(高光,自发光,主颜色)的混合
Shader "Sony/0_FirstShader"
{
Properties
{
_MainTex("主纹理",2D) = "white"{}
_BlendTex("副纹理",2D) = "white"{}
_MainColor("主颜色,可调节",Color) = (1,1,1,1)
_EveColor("环境光",Color) = (1,1,1,1)
_SpeColor("反射高光",Color) = (1,1,1,1)
_ShineNum("反射光泽程度",Range(0,1)) = 0.5
_EmissionColor("自发光颜色",Color) = (1,1,1,1)
}
SubShader
{
Material
{
//漫反射颜色
Diffuse[_MainColor]
//环境光照射颜色
Ambient[_EveColor]
//反射高光
Specular[_SpeColor]
//反射光泽程度
Shininess[_ShineNum]
//自发光颜色
Emission[_EmissionColor]
}
Pass
{
LightingOn
SeparateSpecularOn
SetTexture[_MainTex]{combinetexture}
SetTexture[_BlendTex]{combinetexture * previous}
SetTexture[_MainTex]{Combine previous * primary}
}
}
FallBack"Diffuse"
}
原版头盔
新版对比头盔
最终对比效果