搜尋
首頁常見問題Unity3D中Projector怎麼用

Unity3D中Projector怎麼用

Mar 01, 2024 am 09:32 AM
unity3dprojector

使用方法:1、创建Projector:创建空GameObject,然后从Component处添加Projector组件,也可以Import Package-> Projector,导入Projector包。

Unity3D中Projector怎麼用

Projector原理

Projector能将一个Material投影到所有在设定的平截头体内的物体上。通常包含两张贴图Cookie和Falloff。Cookie就是投影的图案,Falloff的作用主要是根绝距离来决定投影的Alpha即明暗。Falloff左边为白色,alpha值为1,对应投影距离最近时最亮,右边接近全黑,alpha值为0,表示投影距离变远时投影会渐渐接近透明甚至看不见。

Unity3D中Projector怎麼用

【可以实现】

0 角色选择光圈

1 普通圆点阴影(blob shadow)

2 伪动态阴影(Fake Dynamic shadow)

3 光的投影

4 投影仪(根据Meterial的贴图,可以是图片,视频,另一个相机看到的景象)

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

使用步骤

一. 创建Projector.

 可以创建空GameObject,然后从Component处添加Projector组件如下图

Unity3D中Projector怎麼用

也可以Import Package-> Projector,导入Projector包。包内容如下

Unity3D中Projector怎麼用

二:注意事项

1.确保Cookie Texture一定要设置为Clamp

2.为了避免projector bleeding, Cookie Texture 开启Border Mipmaps选项, 或者直接禁用Mipmap

Unity3D中Projector怎麼用

3.FallOff

不管是orthographic还是不是。

如果不用FallOff, 投影下来的都是最亮即alpha为1的cookie,并且会向frustrum的正反2个方向投影,造成我们并不想看到的“双重投影”的效果。用系统包带的Falloff贴图的话。投影会随着距离变淡。

【实例演示】

例0:角色脚下的光圈

Unity3D中Projector怎麼用

Unity3D中Projector怎麼用

projector所使用的shader如下,再加上脚本控制projector旋转即可。

Shader「自訂/圓形」{
 Properties {
    _ShadowTex(「Cookie」,2D)= 「灰色" { TexGen ObjectLinear }
 }
 Subshader {
    #Tags { "RenderType "= "Transparent-1" }
##  #透過{
      ##  
  Z寫  
  霧{ 顏色(1, 1, 1) }    
 ## AlphaTest 大於0   
  顏色遮罩RGB   
  「混合DstColor 零#o##  
    ## SetTexture [_ShadowTex] {   
   #> ##     組合紋理,貼圖 
    
  Matrix [_Projector]
 

 

 

# ### ####}#### # #### ### ### ###}###### ### }###}######或用頂點&片段###

著色器「自訂/圓形」{
##屬性{
##_ShadowTex ( "Cookie", 2D) = "" { }
}
##Subshader {###### # ### ZWrite off
   
Blend DstColor OneBlend DstColor One#One##   
## #CGPROGRAM  ##  
 #pragma vertex vert  
   #pragma   #pragma 
 ## fragment frag     
#include "UnityCG.cginc"include "UnityCG.cginc"## 

 

   ## sampler2D _ShadowTex;  
>   float4x4 _投影機;

    struct v2f #{
     
     float4 #pos:SV_POSITION; 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
##o ## ## ## ## ## ## ## ## 
## ## ## ##       { 
      > ##  float4 c=tex2Dproj(_ShadowTex,i.texc);   
       ##」  
  return c;   
  
  
 

 

 

 Unity3D中Projector怎麼用 

 


ENDCG 
  }//endpass 
 }//endpass  ##}}
範例1: 普通圓點陰影(blob shadow)加在角色下面,記得把角色的layer加進projector設定下的'Ignore Layer'即可。

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

 Subshader {
    標籤 { "RenderType"="Transparent-1" }
 透過{
      #Z註銷
##  #Z註銷 
  霧{ 顏色(1, 1, 1) }  
   #AlphaTest 大於0  
  ColorMask RGB## ColorMask RGB
## ColorMask RGB
 #o##  #搭配DstColor 零  
   ##   # # 
 偏移-1, -1      SetTexture [_ShadowTex] {
       # ### ####組合紋理,一個- 紋理####### # ### #### #### ### ### ##### ### ## # ### ####Matrix [_Projector]###### ### #####Matrix [_Projector]###### ### ##### #### ### ### #### ###}
       SetTexture [_FalloffTex] {
    ##     constantColor (1,1,1,0)
         
   combine previous lerp (texture) constant      # # 
 Matrix [_ProjectorClip]      
 } 
 }

> # 

 

}

 

}

}

2 偽動態陰影(Fake Dynamic shadow)

就是用3d Max或Maya或者Unity,先把動畫對應的陰影烘焙好, 做成序列幀。然後用projector的材質做對應的幀動畫即可。

3 光的投影

###基本上是就把黑的blob cookie換成 中間是白色的cookie即可。 ######4 投影機(根據Meterial的貼圖,可以是圖片,視頻,另一個相機看到的景象)######另一個相機繪製到RenderTexture,然後projector的材質使用RenderTexture即可######5 3D或2D手電筒的效果就是projector的方向和範圍設定和手電筒一致。把電筒的光顏色投出去即可。 ###

以上是Unity3D中Projector怎麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具