트위터


Houdini Sorting attribute from Array (Hip File) Houdini Memory

기본 골자는 이 영상을 참고로 하였다




David Kahl 씨가 제공해준 hip파일은 patreon 제한 공개이기 때문에
궁금하다면 아래 링크를 참고



대신 이 강좌에서 나온 항목을 응용한 예제파일 두가지를 올려본다.

무작위 사이즈들로 구성된 구체를 지정한 라인에 크기순으로 재배열하기





프리미티브 별로 마지막 포인트만을 찾아 나머지는 지워버리기



indexprim과 indexvertexprim에 대한 것은 아래 링크 참고


+ 그냥 forEach 쓰자.
+ 더 쉬운 방법들이 있더이다. primvertexcount 라는 구문과 @numvtx 라는 속성..




Houdini TextRain for matrix (Hip file) Houdini Memory


Houdini에서 3dsMax로 VDB를 보낼 때 유용한 WorkFlow HOU-MAX Talk

어느 CG툴이든, 아니 어느 소프트웨어이든? 뭐 아무튼..
화면에 뭔가 많으면, 그걸 표현해 내는데 시간이 오래 걸리는 것은 당연하다.


조금 이상한 비유일지도 모르겠지만,
가령 '여우꼬리' 라는 단어를 20회 입력하라는 조건이 달리면

'여우꼬리' 라는 단어를 키보드로 적기위해 [ ㅇ,ㅕ,ㅇ,ㅜ,Shift+ㄱ,ㅗ,ㄹ,ㅣ ] 라는 일련의 타이핑 과정을 한 사이클이라고 치고
이 사이클을 총 20회 반복해야 조건을 달성하게 된다.
그렇지만 컴퓨터에 익숙하다면 위 사이클 1회, 그리고 복사, 붙여넣기 19회 하는것으로 일일이 타이핑하는 사이클을 생략하여
상대적으로 빠르게 조건을 달성할 수 있게 된다.
조금 더 꼼수를 써보자면 위 사이클을 1회, 그리고 복사, 붙여넣기 4회, 다시 총 5회분량 전체를 복사, 붙여넣기 4회 하여
더욱 빠르게 조건을 달성할 수도 있을 것이다.


어느 CG툴이든, 아니 어느 소프트웨어이든? 뭐 아무튼..
화면에 뭔가 많으면, 그걸 표현해 내는데 시간이 오래 걸리기 때문에,
이 시간을 단축할 방법으로 위에 비유한 방법처럼 일부 데이터를 잠시 보관해뒀다가 빠르게 접근할 수 있도록
여러곳으로 뱉어내거나 붙여넣어 전체적인 진행속도를 상당히 빠르게 끌어올릴 수 있다 (특히 렌더링/뷰포트)

보통 이러한 행위를 인스턴싱(instancing)이라고 이해하면 알기 쉽다.
물론 누군가 '인스턴싱이 뭔지 알아요?' 라고 했을때 위처럼 답하지는 말자. 어디까지나 예시이고, 이해하기 쉽게 비유한 것이다.
보다 자세한 설명은 링크로 대체한다. 의외로 짧으니 위 내용을 이해했다면 시간을 내어 아래 링크의 글도 참고하길 권장.

Link
https://nh32001.blog.me/150149259608 (인스턴싱(Instancing)에 대하여 : 네이버 블로그)





-

상당히 길게 돌아왔는데, 그래서 이 인스턴싱이 3dsMAX로 VDB를 보낼때와 무슨 관련이 있는가..

가령 구름이 화면 전체에 빼곡-히 있는 경우.
보통은 멀리 있는 구름은 퀄리티를 아예 낮추거나 2D시퀀스로 대체하는게 빠른 방법이긴 하지만,
카메라가 저 멀리 수평선까지 계속해서 들어간다고 했을 때, 게다가 카메라도 이리저리 돌아다닌다고(심지어 구름속까지)했을때는
그냥 얄짤없이 모든 구름을 3D로 작업해야 할 수 밖에 없을 것이다.

작년 후반기 즈음에 그런 프로젝트를 하나 잡았었고, 아직도 현재 진행형이다.
들어올 다음프로젝트 마저 구름이 화면 한가득 훑는다. 젠장.
아래 링크는 그 작년 후반기 즈음을 지난 뒤 수정이란 이름으로 돌아왔을 때 겪었던 또 다른 이슈사항 포스트

Link
http://dsharp.egloos.com/4162961 (houdini) VDB combine 시의 division 퀄리티가 떨어지는 문제에 대해




-

계속해서 옆길로 새고 있는데, 아무튼 맥스나 마야에서 작업된 씬 파일에 후디니의 구름을 넣기 위해서
후디니로 카메라와 씬파일 셋업을 다 마친 뒤 구름을 열심히 만들어서 렌더링을 똬앜 올리면 될 것 같지만,
이 과정에서 생각보다 여러 요소를 고려해야 되더라.

특히 무엇보다 회사가 보유중인 '렌더팜의 성능' 과 
내가 실질적으로 씬파일을 열었을때 무난히 작업이 가능한 '메모리 관리'
즉, 전반적인 최적화를 신경쓰지 않고 무턱대고 작업했다간 어느 수준 이상의 퀄리티에서 분명히 에로사항이 발생할 수 밖에 없다.
'화면 가득 뭔가를 채우는 작업' 은 결과를 내는 과정에서 표현해 내는데 시간이 오래 걸릴 수 밖에 없으리라..

그렇기 때문에 앞서 언급한 인스턴싱을 후디니와 맥스로 조합하여
단시간에 수넓은 필드에 꽤나 준수한 퀄리티의 구름을 씬 화면 가득 메우는 요령을 메모해둔다.

물론, 후디니도 인스턴싱 개념이 있긴 한데 아래 서술할 방법보다 상당히 심플하고 (file cache sop)
직관적으로 구성되어 있기 때문에 (display option : Bounding Box) 이 부분은 따로 적지 않는다.





-

1. Object Paint

Link
https://youtu.be/Wyd4kKugGro (3D Max Tutorial - Object paint)

영상을 보면 알겠지만 단순하게 오브젝트를 지정된 곳에 브러시칠하여 인스턴싱 하는 방법이다.
굳이 브러시칠할 오브젝트가 없어도 빈 공간에도 브러시칠이 가능하다.
후디니에서 만든 구름을 원점에 위치시켜 VDB로 1프레임분량을 뽑아내고, 이를 맥스의 볼륨 오브젝트로 불러오고,
이 오브젝트를 선택하여 브러시칠을 원하는 만큼 해주면 된다.
영상에서 나와있다시피 회전/크기/위치오프셋등을 인스턴싱되는 항목마다 무작위 랜덤을 줄 수도 있기 때문에,
멀리있는 구름들을 만들때에는 이 방법이 상당히 유용하다.
VDB를 불러오는 방법은 렌더러마다 차이가 있으며, 내가 다니는 회사의 경우 레드시프트 렌더러를 사용하기 때문에,
Redshift VolumeGrid를 만들어서 불러온 뒤, 이후 인스턴싱을 하여 뷰포트에 보여질 것을 고려하여 BoundingBox로 Display한다.

경험으로는 7mb 내외의 1프레임짜리 VDB를 저 방법으로 300개 가량 뿌려서 만들어 봤는데도
뷰포트에서 렉없이 타임라인이 스크롤되며, 렌더링 속도 또한 라이팅으로 시간이 다소 소요되는것 뿐이지
일일이 vdb를 개별로 조합해서 하는 것보다 이렇게 인스턴싱으로 브러시질하여 무작위로 만드는게
렌더링 시간이 훨배단축되기도 했었다.
이 방법을 알고 난 이후부터는 앞선 300개 가량의 넓은 범위를 두세개의 무지막지한 VDB로 퉁치려는 바보같은 행위는 이젠 안하는 편이다.



-

2. Spacing Tool

Link
https://youtu.be/ZGMvGhvRuCE (Spacing Tool - 3ds Max)

마찬가지로 영상을 보면, 지정된 Path위에 오브젝트를 인스턴싱하여 뿌리는 방법이다.
간격, 갯수, 위치 오프셋 등을 패스를 기준으로 하여 조절을 할 수 있으며,
아쉽게도 크기/회전의 무작위 부여는 되지 않는다.
단, 후디니의 Look At처럼 패스의 진행방향에 따라서 회전을 줄 수 있는 옵션(Follow)는 있으며,
이를 활용하여 패스 자체를 노이즈를 주어 회전을 무작위로 주는 방법이 있긴 하다.
혹은 후디니에서 패스를 우선 그린 뒤 point jitter sop 등을 활용하여 패스에 노이즈를 준 뒤,
이 패스를 obj로 다시 맥스로 보내어 Spacing Tool을 이용한 인스턴싱을 할 수도 있다. 그렇다. 내가 쓰는 방법이다.
크기의 무작위 부여는 이후 만들어진 오브젝트들에 대해서 스크립트를 따로 사용하는 편이다.

역시 인스턴싱이기 때문에 렌더시간이나 뷰포트 표현시간에 대해 상당한 최적화가 가능하며,
이 방법은 카메라 주변으로 구름이 계속 걸치면서 지나가야된다거나 할 때, 카메라의 움직임을 후디니에서 패스로 만들어서
적용할 때 내가 주로 쓰는 방법으로 사용중이다.




-

이 외에도 회사의 맥스기반 워크플로우를 하다보면
후디니의 파티클을 Krakatoa로 보내기도 해보고, Alembic에 대해서는 이미 백여번 넘게 작업을 해보면서
후디니와 맥스를 오가는 무식한 워크플로우도 구축해 뒀다. 
덕분에 남들보다 시간은 배로 걸린다.
맥스 씬 파일을 후디니용으로 빼냈다가, 만들어진 결과물을 다시 맥스용으로 맞춰 구워내야되기까지 하기 때문에..;;

하지만 위 처럼 후디니의 기본 방법을 유지하면서 3dsMax의 툴 기능을 활용하여
전반적인 진행 속도를 높일 수 있는 방법이 위 2가지 외에도 여러 방법이 있을 것이고,
그런 부분에 대해서 RND라던가 TD라던가에 대한 직군에 대해서는 존경심을 가지고 있는 편이기도 하다.

블로그 말고 동영상 정보 콘텐츠를 하나 날잡고 만들까 생각하다가
카톡방에서 블로그 사찰하시던 분이 그래도 있긴 하구나 싶어 칼퇴한 김에 남기는 글로 마무리.

..회사가 아니다보니 뭔가 이래저래 사진도 함께 하고 싶어도 올릴 사진이 없이 글만 가득하다 싶어 아쉬워 하는중.

1 2 3 4 5 6 7 8 9 10 다음