CompStart

Proレッスンコースエレメントソフトウェア

CompStart

最先端の映像技術をマスターしましょう。

学習

コースレッスンProプランアセットソフトウェア

Tools

Tech CheckDisplay CheckMotion BlurCIE 1931PhysLightNuke Tools

会社

Instructorミッションインプレッサムプライバシー利用規約

プロジェクト

Moray RenderEXR ConverterOCIO.ccNuke ToolsDerekVFX

Follow

YouTubeInstagramTikTokThreadsお問い合わせ

© 2026 CompStart. All rights reserved.

スキャンラインレンダリング(詳細設定)

ToolSets / 3D
3D

2026-09-07

ToolSets/3d/scanlineRenderAdvanced.nk

3D
スキャンライン
与える
深い
ホールドアウト
オーバースキャン
aov
ユーティリティ
View on GitHub

ScanlineRenderラッパー。GUIとレンダリングサンプル/スケールが分離されており、ダイナミックオーバースキャン、ディープホールドアウトソフトエクスパンド、AOVベクター出力に対応しています。

Scanline Render Advancedは、NukeのScanlineRenderをラップし、フォーマット、フレーム範囲、オーバースキャン、サンプルフィルタ、アンチエイリアシング、Zブレンドモード、シャッターなどの制御をリンクさせたものです。GUIとレンダリングサンプル数、スケールファクターを個別に設定できるため、ビューアは軽量なまま、最終レンダリングではより高いサンプリングレートを使用できます。

オーバースキャンは動的な値によって制御され、アクティブなGUIまたはレンダリングスケールで乗算されます。ディープホールドアウト入力は、ディープホールドアウトの前にオプションでディープフロント/バックのソフト拡張を適用して、一致するように再フォーマットされます。ビューティーパスは、選択可能なアップレゾフィルターを使用して、選択したフォーマットに再フォーマットされます。

ホールドアウト、モーションまたはシェーダーベクトル、インタラクティブ品質とバッチ品質の明確な分離を備えた 3D/ディープパイプラインで ScanlineRender が必要な場合に使用します。AOV には、出力ベクトル、サーフェスポイント (P)、およびサーフェス法線 (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