>일반적인 문제 >Unity3D에서 프로젝터를 사용하는 방법

Unity3D에서 프로젝터를 사용하는 방법

小老鼠
小老鼠원래의
2024-03-01 09:32:221391검색

지침: 1. 프로젝터 만들기: 빈 GameObject를 만든 다음 구성 요소에서 프로젝터 구성 요소를 추가합니다. 패키지->프로젝터를 가져와서 프로젝터 패키지를 가져올 수도 있습니다.

Unity3D에서 프로젝터를 사용하는 방법

프로젝터 원리

프로젝터는 설정된 절두체 내의 모든 개체에 재료를 투영할 수 있습니다. 일반적으로 두 개의 맵 쿠키와 폴오프가 포함됩니다. 쿠키는 투영된 패턴이며 Falloff의 기능은 주로 거리에 따라 투영의 알파, 즉 밝음과 어두움을 결정하는 것입니다. 폴오프의 왼쪽은 흰색이고 알파 값은 1입니다. 이는 거리가 가까울 때 가장 밝은 투영에 해당하며 오른쪽은 검은색에 가깝고 알파 값이 0입니다. 더 나아가 투영은 점차 투명해지거나 보이지 않게 됩니다.

Unity3D에서 프로젝터를 사용하는 방법

【달성 가능】

0 캐릭터 선택 조리개

1 일반 도트 섀도우(방울 그림자)

2 페이크 다이나믹 섀도우(Fake Dynamic Shadow)

3 빛 투사

4 프로젝터(소재 질감에 따라, 사진, 비디오 또는 다른 카메라에서 본 장면일 수 있습니다.)

5 3D 또는 2D 손전등 효과

사용 단계

1. 프로젝터를 만듭니다.

빈 GameObject를 만든 다음 아래와 같이 Component에서 Projector 컴포넌트를 추가합니다

Unity3D에서 프로젝터를 사용하는 방법

Import Package->Projector를 선택하여 Projector 패키지를 가져올 수도 있습니다. 패키지 내용은 다음과 같습니다

Unity3D에서 프로젝터를 사용하는 방법

두 가지: Notes

1. 쿠키 텍스처가 클램프로 설정되어 있는지 확인하세요

2. 프로젝터 블리딩을 방지하려면 쿠키 텍스처에서 테두리 밉맵 옵션을 활성화하거나 비활성화하세요. Mipmap을 직접

Unity3D에서 프로젝터를 사용하는 방법

3.FallOff

정사영인지 아닌지.

FallOff를 사용하지 않으면 가장 밝은 알파가 1인 쿠키가 투영되고 절두체의 양방향으로 투영되어 우리가 보고 싶지 않은 "이중 투영" 효과가 발생합니다. 시스템 패키지와 함께 제공되는 Falloff 맵을 사용하는 경우. 그림자는 거리에 따라 희미해진다.

【시연 예】

예시 0: 캐릭터 발 아래 조리개

Unity3D에서 프로젝터를 사용하는 방법

Unity3D에서 프로젝터를 사용하는 방법

프로젝터에서 사용하는 셰이더는 다음과 같으며, 스크립트를 이용하여 프로젝터의 회전을 제어할 수 있습니다.

Shader "Custom/Circle" {
 Properties {
    _ShadowTex ("Cookie", 2D) = "gray" { TexGen ObjectLinear }
 }
 Subshader {
     태그 { "RenderType"="Transparent-1" }
    Pass {
       ZWrite Off
       안개 { 색상(1, 1, 1) }
 …    Blend DstColor Zero  
     SetTexture [_ShadowTex] {  … 매트릭스 [_프로젝터]
       }
    }  }
}或자는 Vertex&Fragment

셰이더 "사용자 정의/원" {
 속성 {
   _ShadowTex ("쿠키", 2D) "" }
 }
 서브셰이더 {
 …  Blend DstColor One
      CGPROGRAM  
    #pragma vertex vert  
     #pragma fragment frag
       #include "UnityCG.cginc"
       sampler2D _ShadowTex;
       float4x4 _Projector;

 … 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;       
}
float4frag(v2fi):COLOR
{
float4 c=tex2Dproj(_ShadowTex, i.texc);
반환 c;

ENDCG
}// endpass }
}예제 1: 캐릭터 아래에 일반 도트 섀도우(방울 그림자)

를 추가하세요. 프로젝터 설정 아래의 '레이어 무시'에 캐릭터 레이어를 추가하는 것을 잊지 마세요.

셰이더 "프로젝터/곱하기" {Unity3D에서 프로젝터를 사용하는 방법

Properties {

_ShadowTex ("쿠키", 2D) = "회색" { TexGen ObjectLinear }
_FalloffTex("FallOff" , 2D) = "흰색" { TexGen ObjectLinear } }

 하위 셰이더 {
    Tags { "RenderType"="Transparent-1" }
    Pass {
       Z쓰기 끄기
       안개 { 색상(1, 1, 1) }
       AlphaTest Greater 0
       ColorMask RGB
       Blend DstColor Zero
    …    
 텍스처 결합, ONE - 텍스처     
    매트릭스 [_프로젝터]      
 }
SetTexture [_FalloffTex] {
constantColor (1,1,1,0)
이전 결합 lerp(텍스처) 상수
Matrix [_ProjectorClip]
}
}
}
}

2 유사 다이나믹 섀도우 (가짜 동적 그림자)

는 3d Max나 Maya 또는 Unity를 사용하여 애니메이션에 해당하는 그림자를 먼저 굽고 시퀀스 프레임으로 만드는 것입니다. 그런 다음 프로젝터의 자료를 사용하여 해당 프레임 애니메이션을 만듭니다.

3 빛 투사

기본적으로 검은색 덩어리 쿠키를 가운데 흰색 쿠키로 교체합니다.

4 프로젝터(Material 맵에 따라 사진, 비디오, 다른 카메라에서 본 장면일 수 있음)

다른 카메라를 RenderTexture에 그린 다음 프로젝터의 재질을 RenderTexture로 사용할 수 있습니다.

5 3D 또는 2D 손전등 프로젝터의 방향 및 범위 설정이 손전등과 일치하는 효과가 있습니다. 손전등의 밝은 색을 버리십시오.

위 내용은 Unity3D에서 프로젝터를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.