본문 바로가기
기타 공부하기/후디니

벡터볼륨 / 벡터필드 비주얼라이제이션

by 대마왕J 2024. 2. 23.

헤에 드디어 벡터 필드가 나오는군요 
이거 사전지식 없이 이해하시는 아티스트는 꽤 적을듯. 

일단 벡터 볼륨(벡터필드) 란 방향으로 차 있는 공간? 정도의 느낌입니다 

그럼 일단, 두 개의 볼륨을 봅시다 하나는 vdb로 만든 볼륨이고, 하나는 volume으로 만든 볼륨이예요 
둘은 기본적으로 같죠 

그런데, vdb를 벡터 플롯으로 바꿨을때랑 volume을 벡터 플롯으로 바꿨을때랑 결과가 달라요 
여태까지는 그냥 float이어서 문제 없었는데, 이제 벡터, 즉 float3 가 된거죠 

어떻게 다르냐면, 인포를 보면 알 수 있습니다. 

vdb는 vec3 값으로 만들어졌다면, 

volume은 float 3개로 이루어진 모양입니다 

이렇게 두 가지의 벡터값으로 나오는 경우가 있습니다. 둘 다 다뤄야 하니 둘 다 다루는 법을 배워야 합니다. 

두 가지 버전의 벡터필드 비주얼라이즈 하기 

벡터필드를 보기 위해서 일단 러버토이를 볼륨화 시킵니다. 

이 볼륨을, 만들어 놓은 벡터 필드 값을 받도록 합시다 

일단 vdb 벡터 볼륨으로부터 받는것부터 하죠 

우선...

처음 들어오는 vdbactivate를 선택해서 value를 0로 만들어줄 필요가 있습니다. 그래야 일단 초기값이 0 

그리고 볼륨 vop 들어가서 bind와 bind export를 모두 vector로 만들어주고, 역시 vector 값인 1,0,0 을 더해줘서 
최종 결과값이 1,0,0 으로 나오게 만들어 줍니다. 

 

뭐 근데 겉으로 봐서는 모르죠. 저 필드는 지금 1,0,0 값입니다. 근데 비주얼라이제이션은 그냥 x 값만 보이는뎁쇼?  

이걸 보게 하려면, 이제 merge로 둘을 연결해줘야 볼 수 있습니다. 
volume visualization 에서 밀도값은 vec 을 쓰고 칼라값은 a를 쓴걸 보세요 
그렇게 해야 저 안은 이렇게 1,0,0 필드로 차 있다는 것을 알 수 있습니다. 흠 좀 미묘하네요 아직 저 부분이 완벽히 이해가진 않습니다. 

뭐 어쨌거나 그럼 이번에는 vdb로 보는게 아니라 volume으로 봅시다. 얘는 벡터가 하나로 만들어진게 아니라 각각의 float이 3개로 이루어졌다고 했죠 

일단 얘도 값을 1,0,0 으로 만들어 주고 봅시다. 

그런데 그냥 연결만하면 나오지 않는데, (이름이 a 로 같은데도) 

고것은 마지막 Diffuse field 에서 a.x a.y a.z 이렇게 써줘야 된답니다. 
물론 a.* 해도 같게 동작해요. 하 이거 진짜 프로그래머 툴이네 

 

이제 색으로 보지 말고 포인트의 이동으로 봅시다 

사실 벡터필드는 색.. 으로보면 좀 글쵸.
실제 이미지는 다양한 방향의 힘이 있는 필드입니다. 
아니 뭐 색도 안되는건 아닌데 좀 글타 그런거죠. 

자 그럼 만들어 봅시다 

저걸 만들려면 우선 벡터필드란 이름으로 4 4 4 미터짜리 하나 만들고 value는 0로 시작하게 했구요 
타입을 벡터 플롯으로 해주는걸 또 잊으면 안되죠. 왜그러냐면 내가 잊었거든

volume vop 에서 bind 와 bind export 를 vector3로 만들어 연결해주고, turbnoise 를 연결해 줬어요 .

이러면 이렇게 float 정보로 가득찬 노이즈 같은게 나오지만, 
사실 저거 vector 입니다. 보이는게 저래서 문제지 . 저거 각 float 정보가 다 함께 보이는 거예요. 

그래서 저기의 움직임을 보고 싶으면.. 

일단 이렇게 포인트를 만듭니다. 

바운드로 영역전개! isooffset 으로 볼륨전개! 그래야 스케터 할때 안에 채워질테니까. 
그리고 스케터! 

그리고 이걸 volume trail에 연결해주면 

어라 왜 한쪽으로만 가지? 색으로는 다양해 보이는데 

노이즈를 3d 노이즈로 해줘야 하는데. 

그럼 이쁜 벡터 필드가 나옴

이걸 움직이는걸 봐야겠지?

일단 노이즈를 좀 바꿉시다 zero centered perlin noise 로 하고 수치도 좀 조절 

그 뒤 carve로 처리하면 

반응형

'기타 공부하기 > 후디니' 카테고리의 다른 글

Solver를 이용한 횃불 만들기  (0) 2024.02.29
Gradient와 advect  (0) 2024.02.27
치즈 만들기  (0) 2024.02.18
볼륨 렌더하기 2 / Emission / Fire  (0) 2024.02.18
볼륨 렌더하기  (0) 2024.02.18

댓글