Houdini: 두 판 사이의 차이

편집 요약 없음
4번째 줄: 4번째 줄:
| 개발사              = SideFX
| 개발사              = SideFX
| 발표일              = {{출시일|1996|10|02}}
| 발표일              = {{출시일|1996|10|02}}
| 최신 버전            = 18.0.597
| 최신 버전            = 18.5.351
| 최신 버전 출시일    = {{출시일|2020|10|01}}
| 최신 버전 출시일    = {{출시일|2020|10|21}}{{*|한국 시간 기준}}
| 미리보기 버전        = 18.0.616
| 미리보기 버전        = 18.5.372
| 미리보기 버전 출시일 = {{출시일|2020|10|19}}
| 미리보기 버전 출시일 = {{출시일|2020|10|21}}{{*|한국 시간 기준}}
| 프로그래밍 언어      = C++, Python
| 프로그래밍 언어      = C++, Python
| 운영체제            = Windows, macOS, Linux
| 운영체제            = Windows, macOS, Linux

2020년 10월 21일 (수) 02:49 판

Houdini
Houdini Logo
소프트웨어 정보
종류 컴퓨터 그래픽스
언어 영어, 일본어
운영체제 Windows, macOS, Linux
라이선스 무료, 상용
웹사이트 www.sidefx.com/products/houdini

개요

SideFX 사에서 개발한 3D 모델링을 포함한 VFX, 렌더링[1] 프로그램이다. 다른 여타 3D 그래픽스 소프트웨어들과는 다르게 워크플로우 자체가 노드를 기반으로 한 절차적 생성 방식으로 되어있다. 또 그러한 경향에 따라 프로그래밍과 매우 밀접한 관련이 있고 이는 일반적으로 알려진 Houdini의 난이도 상승 문제에 직결된 면이 있다.

버전

일반적으로 5가지 종류가 있다고 볼 수 있는데 각각 Apprentice, Indie, Artist, Studios, Education 버전이다.

이름 가격 제한
Apprentice 무료 렌더링 등에 해상도 제한과 워터마크가 붙으며 타사의 서드파티 렌더러를 사용 할 수 없고, 특정 확장자의 경우 파일 출력 등의 경우는 불러오기만 가능하다.
Indie $299(연간), $399(2년간) 연간 총 소득액 10만 달러 미만의 스튜디오 중 사용자 3명 이하. 또한 영구적인 라이센스는 구매할 수 없다.
Artist $1,995(Core), $4,495(FX), $499(Engine) 스튜디오 중 사용자 5명 이하.
Studios $2,995(Core), $6,995(FX)

노드

/obj의 Tab 메뉴를 기준으로 작성되었다.

Primitives

  • Box, Cube - 정육면체 형태를 만든다. 프리미티브, 폴리곤, 폴리곤 메쉬, NURBS, 베지어, 포인트 타입을 지원한다.
  • Circle - 원 형태를 만든다. 프리미티브, 폴리곤, NURBS 곡선, 베지어 곡선 타입을 지원한다.
  • Control
  • Curve - 직접 포인트를 하나의 노드로 찍을 수 있다. 폴리곤, NURBS, 베지어, 포인트 타입을 지원하고 포인트 타입이 아니라면 이웃 포인트 끼리 에지로 연결된다.
  • Draw Curve
  • File - obj나 fbx 파일 등등을 불러올 수 있다.
  • Font - 폰트를 지정해 글자를 만들 수 있다. 베지어 곡선과 폴리곤 타입을 지원한다.
  • Grid - 사각형 형태를 행렬 방식으로 만들 수 있다. 행, 열, 행렬, 삼각형, 사변형, 대체 삼각형, 역삼각형 타입을 지원한다.
  • IsoSurface - 등가곡면을 만든다.
  • L-System - 이름 그대로 L-System 알고리즘 기반 생성한다. 처음 만들면 아이콘처럼 나무 줄기 모양을 만들 수 있다. 뼈대, 튜브 타입을 지원한다.
  • Line - 직선을 만든다. 폴리곤, NURBS, 베지어, 포인트 타입을 지원한다.
  • Metaball
  • Platonic Solids
  • PolySoup
  • Primitives
  • Sphere - 구체를 만든다. 프리미티브, 폴리곤, 폴리곤 메쉬, 메쉬, NURBS, 베지어, 폴리곤 스프 타입을 지원한다.
  • Torus - 원환면 형태를 만든다. 폴리곤, 메쉬, NUBRS, 베지어, 폴리곤 스프 타입을 지원한다.
  • Trace
  • TriBezier
  • Tube - 튜브, 혹은 고깔 형태를 만든다. 프리미티브, 폴리곤, 메쉬, NURBS, 베지어, 폴리곤 스프 형태를 지원한다. 양면을 닫거나 열 수 있다.

Utility

  • Convert - 입력 받은 형태를 특정 형태로 변환 시켜준다.
  • Copy and Transform - 복사한 다음 해당 위치만큼 이동시켜준다. 구버전에서는 Duplicate 노드였다.
  • Convert Line - 입력 받은 형태를 에지만 남도록 해준다.
  • Copy to Points - 첫 번째로 입력 받은 지오메트리 노드를 두 번째로 입력해 지정한 포인트 마다 복사한다. 지정하지 않는다면 모든 포인트를 기준으로 복사한다.
  • Merge - 입력 받은 지오메트리를 합쳐준다. 오브젝트 네트워크 패널에서 합칠 노드를 모두 선택하고 Alt+드래그를 하면 자동으로 생성 된다.
  • Mirror - 거울에 비추듯 반사하여 반대쪽으로 상이 맺히듯 복사한다.
  • Null - 이 노드 자체는 아무것도 하지 않는다. 주로 여기에 인자 값을 만들고 조작하거나 다른 노드 네트워크에서 참조해 확장하는 용도로 사용한다.
  • PolyDoctor - 겹쳐있는 폴리곤 등, 지오메트리의 몇 가지 문제점을 자동으로 고쳐준다.
  • Split - 지오메트리의 일부분을 선택해 나눌 수 있다. 선택한 지오메트리는 첫 번째 출력으로, 선택하지 않는 지오메트리는 두 번째 출력으로 나온다.
  • Subnetwork - 또 다른 네트워크를 만든다. 총 4개의 입력을 받을 수 있다.
  • Visualize - 표면이나 포인트에 색상을 입혀보거나 와이어프레임을 강제로 활성화 하는 등 말 그대로 시각화 해준다.

VEX

Houdini 내부에서 사용하는 프로그래밍 언어. 단 스크립팅 언어를 대체하는 언어는 아니다. C를 기반으로 하고 C++와 몇 가지 다른 언어에서 편리한 문법들을 차용했다. 실제로 vcc라는 vex 컴파일러가 C로 컴파일되어 실행 된다.

문법

아래는 C와 다른 부분을 위주로 서술되어 있다.

함수

아래와 같이 연속되는 같은 인자 값들의 타입을 생략 할 수 있다. 세미콜론으로 다른 타입의 인자와 구분 한다.

int test(int a, b; string c) {
    if (a > b) {
        printf(c);
    }
}

사용시 주의해야 할 점은 앞서 서술했듯이 C로 컴파일 된 후 실행되므로 함수가 재귀적으로 실행되지 않는다는 점이 있다. 이땐 셰이더 호출을 사용해야 한다.

배열

기존 C 계열 언어와 동일한 방식으로 배열을 만들 수 있다. 리터럴도 중괄호로 감싸아서 표현한다. 단 리터럴의 경우 컴파일 타임에 변수 값을 읽을 수 없어 array 함수로 대신해주어야 한다.

float arr[];
string arr2[] = { "Hello", "World" };
int value = 1;
int arr3[] = array(value, 2, 3); // 리터럴의 경우 컴파일 에러!

문자열

따옴표로 문자열 값을 리터럴로 표현할 수 있다. 큰따옴표든 작은따옴표든 상관 없다.

string s = 'foo';
string t = "bar";
string py = r"Hello world\n";        // Python 스타일, "Hello world\\n"와 동일함.
string cpp = R"(Hello world\n)";   // C++ 스타일. "Hello world\\n"와 동일함.

범위 기반 for

int arr = { 0, 1, 2, 3 };
foreach (int i; arr) {
    printf("%d\n", i);
}


각주

  1. 내장된 Mantra와 Karma