석류 작업노트

Unreal Englne 집 벽 머테리얼 구현 ( Mesh Paint Brick Wall ) 본문

스터디/Unreal Engine

Unreal Englne 집 벽 머테리얼 구현 ( Mesh Paint Brick Wall )

석류! 2024. 10. 21. 11:28

 

 

주요 기능들로는

- 텍스쳐 조절기능 ( Material Function )

- Vertex Color + Noise 기능

- 머테리얼 3종 자연스러운 블렌드

- 깎인 벽 노말표현

 

정도가 될 듯 하다.

 

전체적인 구성

 

 

- 텍스쳐 조절기능 ( Material Function )

 

딱히 할말은 없고..

벽 / 깎인곳 / 안쪽의 벽   으로 텍스쳐가 들어가 줄 것이기에

3종의 텍스쳐들을 조절해 줄 수 있게 Function을 불러와 조절해줬다.

 

 

- Vertex Color + Noise 기능

 

이펙트에서 디졸브 효과에 들어가는 구성이랑 거의 흡사하다.

상단의 구역은 평소에 메쉬페인트에서 사용하던 방식을 사용하면 되는데

머테리얼 상에선 메쉬페인트 된 상태를 보기 힘드니

그라데이션 텍스쳐를 사용해 스위치로 이리저리 보기위한 편의기능을 만들어뒀다.

 

 

아래기능은 노이즈 부분인데

메쉬페인트 된 부분에 노이즈를 넣어 자연스레 랜덤값을 넣어주기 위함이다.

 

먼저 노이즈에 타일링 기능을 넣어주고

버텍스페인트에 얼마나 관여할 것인지를 조절하기위해

Int와 Multifly를 곱해 Add로 넣어줬다.

 

 

 

- 머테리얼 3종 자연스러운 블렌드

 

여기서  벽 / 깎인곳 / 안쪽벽  을 구분해 주기 위해

smoothstep 으로 어느정도 구역을 기준으로 나눌것인지 정해주고

원래 noise에 수치값을 add해 

어느정도 구간별 차이를 줄 지 구분해주는 노드를 만들었다.

 

이중 Tex_sub_02는  중간벽의 구역을 조절해주고

BLD_1&2_L 은 추후에 사용될 바깥벽 / 깎인곳 의 노말 구역을 조절해주는 역할을 한다.

 

머테리얼 블렌드는 BlendMaterialAttributes 를 사용했다.

 

 

..솔직히 여기는 내가 이러이러한 방식을 사용했다~ 만 얘기할 수 있고

상황에 따라서 어떻게 사용해야할지 , 사용될 방식은 무엇인지 그때그떄 다르고

대부분 그 뒤는 노가다라... 크게 설명할 말은 없다.

 

 

 

현재 좌측상단 까지는 전부 설명했다.

 

 

 

 

- 깎인 벽 노말표현

 

이제 깎인 벽을 표현해 줘야 하는데

여기서 노이즈를 추가로 넣어줬다.

모든곳이 균일하게 깎인 표현이 되면 어색하기 때문.

 

아까 위에서 꺼내줬던  경계부분을 가져와

노이즈 타일링 구역에 곱해준다.

 

여기서 노이즈 끝부분에 Lerp값을 써서 표현해줬다

지금보니 subtract나 다른방법을 써도될듯..?

 

여기서 우리는

원래의 노말에  벽 경계값을 Subtract해주어 표현할 것이다.

하지만 노말맵에서 평평할때 R , G 값은 0 / B값은 1을 가지고 있는데

우린 야매로 이쪽부분이 기울여저 깎여있다 라는 느낌을 줄것이기에

RG 값에만 그라데이션된 경계값을 빼버려 노말이 주어진 느낌을 표현할것이다.

 

!!이는 정확한 방식이 아니다!!

원래였으면 모두 똑같이 빼주는 것이 아니라 

오른쪽으로 기울었음 / 왼쪽으로 기울었음  에 따라 더해지거나 빼야하지만

그러한 방식을 구현하지 못하여 전체적으로 빼버리는 선택을 했음.

 

다만 이정도만 해도 충분히 벽이 까진 노말느낌은 주기에 ( 나 자신의 표현한계 )

이렇게 표현을 했다.

 

결론적으론  경계부분을 R,G 에만 수치를 적용하여

최종머테리얼 노말에서 빼주었다.

 

 

그러면 최종적으로 다음과 같은 표현을 얻을 수 있다.

 

 

 

 

 

작성목적 : 나중에 내가만든 내 노드 잊어먹지말라고