CompStart

ProLeccionesCursosElementosSoftware

CompStart

Domina los efectos visuales con técnicas de vanguardia.

Aprendizaje

CursosLeccionesFunciones ProRecursosSoftware

Tools

Tech CheckDisplay CheckMotion BlurCIE 1931PhysLightNuke Tools

Empresa

InstructorMisiónImpressumPrivacidadTérminos

Proyectos

Moray RenderEXR ConverterOCIO.ccNuke ToolsDerekVFX

Follow

YouTubeInstagramTikTokThreadsContacto

© 2026 CompStart. Todos los derechos reservados.

Renderizado avanzado por línea de escaneo

ToolSets / 3D
3D

2026-09-07

ToolSets/3d/scanlineRenderAdvanced.nk

3D
línea de escaneo
prestar
profundo
reticente
sobreexploración
aov
utilidad
View on GitHub

Envoltorio de ScanlineRender con interfaz gráfica de usuario independiente y muestras/escalas de renderizado, sobreexploración dinámica, expansión suave de retención profunda y salidas vectoriales AOV.

Scanline Render Advanced integra ScanlineRender de Nuke con controles vinculados para formato, rango de fotogramas, sobreexploración, filtro de muestreo, suavizado de bordes, modo de fusión Z y obturador. Muestra por separado el número de muestras de la interfaz gráfica y del renderizado, además de los factores de escala, para que el visor mantenga una visualización ligera mientras que los renderizados finales utilizan un muestreo mayor.

El sobreescaneo se controla mediante un valor dinámico y se multiplica por la escala de renderizado o de la interfaz gráfica activa. La entrada de reserva profunda se reformatea para que coincida, con una expansión suave opcional en la parte frontal/posterior profunda antes de la reserva profunda. La ruta de belleza se reformatea al formato elegido con un filtro de aumento de resolución seleccionable.

Úselo cuando necesite ScanlineRender en una canalización 3D/profunda con holdouts, vectores de movimiento o sombreado, y una separación más clara entre la calidad interactiva y la de procesamiento por lotes. Los AOVs incluyen vectores de salida, punto de superficie (P) y normal de superficie (N).

Script code

set cut_paste_input [stack 0]
version 12.1 v4
push $cut_paste_input
Group {
 name scanlineRenderAdvanced
 onCreate "import nuke\n\n#zz = nuke.FrameRange('100-200')\n#print zz.frames()\n\nff = nuke.Root().firstFrame()\nlf = nuke.Root().lastFrame()\n\nnuke.thisNode().knob('fr').setValue('\{\}-\{\}'.format(ff, lf))\n\n\n\n"
 tile_color 0x421010ff
 label "\[value gui_samples] : \[value render_samples] - \[value overscan_dynamic]"
 addUserKnob {20 User l ScanlineRender}
 addUserKnob {41 format T Constant1.format}
 addUserKnob {1 fr l "frame range" -STARTLINE}
 fr 1-100
 addUserKnob {41 overscan_dynamic l overscan T ScanlineRender1.overscan_dynamic}
 addUserKnob {41 filter l "sample filter" T ScanlineRender1.filter}
 addUserKnob {41 antialiasing -STARTLINE T ScanlineRender1.antialiasing}
 addUserKnob {41 zblend_mode l "Z-blend mode" -STARTLINE T ScanlineRender1.zblend_mode}
 addUserKnob {41 shutter T ScanlineRender1.shutter}
 addUserKnob {41 gui_samples l "gui samples" T ScanlineRender1.gui_samples}
 addUserKnob {7 gui_scale l "gui scale" -STARTLINE R 0.1 1}
 gui_scale 1
 addUserKnob {41 render_samples l "render samples" T ScanlineRender1.render_samples}
 addUserKnob {7 render_scale l "render scale" -STARTLINE R 1 10}
 render_scale 1
 addUserKnob {41 filter_1 l "uprez filter" T Reformat2.filter}
 addUserKnob {41 expand l "deep soft expand" T DeepExpression1.expand}
 addUserKnob {26 ""}
 addUserKnob {26 lbl l "" t "July 12, 2019- added overscan\nJuly 19, 2019 - added soft deep and dynamic scale 1.2\nJuly 24, 2019 - added deep proxy scale 1.3" +STARTLINE T "ScanlineRender Advanced v1.3"}
 addUserKnob {22 btn l DerekVFX.ca T "nuke.tcl('start', 'https://derekvfx.ca')" +STARTLINE}
 addUserKnob {20 aov l AOV}
 addUserKnob {41 output_shader_vectors l "output vectors" T ScanlineRender1.output_shader_vectors}
 addUserKnob {41 P_channel l "surface point" T ScanlineRender1.P_channel}
 addUserKnob {41 N_channel l "surface normal" T ScanlineRender1.N_channel}
}
 Constant {
  inputs 0
  name Constant1
  xpos 684
  ypos 245
 }
set Ndd11400 [stack 0]
 Dot {
  name Dot5
  note_font_size 40
  xpos 888
  ypos 272
 }
 Dot {
  name Dot4
  note_font_size 40
  xpos 888
  ypos 741
 }
 Input {
  inputs 0
  name deepHoldout
  xpos 84
  ypos 245
  number 2
 }
 DeepReformat {
  format {{{parent.Constant1.format}}}
  resize none
  pbb true
  name DeepReformat1
  xpos 84
  ypos 271
 }
set Ndd10400 [stack 0]
 DeepReformat {
  type scale
  scale {{parent.guiScale.scale}}
  pbb true
  name deepReformatGUI
  xpos -41
  ypos 346
 }
push $Ndd10400
 DeepReformat {
  type scale
  scale {{parent.renderScale.scale}}
  pbb true
  name deepReformatRender
  xpos 84
  ypos 346
 }
 Switch {
  inputs 2
  which {{"\$gui"}}
  name Switch1
  label "\[value which]"
  xpos 84
  ypos 412
 }
 set Cdd37800 [stack 0]
 Dot {
  name Dot3
  note_font_size 40
  xpos 118
  ypos 611
 }
 Input {
  inputs 0
  name cam
  xpos 284
  ypos 245
  number 1
 }
 Dot {
  name Dot2
  note_font_size 40
  xpos 318
  ypos 502
 }
 Input {
  inputs 0
  name scene
  xpos 484
  ypos 245
 }
push $Ndd11400
 Reformat {
  type scale
  scale {{gui_scale}}
  name guiScale
  xpos 559
  ypos 346
 }
push $Ndd11400
 Reformat {
  type scale
  scale {{render_scale}}
  name renderScale
  xpos 684
  ypos 346
 }
clone $Cdd37800 {
  inputs 2
  xpos 684
  ypos 412
  selected false
 }
 Dot {
  name Dot1
  note_font_size 40
  xpos 718
  ypos 502
 }
 ScanlineRender {
  inputs 3
  conservative_shader_sampling false
  antialiasing high
  overscan {{"\$gui ? overscan_dynamic*guiScale.scale : overscan_dynamic*renderScale.scale"}}
  samples {{"\$gui ? gui_samples : render_samples"}}
  shutteroffset centred
  motion_vectors_type distance
  name ScanlineRender1
  label "\[value samples]"
  xpos 484
  ypos 492
  addUserKnob {20 User}
  addUserKnob {3 gui_samples}
  gui_samples 1
  addUserKnob {3 render_samples}
  render_samples 5
  addUserKnob {7 overscan_dynamic R 0 100}
  overscan_dynamic 32.8
 }
 DeepExpression {
  chans1 deep
  deep.front "deep.front - \[value expand]"
  deep.back "deep.back + \[value expand]"
  name DeepExpression1
  xpos 484
  ypos 551
  disable {{"expand == 0"}}
  addUserKnob {20 User}
  addUserKnob {7 expand R 0 100}
  expand 30.4
 }
 DeepHoldout2 {
  inputs 2
  name DeepHoldout1
  xpos 484
  ypos 607
 }
 Reformat {
  format {{{parent.Constant1.format}}}
  pbb true
  name Reformat2
  xpos 484
  ypos 676
 }
 Switch {
  inputs 2
  name Switch2
  xpos 484
  ypos 737
  disable true
 }
 Output {
  name Output1
  xpos 484
  ypos 785
 }
end_group