VEX & VOP 치트 시트
첫날부터 이상한 내용이 되어 버렸습니다만, vex/vop의 비교표를 정리해 보겠습니다.
매년 비슷한 것을 쓰고 있는 생각이 들지 않아도 됩니다.
소개
VOP는 VEX의 래퍼입니다. Houdini는 진짜 SOP(VOP)+DOP입니다.
MEL 없이 Maya를 사용하는 괴로움 정도는 아니라고 생각합니다만, VEX 없이 Houdini를 잘 다루는 것도 어렵습니다.
DSL(과 수학)의 실력이 그대로 DCC 어플리케이션에서의 표현에 반영되는 감각을 한결같이 느낍니다.
참고 자습서를 보면 VEX와 VOP가 혼합되어 상당히 혼란스러워집니다.
VOP의 조작을 VEX로 어떻게 하는지 매번 조사하고 있기 때문에, 표에 정리해 보았습니다.
우열이나 사용 빈도는 어쨌든, 유사도로 늘어놓고 있습니다.
보다 좋은 방법, 비교 대상이 있으면, 지적 받을 수 있으면 기쁩니다.
대응표
VOP
VEX
노드
SOP
Attribute SOP
Attribute Expression, Group Expression, Attribute Wrangle SOP
DOP
Geometry VOP, Gas Field VOP
Geometry Wrangle, Gas Field Wrangle SOP
COP
VOP COP2 Filter, VOP COP2 Generator COP
VEX Filter, VEX Generator COP
구조체
Struct VOP
$HIP/vex/include
에 헤더 배치흐름 제어
if, for-loop, while VOP
if, for, while
문매개변수
Bind VOP, Parameter VOP
ch
함수상호 운용
inline code VOP, snippet VOP
vopwritevfl
(Save VEX to Code file)포인트 클라우드
Point Cloud Open VOP
pcopen/pclose
함수속성
Attribute Create SOP
addvariablename
디버깅
없음(Geometry Spreadsheet)
printf
함수, assert
매크로파이썬
node.createNode
node.parm("snippet").set
HDK
VOP_Node
클래스VEX_VexOp
or CVEX_Context::run()
나란히 보면, 사칙 연산이나 제어문을 VOP로 하는 의미는 거의 없습니다.
HOM (Houdini Object Model)
기본적인 노드의 조작은 이전에 정리해 보았습니다. VEX 문자열을 Python으로 작성해보십시오.
여담이지만
textwrap
모듈로 쓰면 VEX도 깔끔하게 성형됩니다.vex.py
import hou
import textwrap
def set_vex():
vex = textwrap.dedent("""\
// Average Neighbouring Points
int n[] = neighbours(0, @ptnum);
vector avgP = @P;
// Loops over all elements of n, setting pt
// to be the value of each element
foreach (int pt; n)
{
avgP += point(0, "P", pt);
}
""")
wrangle = hou.node("/obj/geo1").createNode("attribwrangle")
wrangle.parm("snippet").set(vex)
쓸 수 있다고 하면 쓸 수 있습니다만, 거기까지 중요하지 않네요.
Python AST에서 VEX로 변환 할 정도가 아니면 인라인으로
VEX 쓰기도 너무 ...
요약
노드 기반의 약점은 다른 사람에게 기술과 지식을 이식하기 어렵다고 생각합니다.
상급자의 hip 보는 것이라고 생각합니다만 ...
단발 기능 뿐만이 아니라 일람으로 보는 것도 이해가 깊어져 좋네요.
Reference
이 문제에 관하여(VEX & VOP 치트 시트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sho7noka/items/df7109f42d8e2cfce503텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)