[유니티 입문 강좌] part7 라이트

kkily·2021년 11월 20일
0

Light

  • Directional: 태양같은 것 , 전범위에 걸쳐서 동일한 세기, 각도로 빛을 내리쬐는 것 -> 모두 동일한 영향

  • spot: 쭉 뻗어있음

  • Point: 일반 전구

  • Area: TV빛 느낌, 직사각형에서 빛이 나옴

  • realtime: 매 프레임마다 밝기 조정

  • baked: 처음 계산하고 변화 x

  • intensity: 빛의 세기

  • indifrxt multiplier: 간접광의 색이 영향을 미치는 정도

  • shadow type: 사라짐, 딱딱하게, 흐리게 처리

  • strength: 그림자 세기

  • resolution: 그림자 퀄리티

  • bias: 그림자를 밀어냄

  • normal bias: 그림자를 쪼그라트림

  • near plane: 가장 가까운 그림자부터 멀리있는 것까지 사라지게 만듦 (directional에서 사용 x)

  • cookie: 빛을 방해함 (구름처럼)

  • draw halo: 후광을 비춤

  • flare: 태양을 볼때 옆에 그을음 생기는 것처럼

  • render mode: 중요하게, 안중요하게 조명을 처리함

  • culling mask: 특정 layer를 비출지 안비출지

  • bake는 큐브를 움직여도 그림자가 따라오지 않기 때문에 배경을 위해 많이 씀

Script를 이용해 intensity와 range 조절

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour
{
   private Light theLight;

   private float targetIntensity;
   private float currentIntensity;

    void Start(){
       theLight = GetComponent<Light>();
       currentIntensity=theLight.intensity;
       targetIntensity=Random.Range(0.4f,1f);
        
    }

    void Update(){
        if(Mathf.Abs(targetIntensity-currentIntensity)>=0.01){
            //목표강도와 현재 강도를 맞추기 (최종 모습: 전구 꺼질랑 말랑 하는듯 깜박거림)
            if(targetIntensity-currentIntensity>=0)
                currentIntensity+=Time.deltaTime*3f;
            else{
                currentIntensity-=Time.deltaTime*3f;
            }

            theLight.intensity=currentIntensity;
            theLight.range=currentIntensity+10;

        }
        else{
            targetIntensity=Random.Range(0.4f,1f);
        }
    }
}

    
    
profile
낄리의 개발 블로그╰(*°▽°*)╯

0개의 댓글