Notice
Recent Posts
Recent Comments
Link
«   2025/11   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
Tags
more
Archives
Today
Total
관리 메뉴

공부용 이모저모

UE4 - 반투명 순서 관리 본문

UE4 - 블루프린트

UE4 - 반투명 순서 관리

불타는버스 2021. 7. 22. 14:09

이 포스트는 방안이 나올때마다 꾸준히 추가할 생각이다.

언리얼 엔진 메테리얼의 반투명 모드는 Translucent를 사용한다.

하지만 반투명 이미지들이 여러개가 그려질경우 생기는 문제도 다양하다.

예시를 몇가지 들어본다.

 

 

문제 예시

1.하나의 액터안에 여러 반투명 이미지가 있을경우, 순서가 꼬여버린다.

https://unrealstudy.tistory.com/10

 

UE4 - 알파테스트 머리카락 그리기 / 소팅

참조자료:나무꾼의 연구노트 :: 반투명 헤어 알파소팅 문제 최소화 하기 - TwoSided 활용 (tistory.com) 이렇게된 큰 원인은,Two Sided로 그려지고있는 메쉬들끼리 그리기 순서가 정해지지 않아서이다. 이

unrealstudy.tistory.com

이는 Two Side 방식으로 임시 방편을 사용했었다.

2.액터와 액터 사이에 순서가 꼬여버린다.

두번째는 다른 액터인데, 크기가 서로 달라 순서를 잡기 애매한 액터간의 반투명 문제이다.

바다에 집어넣었지만, 바다의 크기가 워낙 크기 때문에 반투명 이미지 간의 순서문제에서

꼬이게 되어버린다.

https://unrealstudy.tistory.com/11

 

UE4 - 굴절 (물 반사) & 안개

UE4 - 일렁이는 빛 만들기 & 액터 아지랭이(HAZE) 참조 영상:https://www.youtube.com/watch?v=BRi4KrGCS80 UV Scale / Speed / Intersity = Scalar Parameter 월드 좌표로부터 UV를 나눠, R,G 값과 G B값을 더한..

unrealstudy.tistory.com

 

이것 또한 액터간 순서를 바꿔서 해결했었다.
3.액터와 액터간의 굴절 효과 문제

반투명 액터끼리는 깊이버퍼에 기여를 안하는것인지, Translucent 끼리만 굴절에 영향을 주고있다.

하물며 이건 메테리얼의 그리기 순서랑도 관계없다.참 난감한 문제다.

 

추가- 굴절관련은 버그라는 모양이다..문젠 4.26.2 버전에서 조차도 재현되고있다는 점...

https://answers.unrealengine.com/questions/350479/translucent-render-order-of-refractive-materials.html

 

Translucent render order of refractive materials - UE4 AnswerHub

Hello, I found a problem that the translucent-refractive material may be rendered in wrong order. The refractive object is somehow always rendered on top of the translucent but not refractive objects. Do we have any methods to avoid this ? Refractive Mater

answers.unrealengine.com

Unreal Engine Issues and Bug Tracker (UE-24998)

 

The Unreal Engine Issues and Bug Tracker

Welcome to the Unreal Engine Issue and Bug Tracker. You can check the status of an issue and search for existing bugs. See latest bug fixes too.

issues.unrealengine.com

4.바다를 강제로 늦게그리면 머리가 덮히기까지

액터의 반투명 그리기 순서를 무조건 뒤로 미룰 경우, 당연히 바다가 늦게그려지기 때문에

깊이랑 관계없이 덮어그려버리게 된다.

 

해결책

 

1.Render After DOF

메테리얼에는 강제로 별도 관리시키는 방법이 존재한다.

요컨대 반투명패스가 두개 존재한다고 생각하면 된다.

DOF인 애들은 DOF끼리 묶는 식으로 처리를 해주어야 한다.

 

2.Disable Deth Test

깊이 테스트를 비활성화 시키는 방법.

아예 깊이랑 관계없이 무조건 마지막에 그리게 처리한다.

이것또한 해당하는 반투명 이미지들을 잘 생각해서 써야한다.

 

이런경우 다 무시하고 맨 앞에 그려버린다.

3.액터 그리기 순서 바꾸기

액터의 그리기 순서 바꾸기

깊이값이 어디에 존재하던, 그리기 순서자체를 뒤로 미뤄버린다.

단 이럴경우 액터의 깊이 조절에 유의해야 한다.

 

4.마스크 이미지로 대체(알파테스트 전용)

마스크 이미지 사용하기

이건 알파 테스트용 이미지에 한정이다.

Masked 이미지는 정말 알파를 0과 1로만 나누고자 할때 사용한다.

알파가 존재하는것들만 짜르는 방식으로, 그릴때도 알파 이미지로 구분짓지 않아

반투명 이미지의 순서에 대해 고민할 필요가 사라진다.

오파시티 기능대신 오파시티 마스크 기능으로 대체된다.

3,4번 문제에 대한 해결책이기도 하다.

뭔가 끝부분이 이쁘지않게 잘리는 느낌이 든다.
순서를 신경안써도 되는점이 장점이다.