CompStart

ProУрокиКурсыЭлементыСофт

CompStart

Осваивайте визуальные эффекты и передовые техники.

Обучение

КурсыУрокиPro-функцииРесурсыСофт

Tools

Tech CheckDisplay CheckMotion BlurCIE 1931PhysLightNuke Tools

Компания

InstructorМиссияImpressumКонфиденциальностьУсловия

Проекты

Moray RenderEXR ConverterOCIO.ccNuke ToolsDerekVFX

Follow

YouTubeInstagramTikTokThreadsКонтакты

© 2026 CompStart. Все права защищены.

Радиальное искажение

ToolSets / Filter
Filter

2026-09-07

ToolSets/filter/radialDistort.nk

фильтр
искажать
деформация
stmap
радиальный
полярный
объектив
полезность
View on GitHub

Радиальная деформация STMap для Nuke с вращением и гамма-коррекцией для искажения и изменения формы по мере удаления от центра.

Функция Radial Distort создает полярную UV-карту и применяет ее через STMap, в результате чего изображение деформируется по углу и расстоянию от центра. Карта кодирует нормализованный угол и радиальное расстояние, а затем передает эти каналы в качестве UV-координат.

Используйте его для быстрого радиального растяжения, скручивания или изменения формы, как у линзы, без необходимости ручного построения дерева STMap. Он подходит для креативных искажений и простых центрированных деформаций в стеке фильтров.

Вращение компенсирует угловую составляющую карты. Гамма-коррекция изменяет радиальный канал расстояния перед STMap, сужая или смягчая искажение по направлению к краям. Соедините изображение, установите вращение и гамму, а затем оцените результат в контексте.

Script code

set cut_paste_input [stack 0]
version 12.1 v4
push $cut_paste_input
Group {
 name radialDistort
 tile_color 0x421010ff
 selected true
 xpos -1126
 ypos 716
 addUserKnob {20 User l radialDistort}
 addUserKnob {7 rotation R -360 360}
 addUserKnob {7 gamma R 0 4}
 gamma 1.68
 addUserKnob {26 ""}
 addUserKnob {26 lbl l "" +STARTLINE T "RadialDistort v1.0"}
 addUserKnob {22 btn l DerekVFX.ca T "nuke.tcl('start', 'https://derekvfx.ca')" +STARTLINE}
}
 Input {
  inputs 0
  name Input
  xpos 447
  ypos 60
 }
set Nd732000 [stack 0]
 Multiply {
  value 0
  name Multiply1
  label "\[value value]"
  xpos 107
  ypos 286
 }
 Expression {
  temp_name0 radial
  temp_expr0 "((atan(x - center.x, y - center.y) +radians(rotation) ) + pi()) / pi()/2"
  temp_name1 offset
  temp_expr1 "(radians(rotation) *-1 ) /pi()/2"
  expr0 radial
  expr1 "sqrt(((x-center.x)**2) + ((y-center.y)**2))/diag"
  expr2 offset
  expr3 0
  name Expression3
  label "\[knob expr3]"
  xpos 107
  ypos 336
  addUserKnob {20 User}
  addUserKnob {7 diag}
  diag {{(sqrt(width**2+height**2)/2)}}
  addUserKnob {12 center}
  center {978 404}
 }
 Gamma {
  channels {-rgba.red rgba.green -rgba.blue none}
  value {{gamma}}
  name Gamma1
  xpos 107
  ypos 444
 }
push $Nd732000
 STMap {
  inputs 2
  channels rgba
  uv rgb
  name STMap3
  xpos 447
  ypos 574
 }
 Output {
  name Output1
  xpos 456
  ypos 1028
 }
end_group