前言
在上一篇文章中,我們用Shader實(shí)現(xiàn)了面片一直面向攝像機(jī)的效果。
- Unity中Shader面片一直面向攝像機(jī)
在這篇文章中,我們對(duì)其進(jìn)行個(gè)性化修改 及 BRP下的適配。
一、個(gè)性化修改面向攝像機(jī)效果
- 在很多時(shí)候,我們并不需要面片在上下方向跟隨攝像機(jī)旋轉(zhuǎn)
- 我們只需要面片跟隨攝像機(jī)的左右旋轉(zhuǎn)。
- 那么,我們就需要對(duì)上一篇文章中實(shí)現(xiàn)的效果進(jìn)行修改
1、把上一篇文章中求的 Z軸基向量 投影到 XoZ平面上
- 最簡(jiǎn)單的辦法就是,先把攝像機(jī)坐標(biāo)轉(zhuǎn)化到模型本地坐標(biāo)
- 讓 y 值為0后,再歸一化
float3 viewDir = mul(GetWorldToObjectMatrix(),float4(_WorldSpaceCameraPos,1)).xyz;
viewDir = float3(viewDir.x,0,viewDir.z);
viewDir = normalize(viewDir);
2、其余步驟和之前的一致
- 假設(shè)Y軸基向量
- 求X軸基向量
- 求Y軸基向量
3、在屬性面板定義一個(gè)變量,控制面片面向攝像機(jī)的類型
- 屬性面板
[Enum(Billboard,1,VerticalBillboard,0)]_BillboardType(“BillboardType”,int) = 1
- 在頂點(diǎn)著色器
float3 viewDir = mul(GetWorldToObjectMatrix(),float4(_WorldSpaceCameraPos,1)).xyz;
viewDir.y *= _BillboardType;
viewDir = normalize(viewDir);文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-822777.html
4、效果
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-822777.html
二、適配BRP
SubShader
{
Tags
{
//渲染類型
"RenderType"="Transparent"
//渲染隊(duì)列
"Queue"="Transparent"
}
Blend [_SrcFactor] [_DstFactor]
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fra
到了這里,關(guān)于Unity中Shader面片一直面向攝像機(jī)(個(gè)性化修改及適配BRP)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!