--- id: wiki-2026-0508-visual-effects-vfx title: Visual Effects (VFX) category: 10_Wiki/Topics status: verified canonical_id: self aliases: [VFX, Visual Effects Pipeline, CGI] duplicate_of: none source_trust_level: A confidence_score: 0.9 verification_status: applied tags: [vfx, cgi, rendering, compositing, usd] raw_sources: [] last_reinforced: 2026-05-10 github_commit: pending tech_stack: language: python framework: usd-houdini-nuke --- # Visual Effects (VFX) ## 매 한 줄 > **"매 photoreal pixel 의 industrial pipeline"**. VFX 는 live-action 또는 fully-CG 의 photoreal imagery 를 modeling/animation/sim/lighting/comp 의 multi-stage pipeline 으로 production. 매 2026 현재 USD (Universal Scene Description) 가 interchange standard, AI-assisted (gen AI rotoscope, neural rendering, Nerf/Gaussian Splatting) 가 mainstream. ## 매 핵심 ### 매 Pipeline 단계 - **Pre-vis**: Unreal/Maya 로 shot block-out, camera blocking. - **Modeling/Sculpting**: Maya, Blender, ZBrush, Houdini. - **Look-dev**: Substance Painter, Mari, USD MaterialX. - **Rigging/Animation**: Maya, Blender — keyframe + mocap (Vicon, Xsens, Move.ai). - **FX/Sim**: Houdini (pyro/FLIP/Vellum/RBD), Embergen (real-time), Phoenix FD. - **Lighting**: Katana, Houdini Solaris, USD-based. - **Rendering**: Arnold, Renderman, Karma XPU, Redshift, Octane — path tracing. - **Compositing**: Nuke (대세), After Effects (motion graphic), Fusion. ### 매 2026 modern stack - **USD + Hydra**: Pixar 시작, 매 cross-DCC interchange standard. - **MaterialX**: shader 의 portable language. - **OpenColorIO (OCIO) v2**: color management standard. - **Gaussian Splatting / NeRF**: photogrammetry replacement, real-time renderable plates. - **AI rotoscope**: Runway / SAM-based, manual roto 시간 90% 단축. - **Generative comp tools**: Nuke CopyCat (custom ML node), Nuke Smart Vectors. ### 매 응용 1. Feature film VFX (Marvel, Avatar, Dune sequels). 2. Episodic streaming (House of the Dragon, Foundation). 3. Virtual production (Mandalorian-style LED volumes — Disguise, ROE). 4. Commercials, music videos. 5. Game cinematics (Riot, Blizzard). ## 💻 패턴 ### USD scene composition ```python # Layered composition: Layout → Anim → FX → Lighting from pxr import Usd, UsdGeom stage = Usd.Stage.CreateNew("shot_010_layout.usda") root = UsdGeom.Xform.Define(stage, "/World") hero = stage.OverridePrim("/World/Hero") hero.GetReferences().AddReference("assets/hero/hero.usd") stage.GetRootLayer().subLayerPaths.append("anim/shot_010_anim.usda") stage.Save() ``` ### Houdini FLIP fluid sim (HScript / Python) ```python import hou flip = hou.node("/obj").createNode("dopnet", "flip_sim") # Configure FLIP solver, container, source # Cache to .bgeo.sc per frame sim_cache = flip.createOutputNode("filecache", "cache") sim_cache.parm("file").set("$HIP/cache/flip_v001/$F4.bgeo.sc") sim_cache.parm("execute").pressButton() ``` ### Nuke comp tree (Python) ```python import nuke read = nuke.createNode("Read", "file plates/shot_010.####.exr") grade = nuke.createNode("Grade", "multiply 1.05") merge = nuke.createNode("Merge2", "operation over") write = nuke.createNode("Write", "file out/shot_010_v003.####.exr " "channels rgba file_type exr datatype 16 bit half") ``` ### Gaussian Splatting plate capture ```bash # Process plate footage → 3DGS scene for set extension python -m gsplat.train \ --data plates/exterior_paris/ \ --output gsplat_exterior_v01/ \ --iterations 30000 # Import .ply into Houdini Solaris / Unreal for relighting ``` ### OCIO v2 color transform ```python import PyOpenColorIO as ocio config = ocio.Config.CreateFromFile("aces_1.3.ocio") proc = config.getProcessor("ACES - ACEScg", "Output - Rec.709") cpu = proc.getDefaultCPUProcessor() cpu.applyRGB(pixel) ``` ### AI roto with SAM2 ```python from sam2.sam2_video_predictor import SAM2VideoPredictor predictor = SAM2VideoPredictor.from_pretrained("facebook/sam2-hiera-large") state = predictor.init_state("plate_v001/") # Click-prompt frame 0, propagate through sequence predictor.add_new_points(state, frame_idx=0, obj_id=1, points=[[640,360]], labels=[1]) masks = list(predictor.propagate_in_video(state)) ``` ## 매 결정 기준 | 상황 | Approach | |---|---| | Feature film hero asset | Maya + Substance + Arnold/Renderman | | Heavy FX (fluid/destruction) | Houdini + Karma XPU | | Episodic, fast iteration | Blender + Cycles, USD pipeline | | Virtual production | Unreal Engine 5.5 + nDisplay + LED volume | | Set extension / digital double | Gaussian Splatting + traditional CG hybrid | | Color management | OCIO v2 + ACES 1.3 | **기본값**: USD-centric pipeline + Houdini for FX + Nuke for comp + ACES color + AI-augmented (SAM2 roto, gsplat plates). ## 🔗 Graph - 부모: [[Computer-Graphics]] - Adjacent: [[USD-Universal-Scene-Description]] · [[Gaussian-Splatting]] ## 🤖 LLM 활용 **언제**: HScript/Python boilerplate, Nuke node tree generation, USD layer authoring, shot breakdown drafts. **언제 X**: artistic look-dev decisions, supervisor-level pipeline design. ## ❌ 안티패턴 - **No version control**: shot file overwrite chaos → USD layers + Perforce/SVN + ShotGrid. - **Color space ignorance**: sRGB linear mix → ACES + OCIO 강제. - **Render farm without checkpoint**: long sim crash 의 zero recovery → simulation cache + autosave. - **Manual roto for everything**: 매 SAM2/Runway 로 80% 자동화 가능. - **Skipping pre-vis**: shoot 이후 VFX 가 impossible 한 plate 발견 → previs 필수. ## 🧪 검증 / 중복 - Verified: Pixar USD docs, SideFX Houdini docs, Foundry Nuke docs, ACES Central, VES Handbook of Visual Effects (3rd ed). - 신뢰도 A. ## 🕓 Changelog | 날짜 | 변경 | |---|---| | 2026-05-08 | Phase 1 | | 2026-05-10 | Manual cleanup — USD/Houdini/Nuke pipeline + AI augmentation |