Categories: youtube

[CC] 유리창에서 데칼이 안 먹는 이유! #Unreal #rendering #material #shader

제가 운영하는 채널입니다. 많은 방문 부탁드립니다.

채널바로가기

📌 언리얼 엔진에서 반투명 오브젝트에 데칼이 적용되지 않는 이유는 무엇인가?

데칼은 사전에 배치된 오브젝트의 신 댑스 값을 이용하여 겹쳐진 영역에 배치되는 원리인데, 반투명 오브젝트는 신 댑스 값에서 빠지기 때문에 겹쳐진 영역을 구할 수 없어 렌더링이 불가능하기 때문입니다

💡 반투명 오브젝트에 데칼과 유사한 효과를 적용하는 방법은?

매쉬와 데칼 머트리얼을 혼합하여 사용하면 데칼을 적용한 것과 비슷한 느낌의 효과를 만들 수 있습니다

목차

이 튜토리얼은 언리얼 엔진에서 데칼이 반투명 오브젝트에 적용되지 않는 이유와 해결 방법을 설명합니다. 핵심은 데칼이 신 댑스(Scene Depth) 정보를 활용하여 렌더링되는데, 반투명 오브젝트는 신 댑스에 포함되지 않기 때문입니다. 해결책으로, 데칼 머티리얼을 메시(Mesh)에 직접 적용하는 방법을 제시하며, 이를 통해 데칼과 유사한 효과를 낼 수 있습니다. 이 튜토리얼은 언리얼 엔진에서 데칼을 효과적으로 사용하는 방법을 제시하여, 렌더링 문제를 해결하고 시각적 완성도를 높이는 데 도움을 줍니다.

1. 🪟 데칼이 반투명 오브젝트에 적용되지 않는 문제와 실질적 대안

  • 데칼은 포스터, 그래피티, 벽의 균열 등 배경을 자연스럽게 꾸미기 위해 자주 사용되는 시각적 효과다.
  • 그러나 데칼을 반투명 오브젝트(예: 유리창)에는 바로 적용할 수 없다는 문제가 있다.
  • 실제로 반투명에 적용된 것처럼 보여도, 이는 반투명 오브젝트가 아니라 바닥에 데칼이 적용된 경우다.
  • 이 문제를 해결하기 위해서는 매쉬와 데칼 머티리얼을 혼합해서 사용하는 전략이 필요하다.
  • 스태틱 매쉬(플랜)에 데칼용 머티리얼을 직접 적용하면, 데칼이 적용된 것과 매우 유사한 효과를 얻을 수 있다.

2. 🪟 데칼이 반투명 오브젝트에 적용되지 않는 근본적 이유

  • 데칼이 반투명한 질감에 적용되지 않는 이유는, 반투명 오브젝트가 신 댑스(Depth) 정보에 포함되지 않기 때문임을 확인할 수 있다.
  • 신 댑스는 카메라로부터 3D 오브젝트가 얼마나 멀리 떨어졌는지를 나타내는 값이며, 이 모드를 통해 버퍼 비주얼라이제이션에서 확인 가능하다.
  • 오페이크(Opaque)나 마스크드(Material Masked) 오브젝트는 신 댑스 값에 포함되기 때문에 데칼이 정상적으로 렌더링된다.
  • 그러나 트랜스루센트(Translucent), 즉 반투명 오브젝트는 신 댑스 값에서 제외되어 데칼의 겹치는 좌표 영역을 계산할 수 없어 데칼 적용이 되지 않는다.
  • 실험적으로, 데칼이 적용된 오브젝트를 허공에 배치하면 머티리얼만 적용된 경우와 다르게 데칼의 동작을 직접 관찰할 수 있다.

3. 🧩 매쉬 기반 데칼 적용과 G파이팅 문제

  • 트랜슬루센트(반투명) 오브젝트는 데칼의 바운딩 박스 범위와 무관하게 항상 렌더링되어 멀어져도 보인다
  • 트랜슬루센트 오브젝트의 두께가 거의 0에 가까워서 거리 변화가 시각적으로 잘 드러나지 않는다
  • 이미지가 반투명이고 글씨가 투명인 이유는 명확히 알 수 없어 추가적인 조사가 필요하다
  • 데칼 머티리얼을 매시에 적용한 경우와 일반 머티리얼을 적용한 기본 오브젝트를 비교하는 두 가지 예시가 있다
  • 트랜슬루센트 머티리얼과 오페이크(불투명) 머티리얼이 겹쳐 있으면 누가 먼저 렌더링될지 알 수 없어 G파이팅이 발생한다

4. 📝 데칼 처리 방식 및 추가 연구 방향

  • **오페이크(Opaque)**와 **데칼(Decal)**의 경우, 먼저 오브젝트를 그리고 그 위에 데칼을 덮는 명확한 순서로 인해 **깊이 파이팅(z-fighting)**이 발생하지 않는다
  • 데칼을 제한적으로 활용할 수 있으며, UV 정리에 신경을 써야 하지만 데칼을 전혀 사용하지 못하는 것보다는 낫다
  • 데칼 적용과 관련된 문제나 궁금증이 생길 경우, 이메일로 문의하면 된다
polyflow

Recent Posts

[cc] 언리얼에서 내맘대로 위치옮기기!! #unreal #leveldesign #3d

https://youtu.be/JCnmVzw-pSc?si=r2fMBR8vGAMI29cy <aside> ⌛ 📌 언리얼 엔진에서 피벗 위치를 원하는 대로 옮기는 방법은? 모델링 툴의 에디트…

1주 ago

[CC] 셰이더가 뭉개질때 보세요 #unreal #shader #antialiasing

https://www.youtube.com/watch?v=jwpIzVdcYb0 제가 운영하는 채널입니다. 많은 방문 부탁드립니다. 채널바로가기 영상에 안티앨리어싱과 관련된 포스팅은 아래 링크에 있습니다.…

3개월 ago

[cc] 초간단 이벤트와 펑션을 어떻게 사용할까? #unreal #blueprint

https://www.youtube.com/watch?v=mRqUWImfoxo 제가 운영하는 채널입니다. 많은 방문 부탁드립니다. 채널바로가기

3개월 ago

포스트 프로세싱(post processing)

포스트 프로세싱(Post-Processing)이란? 포스트 프로세싱은 렌더링 된 이미지나 영상에 후처리 효과를 적용하는 과정입니다. 리얼 타임 엔진에서는…

3개월 ago

디스플레이(display)

디지털 콘텐츠는 2D 픽셀이거나, 3D 폴리곤이거나 모두 화면에 보이는 것으로 끝나게 됩니다. 결국 디스플레이의 특징에…

3개월 ago

유니티(unity)

유니티 3D는 대표적인 리얼타임 엔진이기도 하며, 언리얼과는 다른 포지션으로 시장에 군림하고 있습니다. 특징을 크게 나눠보면 다음과…

3개월 ago