본문 바로가기

Houdini

RIGID BODY_05 RIGID BODY SOLVER 기본훈련 - Ep05. 훈련 또 훈련 + 도미노 SIMULATION 충돌 시뮬레이션을 발생시키기 위해 bullet engine을 활용한 rigid body 시뮬레이션을 활용한다. rigid body solver를 사용함에 있어 밖에서 물체를 부를 때 packed object를 사용하기로 했다. 충돌 조건을 단순한 물체로 바꿔서 빠르게 계산을 하겠다는 의미이다. packed object로 dop network에 자료를 부르면 기본적으로 주어지는 세팅들이 있다. 초기 위치(position)와 각도(rotation), 속도(velocity)와 회전속도(angular velocity) = initial state 이 값은 dop network 밖에서도 정의해 줄 수 있다. 또한 기본적인 세팅에는 물체가 튀기는 정도(bounce), 물체의 무게(density / mass), 물체.. 더보기
RIGID BODY_04 INITIAL DATA & PHYSICAL - Ep04. RBD SIMULATION에 필요한 정보들에 대해 지난시간 정리 dop network 안에서 오브젝트는 '그릇'이다. rigid body 시뮬레이션에서 제일 중요한 것은 충돌조건이다. RBD / Bullet 방식 중, 우리는 Bullet에 좀 더 집중할 예정이다. Rigid Body 시뮬레이션에서 제일 까다롭고, 중요한 포인트인 개념 얼마나 완벽하게 Proxy Geometry와 고해상도 결과물을 치환시키느냐 시뮬레이션이 안정적이고 빠르게 작동하기 위해서는 가벼운 충돌조건들이 필요하다. 우리가 사용한 충돌조건을 기준으로 디테일이 높은 자료를 완벽하게 치환시킬줄 알아야한다. 이 과정이 instancing이다. instancing을 직접할 수 있어야 시간을 많이 아낄 수 있다. Proxy geo로 가볍게 시뮬레이션을 하는데 익숙해져야하는 또다른 이유 가볍게 .. 더보기
RIGID BODY_03 RIGID BODY SOLVER 종류와 특징 - Ep03. rbd / bullet Solver 그리고 RIGID BODY SOLVER 위 두 가지 solver의 공통점 오브젝트와 소스가 나뉘어있다는 점 기본적으로 파티클이나 불, 연기등은 생성과 소멸이 반복되기 때문에 마치 땔감을 넣어주듯이 solver 작동을 위해 소스를 계속 투입해줘야 한다. 소스가 계속 투입되지 않으면 새로운 파티클(혹은 smoke)은 만들어지지 않고, 이미 생성된 파티클(혹은 smoke)만 가지고 물리작용을 일으킨다. 맨 왼쪽의 세팅은 rigid body 시뮬레이션이 발생하기 위한 기본적인 세팅이다. 앞의 두 케이스(파티클, smoke)와 다른 점은 소스를 투입하는 것이 없다는 점이다. rigid body 시뮬레이션의 목표를 생각해 보면 이해가 간다. 가장 기본적인 상황에서 rigid body 시뮬레이션의 목표는 dop network 밖에서 준비된 물체가 물리법칙.. 더보기
RIGID BODY_02 나무 질감 묘사하기 WITH PACK - Ep02. PACK훈련 & 나무플랭크 시스템 만들기 Pack의 특징 복잡하고 많은 자료를 하나의 자료로 압축해서 작업이 가능하다는 점 메모리에 업로드된 자료를 마치 스트리밍하듯 불러서 껍데기(가상의 원본)만 활용이 가능하다는 점 이 결과로, 메모리 효율측면에서 큰 이익이 있다. 이제 pack 사용의 실전감각을 기르기 위해 작업을 진행해보자. 나무조각 만들기! 제작의 큰 순서 box 하나로 나무조각 만들기 box의 모양 변형하기 & 면 추가 box를 조각내고 약간의 빈틈 추가하기 box에 나무 질감 입히기 어떠한 box가 들어가도 시스템이 올바르게 나무조각을 만들어낼 수 있어야한다. box의 사이즈를 변경하기 위해 attribute wrangle을 사용해 @pscale을 변경해줄 수 있다. 이것은 transform의 uniform scale을 변경하는 것과.. 더보기
RIGID BODY_01 리지드바디를 들어가며 & PACK 이해하기 - Ep01 Rigid Body 강체 딱딱한 물체의 물리적 작용에 대한 이야기 ex) 오브젝트의 낙하와 충돌, 힌지의 열림과 닫힘, 부러짐, 충돌에 의한 물체의 찌그러짐, 건물의 붕괴, 파괴 등 Pack bullet solver를 가지고 물체의 충돌을 일으키기 위해서는 반드시 pack에 대한 개념을 알아야 한다. https://www.sidefx.com/docs/houdini/nodes/sop/pack.html Pack www.sidefx.com 우리는 일상생활에서도 pack에 대한 개념을 사용하고 있다. 대표적으로 파일압축, 여러사람 첨부해서 메일 보내기, 스트리밍 서비스 등 pack의 두가지 역할 하나의 자료로 압축 컴퓨터 어디엔가 자료를 저장 어떠한 노드의 결과로 우리가 만들어낸 나무가 있다. 이 자료는 나뭇가.. 더보기
16_ TWA STANDARD SMOKE & 폭발 RENDER 렌더 후 추가적으로 작업을 해줘야 하는 상황이 있다. 고온으로 묘사되는 불을 렌더할 때 뜨거운 부분에서 우리가 만들었던 디테일들이 떠버리는 경우가 있다. 이 부분은 약간의 compositing에 대한 이야기가 될 것이다. 선생님이 지금까지 우리가 작업했던 smoke 세팅과 렌더 관련 세팅들을 사용하기 쉽게 정리하여 파일로 공유해 주셨다. 전체적인 부분은 우리가 공부했던 내용을 그대로 이어받지만, 보기 좋게 정리한 부분과, 몇 가지 추가된 부분들, 그리고 여러 세팅으로 확인이 가능하도록 만들어주신 volume visualization 노드들이 있었다. 이 자료는 양날의 검과도 같다. 자료 세팅이 잘 되어있어서 이 부분에 대해 더이상 공부하는 것이 아니고 이것을 가지고 이용해서 작업을 진행하거나, 이것을 뜯.. 더보기
15_폭발 DIVERGENCE tempvel 기본 세팅을 진행한다. 우리가 tempvel 작업을 하는 이유 연기의 모양을 바꾸기 위해 원래였다면, gas turbulence 같은 노드를 사용했을 것이다. 하지만 gas turbulence는 공간상에 noise field가 놓여져있는 것이었다. 모양을 기반으로 바꿔주는 것이 아니다. 그래서 tempvel field를 활용해서 지난 프레임의 모양을 기준으로 어떠한 벡터 정보를 만들어낸다. 이 때 gradient가 쓰인다. 그리고 tempvel에 값이 존재한다면, advect의 조건 중 하나로 이용이 가능하다. tempvel을 세팅하고 사용하는 것은 굉장히 어렵지만, volume 결과의 퀄리티 차이를 낼 가장 중요한 부분이다. 꼭 맥락을 잡고 가자. 오늘 하고싶은 것은 폭발에 대한 묘사이다.. 더보기
14_연기 QUALITY 올리기, TEMPVEL 오늘의 목표 두가지 dop network 안에서 직접 추가적인 field를 만들고, 그 field를 velocity field에 적용하는 것 volume의 움직임에 영향을 주는 요소가 늘어나는 것 volume의 큰 모양을 해치지 않고 detail을 늘려주는 것 보통 detail을 늘려준다고 하면 turbulence 값을 올리게 될 수도 있다. 이 turbulence 값에 따라 연기의 움직임, 큰 모양 자체가 바뀌는 경우가 있다. 우리가 바라는 것은 큰 모양이 바뀌지 않으면서 연기 사이사이의 detail을 높여주는 것이다. 이 방법을 알면 tweak 시간에도 많은 영향을 줄 수 있다. 사실 위의 두가지 내용이 동일한 핵심을 다루는 것이다. 첫번째 목표 관련.. 특별히 gas turbulence를 사용하는 .. 더보기