[Unity] 바닥에 대한 거울 반사
ReflecionProbe 정보
Unity는 반사를 재현하기 위해 ReflecionProbe(이하 탐지라고 함)의 기능을 사용합니다.
일반적으로 프로브를 사용할 때는 반사할 객체의 위치와 동일한 위치에 프로브를 배치합니다.
소품 등의 경우 이 방법으로 반사하면 그에 상응하여 정확한 외관을 반영할 수 있다고 생각합니다.
그러나 평면 등으로 구성된 마루에 상술한 방법으로 반사된 상황에서 파산은 상당히 뚜렷하다.
플랜의 반사에 ↓ 탐지를 이미지처럼 배치하면...
결과적으로 부정확한 반사가 나타났다
영상 오른쪽은 거의 자동차의 반사에 의해 가려졌다.
탐지 위치를 바꾸어 대책을 세우다
해결 방법에 관하여 참고하였다여기 블로그..
주로 반사면을 축 위의 대칭적인 위치에 놓는다.
삽화 준비하느라 힘들었어요.
제가 좀 빌려 쓸 수 있도록 허락해 주세요...
블로그 기사에도 실물이 있고 탐측을 사용하지 않는 방법도 소개돼 있으니 추천합니다.
하지만 플랜(반사면)의 y 좌표는 0이 초보자로서 반할 수 있다는 전제이기 때문에 이 기사에서 이에 대응하는 것을 소개하고 싶다.
using UnityEngine;
using System.Collections;
public class setProbePosition: MonoBehaviour
{
[SerializeField]
public GameObject plane;//鏡面反射を行うPlane
private ReflectionProbe probe;
private Transform trfMainCam;
private Transform trfPlane;
void Start()
{
probe = gameObject.GetComponent<ReflectionProbe>();
trfMainCam = Camera.main.transform;
}
void Update()
{
//差分距離導出
float _diffDistance = GetDiffDistance();
SetPosition(_diffDistance);
}
private void SetPosition(float _diffDist)
{
probe.transform.position = new Vector3(trfMainCam.position.x, trfMainCam.position.y - (_diffDist * 2.0f), trfMainCam.position.z);
}
private float GetDiffDistance()
{
float _dist = Mathf.Abs(trfMainCam.position.y - plane.transform.position.y);
if (trfMainCam.position.y < plane.transform.position.y)
{
//カメラより上に平面があった場合にprobeとの位置が逆転するための対策
_dist *= -1.0f;
}
return _dist;
}
}
반사하려는 평면 탐지에 제작된 스크립트를 적용하고 검사기에서 객체의 평면으로 지정하면 사용할 수 있습니다.함수로 정리된 것이기 때문에 조금 다르지만 블로그 글과 다른 부분은 프로브의 y 좌표를 결정하는 카메라의 - 1 y 좌표 부분이다.
-trfMainCam.position.y
섹션trfMainCam.position.y - (_diffDist * 2.0f)
이(가) (으)로 변경되었습니다._diffDist
카메라와 평면이 y축에 있는 차분거리는 GetDiffDistance()
로 계산된 것으로 기본적으로 카메라와 평면을 통해 감법 계산만 한다.그러나 평면이 천장처럼 카메라 위에 존재하는 상황에서 계산값을 직접 사용하면 탐측된 위치와의 관계가 이상해진다
-1.0
. 따라서 곱하기를 통해 대책을 세워야 한다.그리고 카메라의 y 좌표와
_diffDist
를 두 배로 줄이면 탐측은 카메라와 평면의 위치에 대응하는 위치로 계속 이동한다.이 장점은 플랜트의 y 좌표가 0이 아니었을 때는 말할 것도 없고, 게임 속 이동 침대 등도 반사되는 허점이 나타나지 않는다는 것이다.
결실
좋은 느낌
최후
실제로 이것만 설치하면 부족한 처리에서 플랜트의 대상이 플랜트를 관통하면 탐침의 부분을 꿰뚫어도 반사로 흡수된다.
아까도 소개한 바와 같이블로그 글 탐사를 하지 않는 방법으로 문제를 해결하기 때문에 그곳에서 어려움이 있으면 블로그를 찾아보는 것을 권장합니다.
(기본적으로 블로그 글과 같지만 비슷한 글이 적기 때문에 초보자가 쉽게 찾을 수 있다는 뜻을 담았다)
Reference
이 문제에 관하여([Unity] 바닥에 대한 거울 반사), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/yothuba/articles/5f534d60e4c1ef478902텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)