랩의 시작 — 도구에서 작품으로
3D 아이콘 파이프라인 항해의 판정은 "실사용 보류"였다. 하지만 그 항해에서 건진 감각 — 헤드리스 Blender를 AI 에이전트와 함께 코드로 모는 것 — 이 아까웠다. 아이콘은 디자인 시스템의 부품이라 품질 기준이 밖에서 주어지지만, 작품은 기준을 내가 정한다. 그렇다면 이 파이프라인으로 목적 없는 순수 실험을 해볼 수 있지 않을까.
그래서 랩(Lab)에 3D 작업대를 들인다. 인상 깊은 비주얼을 하나 골라, 그 원리를 분석하고, 코드로만 재현하는 연습의 연작 — 이번 편의 레퍼런스는 만화경처럼 색이 갈라지는 유리 큐브 필드 렌더 — 검은 공간에 크리스털 큐브들이 떠 있고, 베벨 모서리마다 무지개 프린지가 맺히는 이미지다.
관문 1 — Dispersion 입력이 없는 유리
레퍼런스의 핵심은 **색분산(dispersion)**이다. 프리즘이 백색광을 무지개로 쪼개듯, 유리의 굴절률이 파장마다 달라서 생기는 현상. 그런데 pip install bpy로 깐 빌드의 Principled BSDF에는 Dispersion 입력이 없었다.
없으면 물리로 만든다. 분산의 본질은 "채널마다 다른 굴절률"이니, Glass BSDF 세 개에 R/G/B 필터 색을 주고 IOR을 채널별로 다르게 걸어 Add Shader로 합치면 된다:
IORS = (1.37, 1.45, 1.53) # R < G < B — 파랑이 가장 크게 꺾인다
for col, ior in zip(((1,0,0,1), (0,1,0,1), (0,0,1,1)), IORS):
g = nt.nodes.new("ShaderNodeBsdfGlass")
g.inputs["Color"].default_value = col
g.inputs["IOR"].default_value = ior
# ... 셋을 Add Shader 두 개로 합성각 채널이 서로 다른 각도로 굴절하면서, 후처리가 아니라 레이트레이싱 안에서 물리적으로 프리즘 프린지가 생긴다. 베벨 모서리처럼 면이 급하게 꺾이는 곳에서 세 채널의 경로 차가 커지고, 거기에 무지개가 맺힌다.
관문 2 — 조명이 전부다
재질이 맞아도 그림이 안 나왔다. 시행착오 4회의 기록:
- 정면광 — 유리 면이 순백으로 타버린다. 프린지가 있어도 묻힌다
- 순수 스침광 — 프린지는 선명한데 화면 전체가 죽는다. 큐브가 안 보인다
- 정답 — 위에서 스치되 카메라 쪽으로 22° 기운 대형 소프트 라이트. 면에는 어두운 그라디언트가 남고, 베벨 모서리에만 분산 띠가 맺힌다
# 키: 머리 위 8m 소프트박스, 카메라 쪽으로 -22° 틸트
area(loc=(0, 0, 5.5), rot=(radians(-22), 0, 0), size=8.0, energy=1000)
# 필: 카메라 뒤 낮은 보조광, 1/9 세기
area(loc=(0, -6.0, 1.5), rot=(radians(75), 0, 0), size=5.0, energy=110)투과 재질은 빛을 튕기는 게 아니라 통과시키며 꺾는다. 그래서 유리 작품의 조명은 "무엇을 비추나"가 아니라 "빛이 어느 각도로 들어와 어디로 빠져나가나"의 설계였다 — 이번 랩의 가장 큰 수확이다.
mono — 무채색 유리 + 무지개 프리즘 프린지
변형 — 브랜드 팔레트로 틴트
레퍼런스 재현(mono)이 끝났으니 한 걸음 더. R 채널 필터를 45%로 감쇠하고 B를 80%로 낮추면 투과광 전체가 민트로 기운다 — 이 사이트의 브랜드 컬러(#00DF82) 방향이다. 민트 톤 키 라이트와 틸 틴트 블랙 월드를 더해 deep-green / neon-mint 팔레트로 연결했다.
mint — 브랜드 민트 틴트 + 틸 블랙
같은 씬, 같은 코드에서 파라미터 사전 하나로 두 작품이 나온다. 코드로 만드는 작품의 좋은 점이 이것이다 — 변주가 공짜다.
남은 것
생성 스크립트와 렌더, 기법 노트는 Lab01-Cubes 저장소에 있다. blender --background --python dispersion_cubes.py 한 줄이면 누구든 같은 큐브 필드를 다시 빚을 수 있다.
이 일지에는 3D 밖의 작업대도 있다 — Processing 계열 제너러티브 아트를 분석·재현한 그리드 필드 스터디. 3D든 2D든, "인상 깊은 비주얼을 골라 원리를 코드로 재현한다"는 같은 항로를 계속 간다.
- 이 일지의 다른 편: 그리드 필드 스터디 — @seohyo 작가님 오마주
- 파이프라인의 출발점: 코드로 빚은 3D 아이콘 15종