CompStart

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

CompStart

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

Обучение

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

Tools

Tech CheckDisplay CheckMotion BlurPhysLightNuke Tools

Компания

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

Проекты

Moray RenderEXR ConverterOCIO.ccNuke ToolsDerekVFX

Follow

YouTubeInstagramTikTokThreadsКонтакты

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

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

ToolSets / Filter
Filter

2026-09-07

ToolSets/filter/radialDistort.nk

фильтр
искажать
деформация
stmap
радиальный
ув
трансформировать
Открыть на GitHub

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

Радиальное искажение деформирует входящее изображение с помощью СТМ-карты, UV-координаты которой построены в полярном пространстве. Вращение смещает угловую составляющую карты. Гамма применяется к каналу нормализованного радиуса перед СТМ-картой, поэтому она определяет, как происходит плавное искажение от центра к краю.

Используйте его, когда вам нужно простое радиальное скручивание или растяжение на основе расстояния на изображении или рендере без необходимости самостоятельно настраивать UV-координаты. Два элемента управления охватывают наиболее распространенный случай: вращение для величины скручивания, гамма для радиального отклика.

Группа генерирует UV-координаты в формате RGB (угол поворота, радиус с гамма-взвешиванием, смещение поворота), отображает исходный сигнал через STMap в формате RGBA и выводит переотображенное изображение. Затем вставляется в качестве фильтра, задаются угол поворота и гамма-коррекция, после чего композиция продолжается.

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