真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Unity3D中Projector怎么用

這篇文章主要介紹Unity3D中Projector怎么用,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

站在用戶的角度思考問題,與客戶深入溝通,找到龍山網(wǎng)站設(shè)計與龍山網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都做網(wǎng)站、網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、主機域名、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋龍山地區(qū)。

                 Projector 

【原理】

Projector能將一個Material投影到所有在設(shè)定的平截頭體內(nèi)的物體上。通常包含兩張貼圖Cookie和Falloff。Cookie就是投影的圖案,F(xiàn)alloff的作用主要是根絕距離來決定投影的Alpha即明暗。Falloff左邊為白色,alpha值為1,對應(yīng)投影距離最近時最亮,右邊接近全黑,alpha值為0,表示投影距離變遠時投影會漸漸接近透明甚至看不見。

Unity3D中Projector怎么用

【可以實現(xiàn)】

0 角色選擇光圈

1 普通圓點陰影(blob shadow)

2 偽動態(tài)陰影(Fake Dynamic shadow)

3 光的投影

4 投影儀(根據(jù)Meterial的貼圖,可以是圖片,視頻,另一個相機看到的景象)

5 3D或者2D手電筒的效果

【使用步驟】

一. 創(chuàng)建Projector.

 可以創(chuàng)建空GameObject,然后從Component處添加Projector組件如下圖

Unity3D中Projector怎么用

也可以Import Package-> Projector,導(dǎo)入Projector包。包內(nèi)容如下

Unity3D中Projector怎么用

二:注意事項

1.確保Cookie Texture一定要設(shè)置為Clamp

2.為了避免projector bleeding, Cookie Texture 開啟Border Mipmaps選項, 或者直接禁用Mipmap

Unity3D中Projector怎么用

3 FallOff

不管是orthographic還是不是。

如果不用FallOff, 投影下來的都是最亮即alpha為1的cookie,并且會向frustrum的正反2個方向投影,造成我們并不想看到的“雙重投影”的效果。用系統(tǒng)包帶的Falloff貼圖的話。投影會隨著距離變淡。

【實例演示】

例0:角色腳下的光圈

Unity3D中Projector怎么用Unity3D中Projector怎么用

projector所使用的shader如下,再加上腳本控制projector旋轉(zhuǎn)即可。

Shader "Custom/Circle" {
 Properties {
    _ShadowTex ("Cookie", 2D) = "gray" { TexGen ObjectLinear }
 }
 Subshader {
    Tags { "RenderType"="Transparent-1" }
    Pass {
       ZWrite Off
       Fog { Color (1, 1, 1) }
       AlphaTest Greater 0
       ColorMask RGB
       Blend DstColor Zero
       SetTexture [_ShadowTex] {
          combine texture,texture
          Matrix [_Projector]
       }
    }
 }
}

或者用Vertex&Fragment

Shader "Custom/Circle" {
 Properties {
   _ShadowTex ("Cookie", 2D) = "" { }
 }
 Subshader {
    pass {
       ZWrite off
       Blend DstColor One
      CGPROGRAM
       #pragma vertex vert
       #pragma fragment frag
       #include "UnityCG.cginc"

       sampler2D _ShadowTex;
       float4x4 _Projector;

       struct v2f {
           float4 pos:SV_POSITION;
           float4 texc:TEXCOORD0;
       };
       v2f vert(appdata_base v)
       {
           v2f o;
           o.pos=mul(UNITY_MATRIX_MVP,v.vertex);
           o.texc=mul(_Projector,v.vertex);
           return o;
       }
       float4 frag(v2f i):COLOR
       {
           float4 c=tex2Dproj(_ShadowTex,i.texc);
           return c;
       }
       ENDCG
   }//endpass
 }
}

例1: 普通圓點陰影(blob shadow)

加在角色下面,記得把角色的layer加進 projector設(shè)置下的'Ignore Layer'即可。

Unity3D中Projector怎么用

Shader "Projector/Multiply" {
 Properties {
    _ShadowTex ("Cookie", 2D) = "gray" { TexGen ObjectLinear }
    _FalloffTex ("FallOff", 2D) = "white" { TexGen ObjectLinear  }
 }

 Subshader {
    Tags { "RenderType"="Transparent-1" }
    Pass {
       ZWrite Off
       Fog { Color (1, 1, 1) }
       AlphaTest Greater 0
       ColorMask RGB
       Blend DstColor Zero
      Offset -1, -1
       SetTexture [_ShadowTex] {
          combine texture, ONE - texture
          Matrix [_Projector]
       }
       SetTexture [_FalloffTex] {
          constantColor (1,1,1,0)
          combine previous lerp (texture) constant
          Matrix [_ProjectorClip]
       }
    }
 }
}

2 偽動態(tài)陰影(Fake Dynamic shadow)

就是用3d Max或者 Maya或者Unity,先把動畫對應(yīng)的陰影烘焙好, 做成序列幀。然后用projector的材質(zhì)做對應(yīng)的幀動畫即可。

3 光的投影

基本是就把黑的blob cookie換成 中間是白色的cookie即可。

4 投影儀(根據(jù)Meterial的貼圖,可以是圖片,視頻,另一個相機看到的景象)

另一個相機繪制到RenderTexture,然后projector的材質(zhì)使用RenderTexture即可

5 3D或者2D手電筒的效果就是projector的方向和范圍設(shè)置和手電一致。把電筒的光顏色投出去即可。

以上是“Unity3D中Projector怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


當(dāng)前標題:Unity3D中Projector怎么用
文章網(wǎng)址:http://weahome.cn/article/jsedss.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部