CompStart

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

CompStart

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

学習

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

Tools

Tech CheckDisplay CheckMotion BlurPhysLightNuke Tools

会社

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

プロジェクト

Moray RenderEXR ConverterOCIO.ccNuke ToolsDerekVFX

Follow

YouTubeInstagramTikTokThreadsお問い合わせ

© 2026 CompStart. All rights reserved.

日常の世界からカメラへ

ToolSets / Draw
Draw

2026-09-07

ToolSets/draw/normalWorldToCamera.nk

ノーマル
カメラ
変身
世界宇宙
カメラスペース
ユーティリティ
描く
GitHub で見る

接続されたカメラ、オプションのチャンネル選択、およびオプションの0-1パック出力を使用して、ワールド空間の法線をカメラ空間に変換します。

ワールド空間の法線マップをNukeコンポジション用のカメラ空間に変換します。最初の入力に法線を、2番目の入力にカメラを入力します。法線マップコントロールで、変換に使用するチャンネルを選択します。

ベクトルは正規化され、カメラワールド行列の逆行列が乗算され、その後再び正規化されます。出力パック形式がオンの場合、RGBは符号付き範囲から0~1に再マッピングされます。オフの場合、符号付きカメラ空間法線はそのまま保持されます。

照明、シェーディング、またはユーティリティの設定でカメラ空間の法線が必要とされるにもかかわらず、パスまたはベイク処理がまだワールド空間で行われている場合に使用します。

Script code

set cut_paste_input [stack 0]
version 15.1 v3
push 0
push $cut_paste_input
Group {
 inputs 2
 name WorldToCameraNormals4
 tile_color 0x421010ff
 selected true
 xpos -2643
 ypos 36
 addUserKnob {20 User l worldToCameraNormals}
 addUserKnob {26 info l "" +STARTLINE T "World to Camera Space Normal Transform"}
 addUserKnob {41 in_1 l "Normal Map" T Shuffle1.in}
 addUserKnob {6 outputPacked l "Output Packed Format (0-1 Range)" +STARTLINE}
 outputPacked true
 addUserKnob {26 "" +STARTLINE}
 addUserKnob {32 btn l DerekVFX.ca T "nuke.tcl('start', 'https://derekvfx.ca')" +STARTLINE}
}
 Input {
  inputs 0
  name normals
  label "\[value number]"
  xpos -150
  ypos -57
 }
 Shuffle {
  name Shuffle1
  xpos -150
  ypos 33
 }
set Nbd7a9800 [stack 0]
 Expression {
  temp_name0 length
  temp_expr0 "sqrt(r*r + g*g + b*b)"
  expr0 r/length
  expr1 g/length
  expr2 b/length
  name Normalize
  xpos -150
  ypos 81
 }
 ColorMatrix {
  matrix {
      {{"\[value input1.world_matrix.0]"} {"\[value input1.world_matrix.1]"} {"\[value input1.world_matrix.2]"}}
      {{"\[value input1.world_matrix.4]"} {"\[value input1.world_matrix.5]"} {"\[value input1.world_matrix.6]"}}
      {{"\[value input1.world_matrix.8]"} {"\[value input1.world_matrix.9]"} {"\[value input1.world_matrix.10]"}}
    }
  invert true
  name CameraTransform
  xpos -150
  ypos 129
 }
 Expression {
  temp_name0 length
  temp_expr0 "sqrt(r*r + g*g + b*b)"
  expr0 r/length
  expr1 g/length
  expr2 b/length
  name Normalize2
  xpos -150
  ypos 177
 }
 Expression {
  expr0 "outputPacked ? r * 0.5 + 0.5 : r"
  expr1 "outputPacked ? g * 0.5 + 0.5 : g"
  expr2 "outputPacked ? b * 0.5 + 0.5 : b"
  name PackNormals
  xpos -150
  ypos 201
 }
push $Nbd7a9800
 Copy {
  inputs 2
  from0 rgba.red
  to0 rgba.red
  from1 rgba.green
  to1 rgba.green
  from2 rgba.blue
  to2 rgba.blue
  name Copy1
  xpos -150
  ypos 225
 }
 Output {
  name Output1
  xpos -150
  ypos 321
 }
 Input {
  inputs 0
  name camera
  label "\[value number]"
  xpos -40
  ypos -57
  number 1
 }
end_group