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 / Draw
Draw

2026-09-07

ToolSets/draw/normalWorldToCamera.nk

정상인
카메라
변환
공익사업
그리다
세계 공간
카메라 공간
View on GitHub

연결된 카메라의 월드 행렬을 사용하여 월드 공간 법선을 카메라 공간으로 변환하며, 선택적으로 0~1로 구성된 압축 출력을 제공합니다.

Normal World To Camera는 월드 공간의 노멀 맵을 카메라 공간으로 변환합니다. 첫 번째 입력에 노멀을, 두 번째 입력에 카메라를 입력하세요. 이 기즈모는 카메라의 월드 행렬을 읽고, 노멀에 역회전을 적용한 후, 결과를 다시 정규화합니다.

패스 또는 룩데브 단계에서 카메라 공간 법선을 예상할 때 사용하십시오. 예를 들어 리라이팅, 셰이딩 기법 또는 장면이 아닌 뷰에 고정되어야 하는 모든 설정에 사용합니다.

셔플에서 노멀 맵 채널을 선택하십시오. 출력 압축 형식을 활성화하면 -1~1 범위의 벡터가 0~1 범위로 재매핑됩니다. 부호 있는 값을 유지하려면 이 옵션을 비활성화하십시오. RGB 값이 입력 이미지에 다시 기록됩니다.

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