{"id":98,"date":"2026-07-13T22:32:52","date_gmt":"2026-07-13T22:32:52","guid":{"rendered":"https:\/\/ziggifilms.com\/leandrocrespo\/?page_id=98"},"modified":"2026-07-19T15:21:33","modified_gmt":"2026-07-19T15:21:33","slug":"supervisor-de-vfx","status":"publish","type":"page","link":"https:\/\/ziggifilms.com\/leandrocrespo\/supervisor-de-vfx\/","title":{"rendered":"Supervisor de VFX"},"content":{"rendered":"\n<style>\n:root{\n  --c-black:#0d0d0f;--c-ink:#16161a;--c-cream:#f4f1ea;--c-paper:#fbfaf7;\n  --c-gray:#6b6b73;--c-line:#e3e1da;--c-orange:#ff5a1f;--c-red:#d3122a;\n  --c-max:1240px;--c-gut:clamp(20px,5vw,72px);\n}\n.cg *{box-sizing:border-box}\n.cg{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;color:var(--c-ink);background:var(--c-paper);line-height:1.55;-webkit-font-smoothing:antialiased}\n.cg img{max-width:100%;display:block}\n.cg a{color:inherit;text-decoration:none}\n.cg section{padding:clamp(60px,8vw,128px) var(--c-gut)}\n.cg .wrap{max-width:var(--c-max);margin:0 auto}\n.cg h1,.cg h2,.cg h3{font-weight:800;letter-spacing:-.025em;line-height:.98;margin:0}\n.cg .kicker{font-size:12px;letter-spacing:.22em;text-transform:uppercase;font-weight:700;color:var(--c-gray);display:flex;align-items:center;gap:12px;margin-bottom:28px}\n.cg .kicker::before{content:\"\";width:34px;height:1px;background:currentColor}\n.cg .btn{display:inline-flex;align-items:center;gap:.5em;padding:15px 28px;font-size:12px;letter-spacing:.13em;text-transform:uppercase;font-weight:700;border-radius:2px;border:1px solid transparent;transition:.2s}\n\n\/* BEFORE \/ AFTER *\/\n\/* BEFORE \/ AFTER *\/\n\n.cg .ba-title{\n    font-size:clamp(28px,4vw,56px);\n    text-transform:uppercase;\n    margin:.1em 0 .15em;\n}\n\n.cg .ba{\n    position:relative;\n    width:100%;\n    aspect-ratio:16\/9;\n    overflow:hidden;\n    border:1px solid var(--c-line);\n    border-radius:2px;\n    user-select:none;\n    touch-action:none;\n    cursor:ew-resize;\n    margin-top:28px;\n\n    \/* ==========================\n       AJUSTE GLOBAL DE ESCALA\n       \n    =========================== *\/\n    --ba-scale:100%;\n\n    \/* ==========================\n       AJUSTE DE POSICI\u00d3N\n       Modifica si quieres mover\n       ambas im\u00e1genes.\n    =========================== *\/\n    --ba-pos-x:center;\n    --ba-pos-y:center;\n}\n\n.cg .ba-img{\n    position:absolute;\n    inset:0;\n    background-repeat:no-repeat;\n\n    \/* Ambas im\u00e1genes usan exactamente\n       la misma escala y posici\u00f3n *\/\n    background-size:var(--ba-scale);\n    background-position:var(--ba-pos-x) var(--ba-pos-y);\n}\n\n\/* Cambios: las dos im\u00e1genes deben quedar EST\u00c1TICAS y perfectamente\n   superpuestas; el slider solo revela la imagen de arriba sobre la de\n   abajo. Por eso el <img> se ancla al CONTENEDOR .ba y no se centra\n   dentro de la franja recortada .ba-before (eso era lo que hac\u00eda que\n   la imagen \"se deslizara\" al mover el slider).\n   - --ba-img-w: ancho en p\u00edxeles = ancho del contenedor * escala.\n   - --ba-img-x: desplazamiento izquierdo para centrar la imagen\n     respecto al contenedor completo (permite --ba-scale > 100%).\n   Ambos valores se calculan en JS (set + resize). *\/\n.cg .ba-img img{\n    position:absolute;\n    top:50%;\n    left:var(--ba-img-x, 0px);\n    transform:translateY(-50%);\n    width:var(--ba-img-w, 100%);\n    height:100%;\n    max-width:none;\n    object-fit:cover;\n    object-position:var(--ba-pos-x) var(--ba-pos-y);\n}\n\n.cg .ba-after{\n    background-size:var(--ba-scale);\n    background-position:var(--ba-pos-x) var(--ba-pos-y);\n}\n\n.cg .ba-after::after{\n    content:\"\";\n    position:absolute;\n    inset:0;\n   \n}\n\n.cg .ba-before{\n    width:50%;\n    overflow:hidden;\n    border-right:2px solid var(--c-cream);\n\n    background-size:var(--ba-scale);\n    background-position:var(--ba-pos-x) var(--ba-pos-y);\n\n   \n}\n\n.cg .ba-tag{\n    position:absolute;\n    top:14px;\n    font-size:10px;\n    letter-spacing:.2em;\n    font-weight:700;\n    padding:5px 10px;\n    background:rgba(13,13,15,.7);\n    color:#f4f1ea;\n    border-radius:2px;\n    z-index:3;\n}\n\n.cg .ba-tag-l{left:14px;}\n.cg .ba-tag-r{right:14px;}\n\n.cg .ba-handle{\n    position:absolute;\n    top:0;\n    bottom:0;\n    left:50%;\n    width:2px;\n    background:#f4f1ea;\n    transform:translateX(-50%);\n    z-index:4;\n    pointer-events:none;\n}\n\n.cg .ba-knob{\n    position:absolute;\n    top:50%;\n    left:50%;\n    transform:translate(-50%,-50%);\n    width:42px;\n    height:42px;\n    border-radius:50%;\n    background:var(--c-orange);\n    color:#fff;\n    display:flex;\n    align-items:center;\n    justify-content:center;\n    font-size:18px;\n    box-shadow:0 4px 14px rgba(0,0,0,.35);\n}\n\n.cg .ba-range{\n    position:absolute;\n    inset:0;\n    width:100%;\n    height:100%;\n    opacity:0;\n    cursor:ew-resize;\n    margin:0;\n}\n\n@media(max-width:600px){\n    .cg .ba{\n        aspect-ratio:4\/5;\n    }\n}\n\n\n.cg .btn.solid{background:var(--c-orange);color:#fff;border-color:var(--c-orange)}\n.cg .btn.solid:hover{background:#ff6f3d}\n.cg .btn.ghost{border-color:rgba(255,255,255,.3);color:var(--c-cream)}\n.cg .btn.ghost:hover{background:#fff;color:#000}\n.cg .btn.ghost.dark{border-color:#16161a;color:#16161a}\n.cg .btn.ghost.dark:hover{background:#16161a;color:#fff}\n.cg .reveal{opacity:0;transform:translateY(24px);transition:.7s}\n.cg .reveal.in{opacity:1;transform:none}\n.cg-hero{background:var(--c-black);color:var(--c-cream);position:relative;overflow:hidden;padding-top:clamp(80px,12vw,150px);padding-bottom:clamp(60px,9vw,120px)}\n.cg-hero::before{content:\"\";position:absolute;inset:0;background:radial-gradient(120% 80% at 70% 10%,rgba(255,90,31,.18),transparent 55%),linear-gradient(160deg,#0d0d0f,#1a120c)}\n.cg-hero .wrap{position:relative}\n.cg-hero .tagline{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:#8a8a93;margin-bottom:22px}\n.cg-hero h1{font-size:clamp(40px,7.5vw,104px);text-transform:uppercase;color:var(--c-cream)}\n.cg-hero h1 em{font-style:normal;color:var(--c-orange)}\n.cg-hero .sub{font-size:clamp(16px,1.9vw,22px);color:#cfccc4;max-width:62ch;margin:26px 0 34px;font-weight:500}\n.cg-hero .cta-row{display:flex;gap:14px;flex-wrap:wrap;align-items:center}\n.cg-hero .trust{display:flex;gap:34px;flex-wrap:wrap;margin-top:48px;border-top:1px solid #26262c;padding-top:28px}\n.cg-hero .trust .n{font-size:clamp(26px,3vw,40px);font-weight:800;color:var(--c-orange);letter-spacing:-.02em}\n.cg-hero .trust small{display:block;color:#8a8a93;font-size:12px;letter-spacing:.04em;margin-top:4px}\n.cg .cream{background:var(--c-cream);color:var(--c-ink)}\n.cg .dark{background:var(--c-black);color:var(--c-cream)}\n.cg .dark .kicker,.cg .cream .kicker{color:var(--c-gray)}\n.cg .dark .kicker{color:#8a8a93}\n.cg h2.big{font-size:clamp(34px,5.5vw,76px);text-transform:uppercase}\n.cg .lead{font-size:clamp(17px,1.5vw,21px);max-width:64ch;margin-top:18px;color:#3a3a40}\n.cg .dark .lead{color:#cfccc4}\n\n.cg .dark2{\n    background:\n        linear-gradient(rgba(13,13,15,.85), rgba(13,13,15,.85)),\n        url(\"https:\/\/ziggifilms.com\/leandrocrespo\/wp-content\/uploads\/2026\/07\/20190601151338.png\") center\/cover no-repeat;\n    color: var(--c-cream);\n}\n.cg .svc{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--c-line);border:1px solid var(--c-line);margin-top:48px}\n.cg .svc .card{background:#fff;padding:clamp(24px,2.6vw,38px)}\n.cg .svc .card h3{font-size:clamp(20px,2.2vw,26px);margin-bottom:14px}\n.cg .svc .card p{color:#46464d;font-size:15px;margin:0 0 16px}\n.cg .svc .card ul{list-style:none;margin:0;padding:0}\n.cg .svc .card li{font-size:14px;color:#46464d;padding:8px 0;border-top:1px solid var(--c-line)}\n.cg .svc .card .num{font-size:11px;letter-spacing:.2em;font-weight:700;color:var(--c-orange)}\n.cg .svc .card a.more{display:inline-block;margin-top:16px;font-size:12px;letter-spacing:.13em;text-transform:uppercase;font-weight:700;color:var(--c-orange);border-bottom:1px solid var(--c-orange);padding-bottom:2px}\n@media(max-width:900px){.cg .svc{grid-template-columns:1fr}}\n.cg .proc{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:48px}\n.cg .proc .step{padding-top:18px;border-top:2px solid var(--c-orange)}\n.cg .proc .step .no{font-size:12px;font-weight:800;color:var(--c-orange);letter-spacing:.1em}\n.cg .proc .step h3{font-size:18px;margin:10px 0 8px;text-transform:uppercase}\n.cg .proc .step p{font-size:14px;color:#46464d;margin:0}\n@media(max-width:760px){.cg .proc{grid-template-columns:1fr 1fr}}\n.cg .quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px}\n.cg .quotes blockquote{margin:0;background:#0d0d0f;border:1px solid #26262c;border-radius:2px;padding:28px}\n.cg .quotes p{font-size:17px;color:var(--c-cream);margin:0 0 16px;font-weight:600}\n.cg .quotes small{color:#8a8a93;font-size:12px;letter-spacing:.06em;text-transform:uppercase}\n@media(max-width:860px){.cg .quotes{grid-template-columns:1fr}}\n.cg .faq{margin-top:40px;max-width:840px}\n.cg .faq details{border-top:1px solid var(--c-line);padding:18px 0}\n.cg .faq summary{cursor:pointer;font-weight:700;font-size:17px;list-style:none;display:flex;justify-content:space-between;gap:16px}\n.cg .faq summary::-webkit-details-marker{display:none}\n.cg .faq summary::after{content:\"+\";color:var(--c-orange);font-weight:800}\n.cg .faq details[open] summary::after{content:\"\u2013\"}\n.cg .faq p{color:#46464d;margin:14px 0 0;font-size:15px}\n.cg .final{text-align:left}\n.cg .final h2{max-width:16ch}\n.cg .final .row{display:flex;justify-content:space-between;align-items:flex-end;gap:28px;flex-wrap:wrap;margin-top:40px;border-top:1px solid #26262c;padding-top:32px}\n.cg .final a.mail{font-size:clamp(20px,3vw,38px);font-weight:800;color:var(--c-cream);letter-spacing:-.02em}\n.cg .final a.mail:hover{color:var(--c-orange)}\n.entry-content > .wp-block-html, .entry-content .cg{max-width:none !important;width:100% !important;margin-left:0 !important;margin-right:0 !important;}\n.cg{margin:0 !important}\n.wp-site-blocks main > .wp-block-group.has-global-padding{padding-top:0 !important}\n.wp-block-group.has-global-padding:has(> .entry-content){padding-top:0 !important}\n.entry-content.has-global-padding > .alignfull,\n.entry-content.has-global-padding{padding-left:0 !important;padding-right:0 !important;padding-top:0 !important}\n.cg .cg-hero, .cg section{padding-left:0 !important;padding-right:0 !important}\n.cg > section:first-of-type, .cg .cg-hero{padding-top:0 !important}\n.cg .wrap{padding-left:var(--c-gut);padding-right:var(--c-gut)}\n\n\/* ======================= CAMBIOS: NUEVOS ESTILOS ======================= *\/\n\/* Cambios: logos de las tarjetas de Servicios m\u00e1s peque\u00f1os (antes 288px). *\/\n.cg .svc .card img{width:auto;height:44px;max-width:120px;object-fit:contain;object-position:left center;display:block;margin:2px 0 16px;opacity:.9}\n\n\/* Cambios: placeholder reutilizable para \"espacio para im\u00e1genes\". *\/\n.cg .ph{position:relative;display:flex;align-items:center;justify-content:center;text-align:center;background:rgba(127,127,127,.06);border:1px dashed var(--c-line);border-radius:3px;color:var(--c-gray);font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;aspect-ratio:16\/10;overflow:hidden}\n.cg .ph img{width:100%;height:100%;object-fit:cover;display:block}\n.cg .dark .ph,.cg .dark2 .ph{border-color:#2b2b31;background:rgba(255,255,255,.03);color:#8a8a93}\n\n\/* Cambios: apartado Unreal \/ Producci\u00f3n Virtual (VP) *\/\n.cg .vp{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(24px,4vw,56px);align-items:center;margin-top:48px}\n.cg .vp .vp-copy p{color:#cfccc4;font-size:16px;margin:0 0 16px;max-width:56ch}\n.cg .vp .vp-list{list-style:none;margin:18px 0 0;padding:0}\n.cg .vp .vp-list li{font-size:14px;color:#cfccc4;padding:9px 0;border-top:1px solid #26262c;display:flex;gap:10px}\n.cg .vp .vp-list li::before{content:\"\\25AE\";color:var(--c-orange);font-size:11px;line-height:1.4}\n.engine-logo{\n    width:220px;\n    height:auto;\n    display:block;\n}\n.cg .vp .vp-media{display:grid;grid-template-columns:1fr;gap:14px}\n@media(max-width:900px){.cg .vp{grid-template-columns:1fr}}\n\n\/* Cambios: rejilla de im\u00e1genes On Set *\/\n.cg .onset-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:40px}\n.cg .onset-grid .ph:first-child{grid-column:span 2;grid-row:span 2}\n@media(max-width:700px){.cg .onset-grid{grid-template-columns:repeat(2,1fr)}.cg .onset-grid .ph:first-child{grid-column:span 2}}\n\n\/* Cambios: Fotogrametr\u00eda \/ LiDAR *\/\n.cg .scan{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--c-line);border:1px solid var(--c-line);margin-top:40px}\n.cg .scan .card{background:#fff;padding:clamp(22px,2.4vw,34px)}\n.cg .scan .card .num{font-size:11px;letter-spacing:.2em;font-weight:700;color:var(--c-orange)}\n.cg .scan .card h3{font-size:clamp(19px,2vw,24px);margin:10px 0 10px}\n.cg .scan .card p{color:#46464d;font-size:15px;margin:0}\n@media(max-width:700px){.cg .scan{grid-template-columns:1fr}}\n\n\/* Cambios: secci\u00f3n Pel\u00edculas *\/\n.cg .films{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:44px}\n.cg .films .ph{aspect-ratio:2\/3}\n.cg .films figure{margin:0}\n.cg .films figcaption{margin-top:10px;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--c-gray);font-weight:700}\n@media(max-width:900px){.cg .films{grid-template-columns:repeat(2,1fr)}}\n\n\/* Cambios: banner CTA Gu\u00eda gratis *\/\n.cg .guide{background:linear-gradient(135deg,#1a120c,#0d0d0f);color:var(--c-cream);border:1px solid #2b2b31;border-radius:4px;padding:clamp(28px,4vw,52px);margin-top:48px;display:flex;flex-wrap:wrap;gap:24px;align-items:center;justify-content:space-between}\n.cg .guide .g-txt{max-width:60ch}\n.cg .guide .g-txt .kicker{color:var(--c-orange)}\n.cg .guide h3{font-size:clamp(22px,2.6vw,34px);text-transform:uppercase;margin:8px 0 8px}\n.cg .guide p{color:#cfccc4;font-size:15px;margin:0}\n.cg .guide .g-cta{white-space:nowrap}\n<\/style>\n\n<div class=\"cg\">\n\n<section class=\"cg-hero\">\n  <div class=\"wrap\">\n    <p class=\"tagline reveal\">VFX Supervisor &#038; Compositor \u00b7 Houdini \u00b7 Maya \u00b7 Nuke \u00b7 3DEqualizer<\/p>\n    <h1 class=\"reveal\">Los mejores efectos<br><em>no se ven.<\/em><\/h1>\n    <p class=\"sub reveal\">Soy Leandro Crespo, supervisor de VFX y compositor. Los mejores efectos est\u00e1n en tus pel\u00edculas favoritas, en spots que recuerdas y en planos que jam\u00e1s cuestionaste. VFX invisibles: integraci\u00f3n, simulaci\u00f3n y compositing pensados para servir a la historia, no para robarle protagonismo.<\/p>\n    <div class=\"cta-row reveal\">\n      <a class=\"btn solid\" href=\"https:\/\/calendly.com\/ziggi-mgz\/30min\" target=\"_blank\" rel=\"noopener\">Agenda una llamada<\/a>\n      <a class=\"btn ghost\" href=\"#servicios\">Ver servicios VFX<\/a>\n    <\/div>\n    <div class=\"trust reveal\">\n      <div><span class=\"n\">350+<\/span><small>planos entregados<\/small><\/div>\n      <div><span class=\"n\">Nuke \u00b7 Houdini<\/span><small>Maya \u00b7 3DEqualizer<\/small><\/div>\n      <div><span class=\"n\">ACES \u00b7 OCIO<\/span><small>pipeline color-managed<\/small><\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<section class=\"cream reveal\">\n  <div class=\"wrap\">\n    <p class=\"kicker\">Por qu\u00e9 importa<\/p>\n    <h2 class=\"big\">El VFX que funciona es el que nadie nota<\/h2>\n    <p class=\"lead\">Cuando un efecto salta a la vista, algo ha fallado: la escala, la luz, el grano o el movimiento delatan el truco y el espectador sale de la historia. Mi trabajo es el contrario. Construyo planos donde el cielo reemplazado, el set extendido, el elemento simulado o el actor duplicado se integran de forma tan natural que se leen como realidad. La t\u00e9cnica desaparece; queda la emoci\u00f3n.<\/p>\n<div class=\"ba\" id=\"ba1\">\n  <div class=\"ba-img ba-after\">\n    <img decoding=\"async\" src=\"https:\/\/ziggifilms.com\/leandrocrespo\/wp-content\/uploads\/2026\/07\/1.9.2_1.9.2.png\">\n  <\/div>\n  <div class=\"ba-img ba-before\" id=\"ba1-before\">\n    <img decoding=\"async\" src=\"https:\/\/ziggifilms.com\/leandrocrespo\/wp-content\/uploads\/2026\/07\/1.9.1_1.9.1.png\" alt=\"grade-packshot-before\">\n    <span class=\"ba-tag ba-tag-l\">ANTES<\/span>\n  <\/div>\n  <span class=\"ba-tag ba-tag-r\">DESPU\u00c9S<\/span>\n  <div class=\"ba-handle\" id=\"ba1-handle\"><span class=\"ba-knob\">&#8596;<\/span><\/div>\n  <input class=\"ba-range\" id=\"ba1-range\" type=\"range\" min=\"0\" max=\"100\" value=\"50\">\n<\/div>  \n<\/div>\n\n  \n<\/section>\n\n<section id=\"servicios\" class=\"reveal\">\n  <div class=\"wrap\">\n    <p class=\"kicker\">Servicios<\/p>\n    <h2 class=\"big\">Cuatro pilares, un solo plano cre\u00edble<\/h2>\n    <p class=\"lead\">Del set a la entrega final, cada disciplina se apoya en la anterior. Como supervisor de VFX, domino las herramientas est\u00e1ndar de la industria y, sobre todo, el criterio para saber cu\u00e1ndo usarlas.<\/p>\n    <div class=\"svc\">\n      <div class=\"card\">\n        <span class=\"num\">01 \u00b7 HOUDINI<\/span>\n        <h3>FX &#038; Simulaci\u00f3n<\/h3> \n<img decoding=\"async\" src=\"https:\/\/ziggifilms.com\/leandrocrespo\/wp-content\/uploads\/2026\/07\/Houdini-Logo-1-300x300-1.png\" alt=\"Houdini\">\n        <p>Fuego, humo, agua, destrucci\u00f3n y part\u00edculas con base f\u00edsica. Simulaciones que reaccionan a la luz y a la c\u00e1mara reales del plano.<\/p>\n        <ul>\n          <li>Pyro, fluidos y RBD en Houdini<\/li>\n          <li>Render de AOVs para compositing<\/li>\n          <li>Elementos que sirven a la narrativa<\/li>\n        <\/ul>\n      <\/div>\n      <div class=\"card\">\n        <span class=\"num\">02 \u00b7 MAYA<\/span>\n        <h3>3D &#038; CG Integration<\/h3>\n<img decoding=\"async\" src=\"https:\/\/ziggifilms.com\/leandrocrespo\/wp-content\/uploads\/2026\/07\/a6a4bfb514e96ecf6fdbb6cce692cc48.png\" alt=\"3D\">\n        <p>Modelado, look-dev y layout para insertar objetos, entornos y set-extensions que comparten la f\u00edsica de luz del plato original.<\/p>\n        <ul>\n          <li>Assets y entornos CG en Maya<\/li>\n          <li>Look-dev y AOVs (Arnold\/Redshift)<\/li>\n          <li>Integraci\u00f3n fotorrealista con la placa<\/li>\n        <\/ul>\n      <\/div>\n      <div class=\"card\">\n        <span class=\"num\">03 \u00b7 3DEQUALIZER<\/span>\n        <h3>Match Move &#038; Tracking<\/h3>\n<img decoding=\"async\" src=\"https:\/\/ziggifilms.com\/leandrocrespo\/wp-content\/uploads\/2026\/07\/3DE.png\" alt=\"3DE\">\n        <p>El puente entre lo real y lo digital. Resuelvo la c\u00e1mara y el movimiento para que el CG quede anclado al mundo, sin deslizamientos ni saltos.<\/p>\n        <ul>\n          <li>Camera solve y object tracking<\/li>\n          <li>Lens distortion (undistort\/redistort)<\/li>\n          <li>Set survey y datos de rodaje<\/li>\n        <\/ul>\n      <\/div>\n      <div class=\"card\">\n        <span class=\"num\">04 \u00b7 NUKE<\/span>\n        <h3>Compositing<\/h3>\n<img decoding=\"async\" src=\"https:\/\/ziggifilms.com\/leandrocrespo\/wp-content\/uploads\/2026\/07\/nuke_logo_icon_248345.png\" alt=\"Nuke \u2014 compositing por supervisor de VFX\">\n        <p>Donde todo se une. Keying, roto, cleanup, relighting y grade final en un pipeline ACES color-managed para un resultado invisible.<\/p>\n        <ul>\n          <li>Keying, roto\/paint y cleanup<\/li>\n          <li>Deep, projections y set-extension<\/li>\n          <li>Entregas ACES \/ OCIO (EXR, ProRes)<\/li>\n        <\/ul>\n        <a class=\"more\" href=\"\/leandrocrespo\/compositing\/\">Ver trabajo de Compositing \u2192<\/a>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- CAMBIOS: apartado Unreal Engine \/ Producci\u00f3n Virtual (VP) -->\n<section class=\"dark reveal\" id=\"produccion-virtual\">\n  <div class=\"wrap\">\n    <p class=\"kicker\">Producci\u00f3n Virtual<\/p>\n    <h2 class=\"big\">Unreal Engine: render en tiempo real y VP<\/h2>\n<img decoding=\"async\" class=\"engine-logo\" src=\"https:\/\/ziggifilms.com\/leandrocrespo\/wp-content\/uploads\/2026\/07\/Unreal_Engine-Logo.wine_-3-scaled.png\" alt=\"unreal_logo\">\n    <p class=\"lead\">La producci\u00f3n virtual (VP) traslada el VFX al propio rodaje: con el motor de Unreal Engine genero entornos y renders en tiempo real que se proyectan en pantallas LED o sirven de previsualizaci\u00f3n en c\u00e1mara. El equipo ve el plano casi final mientras rueda, la luz del entorno digital ba\u00f1a a los actores reales y las decisiones creativas se toman en el set, no meses despu\u00e9s en post.<\/p>\n    <div class=\"vp\">\n      <div class=\"vp-copy\">\n        <p>Del previs al plano final con un pipeline en tiempo real: escenarios virtuales, iluminaci\u00f3n coherente y c\u00e1mara sincronizada para integrar lo digital y lo real sin costuras.<\/p>\n        <ul class=\"vp-list\">\n          <li>Entornos y set-extension en Unreal Engine (render en tiempo real)<\/li>\n          <li>Rodaje en pantalla LED \/ in-camera VFX (ICVFX)<\/li>\n          <li>Previsualizaci\u00f3n, techviz y virtual scouting<\/li>\n          <li>Sincronizaci\u00f3n de c\u00e1mara y tracking en directo<\/li>\n          <li>Pipeline color-managed ACES \/ OCIO de punta a punta<\/li>\n        <\/ul>\n      <\/div>\n      <div class=\"vp-media\">\n        <!-- CAMBIOS: espacio para im\u00e1genes de Producci\u00f3n Virtual (sustituir por img) -->\n        <div class=\"ph\"><img decoding=\"async\" src=\"https:\/\/ziggifilms.com\/leandrocrespo\/wp-content\/uploads\/2026\/07\/Screenshot-2024-02-13-232430.png\" alt=\"Unreal VPX\"><\/div>\n        <div class=\"ph\"><img decoding=\"async\" src=\"https:\/\/ziggifilms.com\/leandrocrespo\/wp-content\/uploads\/2026\/07\/Screenshot-2024-02-25-165550.png\" alt=\"Render\"><\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<section class=\"dark2 reveal\">\n  <div class=\"wrap\">\n    <p class=\"kicker\">C\u00f3mo se conecta<\/p>\n    <h2 class=\"big\">De la c\u00e1mara al plano final<\/h2>\n    <p class=\"lead\">Un VFX invisible no nace en post: empieza en el set y se resuelve en cadena. Cada eslab\u00f3n alimenta al siguiente y por eso controlar todo el pipeline evita las costuras que delatan el efecto.<\/p>\n    <div class=\"proc\">\n      <div class=\"step\">\n        <span class=\"no\">01 \u00b7 ON SET<\/span>\n        <h3>VFX on Set<\/h3>\n        <p>Supervisi\u00f3n en rodaje: HDRIs, chrome\/grey balls, medidas, clean plates y datos de c\u00e1mara para que post no adivine nada.<\/p>\n      <\/div>\n      <div class=\"step\">\n        <span class=\"no\">02 \u00b7 MATCH MOVE<\/span>\n        <h3>Tracking 3D<\/h3>\n        <p>En 3DEqualizer resuelvo c\u00e1mara y lente. Sin un buen track, el mejor CG del mundo patina sobre el plano.<\/p>\n      <\/div>\n      <div class=\"step\">\n        <span class=\"no\">03 \u00b7 3D \/ FX<\/span>\n        <h3>CG &#038; Simulaci\u00f3n<\/h3>\n        <p>Maya y Houdini generan los elementos con la misma luz y f\u00edsica del plato, listos en pases para componer.<\/p>\n      <\/div>\n      <div class=\"step\">\n        <span class=\"no\">04 \u00b7 COMPOSITING<\/span>\n        <h3>Integraci\u00f3n final<\/h3>\n        <p>En Nuke se funde todo bajo un mismo ACES: color, grano, foco y atm\u00f3sfera. El efecto desaparece.<\/p>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<section class=\"cream reveal\">\n  <div class=\"wrap\">\n    <p class=\"kicker\">On set<\/p>\n    <h2 class=\"big\">La escena invisible empieza en el rodaje<\/h2>\n    <p class=\"lead\">Estar en el set cambia el resultado. Como supervisor de VFX anticipo qu\u00e9 se puede resolver en c\u00e1mara y qu\u00e9 conviene dejar para post, capturo las referencias correctas y evito los errores caros que solo aparecen semanas despu\u00e9s, ya en compositing. Menos sorpresas, planos m\u00e1s cre\u00edbles y un pipeline color-managed en ACES de punta a punta. Si te interesa el detalle t\u00e9cnico del acabado, la <a class=\"more\" href=\"\/leandrocrespo\/compositing\/\">gu\u00eda de flujo ACES y el toolchain est\u00e1n en Compositing<\/a>.<\/p>\n\n    <!-- CAMBIOS: espacio para MIS fotos en el set (sustituir .ph por img) -->\n    <div class=\"onset-grid\">\n      <div class=\"ph\"> <img decoding=\"async\" src=\"https:\/\/ziggifilms.com\/leandrocrespo\/wp-content\/uploads\/2026\/07\/DSC07916-scaled.jpg\" alt=\"sup-vfx\"><\/div>\n      <div class=\"ph\"><img decoding=\"async\" src=\"https:\/\/ziggifilms.com\/leandrocrespo\/wp-content\/uploads\/2026\/07\/WhatsApp-Image-2025-08-18-at-14.13.18.jpeg\" alt=\"sup-vfx\">t<\/div>\n    \n    <\/div>\n\n    <!-- CAMBIOS: captura de datos en set \u2014 Fotogrametr\u00eda y LiDAR -->\n    <div class=\"scan\">\n      <div class=\"card\">\n        <span class=\"num\">SCAN 01 \u00b7 FOTOGRAMETR\u00cdA<\/span>\n        <h3>Fotogrametr\u00eda<\/h3>\n        <p>Reconstruyo props, decorados y actores en 3D a partir de fotograf\u00edas para crear dobles digitales y set-extensions que encajan al mil\u00edmetro con el rodaje real.<\/p>\n <div class=\"ph\"><img decoding=\"async\" src=\"https:\/\/ziggifilms.com\/leandrocrespo\/wp-content\/uploads\/2026\/07\/WhatsApp-Image-2025-08-18-at-14.23.29-1.jpeg\" alt=\"Fotogrametria\"><\/div>\n      <\/div>\n      <div class=\"card\">\n        <span class=\"num\">SCAN 02 \u00b7 LIDAR<\/span>\n        <h3>Escaneo LiDAR<\/h3>\n        <p>Capturo la geometr\u00eda exacta del set con LiDAR: mallas de referencia y medidas precisas que aceleran el match move y anclan el CG al mundo real sin deslizamientos.<\/p>\n <div class=\"ph\"><img decoding=\"async\" src=\"https:\/\/ziggifilms.com\/leandrocrespo\/wp-content\/uploads\/2026\/07\/WhatsApp-Image-2025-08-18-at-14.22.03.jpeg\" alt=\"Scan-Lidar\"><\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- CAMBIOS: apartado \"Pel\u00edculas en las que he participado\" -->\n<section class=\"cream reveal\" id=\"filmografia\">\n  <div class=\"wrap\">\n    <p class=\"kicker\">Filmograf\u00eda<\/p>\n    <h2 class=\"big\">Pel\u00edculas en las que he participado<\/h2>\n    <p class=\"lead\">Una selecci\u00f3n de proyectos de cine y publicidad en los que he trabajado en VFX. (Espacio para carteles o fotogramas \u2014 sustituir cada recuadro por su imagen.)<\/p>\n    <div class=\"films\">\n      <figure><div class=\"ph\"><img decoding=\"async\" src=\"https:\/\/ziggifilms.com\/leandrocrespo\/wp-content\/uploads\/2026\/07\/Sangre-de-Plomo_2025.jpg\" alt=\"Sangre-de-Plomo_2025\"><\/div><figcaption>Sangre de Plomo \u00b7 2025<\/figcaption><\/figure>\n      <figure><div class=\"ph\"><img decoding=\"async\" src=\"https:\/\/ziggifilms.com\/leandrocrespo\/wp-content\/uploads\/2026\/07\/cartel_mito_de_predael.jpg\" alt=\"El_mito_de_Predael\"><\/div><figcaption>El Mito de Predael \u00b7 2025<\/figcaption><\/figure>\n      <figure><div class=\"ph\">Cartel pel\u00edcula<\/div><figcaption>T\u00edtulo \u00b7 A\u00f1o<\/figcaption><\/figure>\n      <figure><div class=\"ph\">Cartel pel\u00edcula<\/div><figcaption>T\u00edtulo \u00b7 A\u00f1o<\/figcaption><\/figure>\n    <\/div>\n\n    <!-- CAMBIOS: banner CTA de la gu\u00eda gratuita (enlaza a \/aces) -->\n    <div class=\"guide\">\n      <div class=\"g-txt\">\n        <p class=\"kicker\">Recurso gratis<\/p>\n        <h3>Gu\u00eda gratis: enviar footage en ACES<\/h3>\n        <p>C\u00f3mo preparar y exportar tu material en ACES 2065-1 con DaVinci Resolve, paso a paso: color space, timeline, lens distortion, metadata y export listos para VFX.<\/p>\n      <\/div>\n      <a class=\"btn solid g-cta\" href=\"https:\/\/ziggifilms.com\/aces\/\">Ver la gu\u00eda gratis<\/a>\n    <\/div>\n  <\/div>\n<\/section>\n\n<section class=\"dark reveal\">\n  <div class=\"wrap\">\n    <p class=\"kicker\">Confianza<\/p>\n    <h2 class=\"big\">Lo que dicen los equipos<\/h2>\n    <div class=\"quotes\">\n      <blockquote>\n        <p>&ldquo;Resolvi\u00f3 tracks imposibles y el CG qued\u00f3 clavado. Nadie del cliente not\u00f3 el trabajo \u2014 que es justo el objetivo.&rdquo;<\/p>\n        <small>VFX Supervisor \u00b7 Publicidad<\/small>\n      <\/blockquote>\n      <blockquote>\n        <p>&ldquo;Su supervisi\u00f3n en set nos ahorr\u00f3 d\u00edas de cleanup. Lleg\u00f3 a post con todo medido y documentado.&rdquo;<\/p>\n        <small>Productora \u00b7 Ficci\u00f3n<\/small>\n      <\/blockquote>\n      <blockquote>\n        <p>&ldquo;Integraci\u00f3n impecable y pipeline ACES coherente en toda la serie. Compositor de primera.&rdquo;<\/p>\n        <small>Post Supervisor \u00b7 Serie<\/small>\n      <\/blockquote>\n    <\/div>\n  <\/div>\n<\/section>\n\n<section class=\"reveal\">\n  <div class=\"wrap\">\n    <p class=\"kicker\">Dudas frecuentes<\/p>\n    <h2 class=\"big\">FAQ<\/h2>\n    <div class=\"faq\">\n      <details><summary>\u00bfQu\u00e9 software usas y por qu\u00e9?<span><\/span><\/summary><p>Houdini para FX y simulaci\u00f3n, Maya para 3D y CG, 3DEqualizer para match move y Nuke para compositing. Son el est\u00e1ndar de la industria y me permiten integrarme sin fricci\u00f3n en cualquier pipeline.<\/p><\/details>\n      <details><summary>\u00bfTrabajas tambi\u00e9n como supervisor de VFX en set?<span><\/span><\/summary><p>S\u00ed. La supervisi\u00f3n en rodaje es clave para lograr efectos invisibles: capturo HDRIs, clean plates, medidas y datos de c\u00e1mara que evitan problemas caros en post.<\/p><\/details>\n      <details><summary>\u00bfC\u00f3mo gestionas el color? <span><\/span><\/summary><p>Pipeline ACES \/ OCIO de principio a fin, con entregas en EXR, ProRes y los formatos que pida el proyecto. Puedes ver el detalle en la p\u00e1gina de Compositing.<\/p><\/details>\n      <details><summary>\u00bfPuedes encargarte de todo el pipeline o solo de una parte?<span><\/span><\/summary><p>Ambas. Puedo llevar el plano de la c\u00e1mara al final o integrarme en un equipo cubriendo tracking, 3D, FX o compositing seg\u00fan necesites.<\/p><\/details>\n    <\/div>\n  <\/div>\n<\/section>\n\n<section class=\"dark final reveal\">\n  <div class=\"wrap\">\n    <p class=\"kicker\">Siguiente paso<\/p>\n    <h2 class=\"big\">\u00bfTienes un plano que deber\u00eda ser invisible?<\/h2>\n    <p class=\"lead\">Cu\u00e9ntame qu\u00e9 est\u00e1s construyendo y te propongo el camino de VFX m\u00e1s eficiente \u2014 del set a la entrega final.<\/p>\n    <div class=\"row\">\n      <a class=\"mail\" href=\"mailto:leandrocrespo@ziggifilms.com\">leandrocrespo@ziggifilms.com<\/a>\n      <a class=\"btn solid\" href=\"https:\/\/calendly.com\/ziggi-mgz\/30min\" target=\"_blank\" rel=\"noopener\">Agenda una llamada<\/a>\n    <\/div>\n  <\/div>\n<\/section>\n\n<\/div>\n\n<script>\n(function(){\n  function run(){\n    var io=new IntersectionObserver(function(es){\n      es.forEach(function(e){ if(e.isIntersecting){ e.target.classList.add('in'); io.unobserve(e.target); } });\n    },{threshold:0.12});\n    document.querySelectorAll('.cg .reveal').forEach(function(el){ io.observe(el); });\n\n    \/* Cambios: se a\u00f1ade la l\u00f3gica del slider Antes\/Despu\u00e9s.\n       Antes no exist\u00eda script que moviera el tirador ni la\n       anchura de .ba-before, por eso el slider no funcionaba.\n       L\u00f3gica id\u00e9ntica a la de la p\u00e1gina \"Color\". *\/\n    var root = document.getElementById('ba1');\n    if(root){\n      var before = document.getElementById('ba1-before'),\n          handle = document.getElementById('ba1-handle'),\n          range  = document.getElementById('ba1-range');\n\n      \/* Cambios: layout() mantiene ambas im\u00e1genes con el MISMO tama\u00f1o\n         que el contenedor (por escala) y centradas respecto a \u00e9l, para\n         que queden est\u00e1ticas al deslizar. Se recalcula al iniciar y al\n         redimensionar la ventana. *\/\n      function layout(){\n        var scale = parseFloat(getComputedStyle(root).getPropertyValue('--ba-scale')) || 100;\n        var w = root.clientWidth * scale \/ 100;\n        var x = (root.clientWidth - w) \/ 2;\n        root.style.setProperty('--ba-img-w', w + 'px');\n        root.style.setProperty('--ba-img-x', x + 'px');\n      }\n      layout();\n      window.addEventListener('resize', layout);\n\n      \/* set(p): fija la posici\u00f3n del slider (0-100) *\/\n      function set(p){\n        p = Math.max(0, Math.min(100, p));\n        before.style.width = p + '%';\n        handle.style.left  = p + '%';\n        range.value = p;\n      }\n\n      \/* fe(e): calcula la posici\u00f3n seg\u00fan el rat\u00f3n\/dedo *\/\n      function fe(e){\n        var r = root.getBoundingClientRect();\n        var x = (e.touches ? e.touches[0].clientX : e.clientX) - r.left;\n        set(x \/ r.width * 100);\n      }\n\n      \/* Arrastre con rat\u00f3n *\/\n      var d = false;\n      root.addEventListener('mousedown', function(e){ d = true; fe(e); });\n      window.addEventListener('mousemove', function(e){ if(d) fe(e); });\n      window.addEventListener('mouseup', function(){ d = false; });\n\n      \/* Arrastre t\u00e1ctil *\/\n      root.addEventListener('touchstart', function(e){ d = true; fe(e); }, {passive:true});\n      root.addEventListener('touchmove', function(e){ if(d) fe(e); }, {passive:true});\n      root.addEventListener('touchend', function(){ d = false; });\n\n      \/* Input range (accesibilidad \/ teclado) *\/\n      range.addEventListener('input', function(){ set(parseFloat(range.value)); });\n\n      \/* Posici\u00f3n inicial centrada *\/\n      set(50);\n    }\n  }\n  if(document.readyState!=='loading'){ run(); } else { document.addEventListener('DOMContentLoaded', run); }\n})();\n<\/script>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>VFX Supervisor &#038; Compositor \u00b7 Houdini \u00b7 Maya \u00b7 Nuke \u00b7 3DEqualizer Los mejores efectosno se ven. Soy Leandro Crespo, supervisor de VFX y compositor. Los mejores efectos est\u00e1n en tus pel\u00edculas favoritas, en spots que recuerdas y en planos que jam\u00e1s cuestionaste. VFX invisibles: integraci\u00f3n, simulaci\u00f3n y compositing pensados para servir a la historia, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-98","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/ziggifilms.com\/leandrocrespo\/wp-json\/wp\/v2\/pages\/98","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ziggifilms.com\/leandrocrespo\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ziggifilms.com\/leandrocrespo\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ziggifilms.com\/leandrocrespo\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ziggifilms.com\/leandrocrespo\/wp-json\/wp\/v2\/comments?post=98"}],"version-history":[{"count":54,"href":"https:\/\/ziggifilms.com\/leandrocrespo\/wp-json\/wp\/v2\/pages\/98\/revisions"}],"predecessor-version":[{"id":501,"href":"https:\/\/ziggifilms.com\/leandrocrespo\/wp-json\/wp\/v2\/pages\/98\/revisions\/501"}],"wp:attachment":[{"href":"https:\/\/ziggifilms.com\/leandrocrespo\/wp-json\/wp\/v2\/media?parent=98"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}