过程化纹理滤镜允许使用预定函数和用户定义的变量来执行多种像素处理。您完全可以使用可配置的参数来编写自己的滤镜。
此滤镜可以作为非破坏性的实时滤镜应用。可以通过图层菜单,从新建实时滤镜图层类别访问此滤镜。
在滤镜对话框中可调整下列设置:
滤镜有几个关键组件,必须理解才能有效使用:
var v=vec2(rx, ry); var clr=vec3(R,G,B);
scurveinterp(R, B, 0.5)
.这将在红色和蓝色通道数据之间进行插值,平衡/混合为 50%(因为余额可以是 0 和 1 之间的数值)。R/(a*2)
var v2=vec2(rx/w/2, ry/h/(b*2)); dir(v2*(a*2))*(c*2)
(括号以粗体突出显示)ry/h/(b*2)
算式的一部分。如果这个表达式不在括号中,结果会有所不同。perlin(rx, ry, a, b)
—其中 a 控制八度,b 控制持久性。以下是如何使用程序纹理过滤器的一些实际示例。自定义输入变量以粗体突出显示。要跟随它们,将代码行复制并粘贴到新的方程行中,必要时设置通道目标,然后在表条目后创建自定义输入。
var vignettew=vec2(rx, ry)/w; var vignetteh=vec2(rx, ry)/h; var productw=oscsc(vignettew); var producth=oscsc(vignetteh); scurveinterp(productw, producth, roundness)*(intensity*imultiplier)
针对所有三个通道(R、G、B)。使用混合模式,例如屏幕。
自定义输入类型 | 变量名 | 说明 |
---|---|---|
[0,1] 范围输入 | roundness | 用作 scurveinterp 中的变量以控制晕影圆度。 |
[0,1] 范围输入 | intensity | 此值乘以 scurveinterp 结果以修改晕影的强度(亮度)。 |
实数输入 | imultiplier | 此实数乘以 intensity 值以便对其进行缩放,从而产生更大范围的可实现亮度。 |
在这个表达式中,我们有四个变量声明:rx 和 ry 用于创建两个矢量结果:vignettew 和 vignetteh。矢量结果分别除以宽度和高度。之后通过使用 S 曲线振荡器 (oscsc) 计算 productw 和 producth。最后,我们使用 S 曲线插值 (scurveinterp) 在这两个乘积结果之间进行插值。两个结果之间的混合由 roundness 自定义输入控制,亮度按 intensity 和 imultiplier 自定义输入缩放。
因为 rx 和 ry 相对 X 和 Y 位置)用于矢量创建,用户可以在画布上单击并拖动以确定晕影的中心(原点)点。
当滤镜使用适当的混合模式时(建议使用实时滤镜版本),可以实现合适的晕影效果。
var v=vec2(rx,ry)/w; smoothoschlin(oschcr(v/(dsize*dmult)),dsmooth)
目标仅为 alpha 通道 (A)。
自定义输入类型 | 变量名 | 说明 |
---|---|---|
[0,1] 范围输入 | dsmooth | 控制蒙版边缘的平滑。 |
[0,1] 范围输入 | dsize | 确定蒙版的大小。 |
实数输入 | dmult | 比例 dsize 通过乘数来实现更大/更小的蒙版尺寸。 |
在这里,我们将使用 rx 和 ry 的矢量创建的结果分配到变量 v(将结果除以文档宽度,w)。然后将 v 结果通过带有 Catmull-Rom 样条 (oschcr) 的谐振子,然后它本身通过一个平滑的谐波线性振荡器 (smoothoschlin)。使用 oschcr 功能,v 除以 dsize*dmult,它控制整体大小。dsmooth 在 smoothoschlin 功能中使用,以影响边缘的平滑度和模糊。当通道目标设置为仅 alpha 时 (A),此表达式创建菱形 alpha 蒙版效果。
因为 rx 和 ry(相对 X 和 Y 位置)用于矢量创建,用户可以在画布上单击并拖动以修改蒙版效果的位置。
下面是可以在方程部分使用的函数表,其中:
如果函数使用 T 或 V 参数,则所有参数的矢量大小必须相同。它们不可互换。
函数 | 用法 | 注释 |
---|---|---|
常用数学 | ||
abs | abs(T) | 值舍入为绝对整数 |
acos | acos(T) | |
asin | asin(T) | |
atan | atan(T) | |
atan2 | atan2(T, T) | |
平均 | average(T, T, ...)(变量参数) | |
ceil | ceil(T) | 向上舍入值 |
copysign | copysign(T, T sign) | |
cos | cos(T) | |
dim | dim(T x, T y) | |
floor | floor(T) | 向下舍入值 |
fma | fma(T a, T b, T c) | 计算 (a*b) + c |
fmod | fmod(T, T) | |
fraction | fraction(T) | |
idiv | idiv(T, T) | |
irem | irem(T, T) | |
lerp | lerp(T a, T b, T t) | 两个值之间的平衡线性插值(取决于 0-1 之间的 t) |
max | max(T, T, ...)(变量参数) | |
mid | mid(T, T) | |
min | min(T, T, ...)(变量参数) | |
mix | mix(T a, T b, T t) | 与 lerp 相同 |
pow | pow(T x, T y) | x 的 y 次幂 |
powr | powr(T x, T y) | x 的 y 次幂,其中 x>0 |
round | round(T) | |
roundup | roundup(T) | |
rounddown | rounddown(T) | |
sign | sign(T) | |
sin | sin(T) | |
sq | sq(T) | |
sqrt | sqrt(T) | 平方根 |
tan | tan(T) | |
trunc | trunc(T) | truncate 的简写 |
truncate | truncate(T) | |
rgbtoi | rgbtoi(S r, S g, Sb) 或 rgbtoi(V rgb) | |
whole | whole(T) | |
数字范围转换 | ||
tocui | tocui(T) | 到闭合单位间隔 0-1 |
tohcui | tohcui(T) | 到闭合单位间隔 -1-1(谐波) |
钳位 | ||
saturate | saturate(T) | |
clamp | clamp(T) 或 clamp(T, T min, T max) | |
clampmin | clampmin(T, T min) | |
clampmax | clampmax(T, T max) | |
几何函数 | ||
cross | cross(V3, V3) | 计算两个 Vector3 (XYZ) 分量的叉积 |
dist | dist(V a, V b) | distance 的简写 |
dist_sq | dist_sq(V a, V b) | distance_squared 的简写 |
distance | distance(V a, V b) | |
distance_squared | distance_squared(V a, V b) | |
dot | dot(V, V) | |
length | length(V) 或 length(S, S, ...) | |
length_squared | length_squared(V) 或 length_squared(S, S, ...) | |
norm | norm(V) | normalise 或 normalize 的简写 |
normalise | normalise(V) | |
normalize | normalize(V) | |
矢量创建 | ||
vec2 | vec2(S) 或 vec2(S, S) | 适用于从 XY 定位创建矢量,例如 vec2(rx, ry) |
vec3 | vec3(S) 或 vec3(S, S, S) | 可用于从颜色数据创建矢量,例如 vec3(R, G, B) |
vec4 | vec4(S) 或 vec4(S, S, S, S) | |
vec5 | vec5(S) 或 vec5(S, S, S, S, S) | |
vec6 | vec6(S) 或 vec6(S, S, S, S, S, S) | |
tovec3 | tovec3(V) | |
tovec4 | tovec4(V) | |
tovec5 | tovec5(V) | |
tovec6 | tovec6(V) | |
矢量操作 | ||
rev | rev(V) | |
rotl | rotl(V) | 向左旋转矢量 |
rotr | rotr(V) | 向右旋转矢量 |
swap12 | swap12(V) | |
swap13 | swap13(V) | |
swap23 | swap23(V) | |
swapxy | swapxy(V) | |
swapxz | swapxz(V) | |
swapyz | swapyz(V) | |
swaprg | swaprg(V) | |
swaprb | swaprb(V) | |
swapgb | swapgb(V) | |
neg1 | neg1(V) | |
neg2 | neg2(V) | |
neg3 | neg3(V) | |
neg12 | neg12(V) | |
negx | negx(V) | |
negy | negy(V) | |
negz | negz(V) | |
negxy | negxy(V) | |
negr | negr(V) | |
negg | negg(V) | |
negb | negb(V) | |
negrg | negrg(V) | |
矢量应用工具 | ||
debump | debump(S r, S g, S b) | |
Interpolation | ||
scurveinterp | scurveinterp(T a, T b, T t) | |
sininterp | sininterp(T a, T b, T t) | |
cubicinterp | cubicinterp(T a, T b, T c, T d, T t) | |
scurveinterpolant | scurveinterpolant(T cui) | |
sininterpolant | sininterpolant(T cui) | |
scerp | scerp(T a, T b, T t) | scurveinterp 的简写 |
serp | serp(T a, T b, T t) | sininterp 的简写 |
cerp | cerp(T a, T b, T c, T d, T t) | cubicinterp 的简写 |
cubic | scerp(T a, T b, T c, T d, T t) | cubicinterp 的简写 |
scint | scint(T cui) | scurverinterpolant 的简写 |
sint | sint(T cui) | sininterpolant 的简写 |
阶跃 | ||
mapcui | mapcui(T v, T edge0, T edge1) | |
step | step(T edge, T v) | |
stepn | stepn(T edge, T v) | |
smoothsteplin | smoothsteplin(T edge0, T edge1, T v) 或 smoothsteplin(T in0, T in1, T out1, T out0, T v) | |
smoothstep | smoothstep(T edge0, T edge1, T v) 或 smoothstep(T in0, T in1, T out1, T out0, T v) | |
smoothstepsc | smoothstepsc(T edge0, T edge1, T v) 或 smoothstepsc(T in0, T in1, T out1, T out0, T v) | |
smoothstepsin | smoothstepsin(T edge0, T edge1, T v) 或 smoothstepsin(T in0, T in1, T out1, T out0, T v) | |
smoothstepcs | smoothstepcs(T edge0, T edge1, T v) 或 smoothstepcs(T in0, T in1, T out1, T out0, T v) | |
smoothstepsq | smoothstepsq(T edge0, T edge1, T v) 或 smoothstepsq(T in0, T in1, T out1, T out0, T v) | |
smoothstepsqi | smoothstepsqi(T edge0, T edge1, T v) 或 smoothstepsqi(T in0, T in1, T out1, T out0, T v) | |
smoothstepcb | smoothstepcb(T edge0, T edge1, T v) 或 smoothstepcb(T in0, T in1, T out1, T out0, T v) | |
smoothstepcbi | smoothstepcbi(T edge0, T edge1, T v) 或 smoothstepcbi(T in0, T in1, T out1, T out0, T v) | |
smoothstepsin | smoothstepsin(T edge0, T edge1, T v) 或 smoothstepsin(T in0, T in1, T out1, T out0, T v) | |
smoothstepsini | smoothstepsini(T edge0, T edge1, T v) 或 smoothstepsini(T in0, T in1, T out1, T out0, T v) | |
smoothstepcr | smoothstepcr(T edge0, T edge1, T v) 或 smoothstepcr(T in0, T in1, T out1, T out0, T v) | |
smoothstepcri | smoothstepcri(T edge0, T edge1, T v) 或 smoothstepcri(T in0, T in1, T out1, T out0, T v) | |
smoothsteprt | smoothsteprt(T edge0, T edge1, T v) 或 smoothsteprt(T in0, T in1, T out1, T out0, T v) | |
smoothsteprti | smoothsteprti(T edge0, T edge1, T v) 或 smoothsteprti(T in0, T in1, T out1, T out0, T v) | |
smoothstepnlin | smoothstepnlin(T edge1, T edge0, T v) | |
smoothstepn | smoothstepn(T edge1, T edge0, T v) | |
smoothstepnsc | smoothstepnsc(T edge1, T edge0, T v) | |
smoothstepnsin | smoothstepnsin(T edge1, T edge0, T v) | |
smoothstepncs | smoothstepncs(T edge1, T edge0, T v) | |
smoothstepnsq | smoothstepnsq(T edge1, T edge0, T v) | |
smoothstepnsqi | smoothstepnsqi(T edge1, T edge0, T v) | |
smoothstepncb | smoothstepncb(T edge1, T edge0, T v) | |
smoothstepncbi | smoothstepncbi(T edge1, T edge0, T v) | |
smoothstepnpsini | smoothstepnpsini(T edge1, T edge0, T v) | |
smoothstepncr | smoothstepncr(T edge1, T edge0, T v) | |
smoothstepncri | smoothstepncri(T edge1, T edge0, T v) | |
smoothstepnrt | smoothstepnrt(T edge1, T edge0, T v) | |
smoothstepnrti | smoothstepnrti(T edge1, T edge0, T v) | |
量子化 | ||
quantize | quantize(T band, T v) 或 quantize(T band, T smooth, T v) | |
quantizelin | quantizelin(T band, T smooth, T v) | |
quantizesc | quantizesc(T band, T smooth, T v) | |
quantizesin | quantizesin(T band, T smooth, T v) | |
quantizecs | quantizecs(T band, T smooth, T v) | |
振荡器 | ||
osci | osci(S) osci(S, S) osci(V2) |
标准振荡,接受标量或矢量输入 |
oscsc | oscsc(S) oscsc(S, S) oscsc(V2) |
使用 S-Curve 的振荡器 |
oscsin | oscsin(S) oscsin(S, S) oscsin(V2) |
|
osccs | osccs(S) osccs(S, S) osccs(V2) |
|
osccubic | osccubic(S) osccubic(S, S) osccubic(V2) |
|
oscsq | oscsq(S) oscsq(S, S) oscsq(V2) |
|
oscsqi | oscsqi(S) oscsqi(S, S) oscsqi(V2) |
|
osccb | osccb(S) osccb(S, S) osccb(V2) |
|
osccbi | osccbi(S) osccbi(S, S) osccbi(V2) |
|
oscpsin | oscpsin(S) oscpsin(S, S) oscpsin(V2) |
|
oscpsini | oscpsini(S) oscpsini(S, S) oscpsini(V2) |
|
osccr | osccr(S) osccr(S, S) osccr(V2) |
|
osccri | osccri(S) osccri(S, S) osccri(V2) |
|
oscrt | oscrt(S) oscrt(S, S) oscrt(V2) |
|
oscrti | oscrti(S) oscrti(S, S) oscrti(V2) |
|
smoothosclin | smoothosclin(S, S smoothingwidth) smoothosclin(S, S, S smoothingwidth) smoothosclin(V2, S smoothingwidth) |
|
smoothosc | smoothosc(S, S smoothingwidth) smoothosc(S, S, S smoothingwidth) smoothosc(V2, S smoothingwidth) |
|
smoothoscsc | smoothoscsc(S, S smoothingwidth) smoothoscsc(S, S, S smoothingwidth) smoothoscsc(V2, S smoothingwidth) |
|
smoothoscsin | smoothoscsin(S, S smoothingwidth) smoothoscsin(S, S, S smoothingwidth) smoothoscsin(V2, S smoothingwidth) |
|
smoothosccs | smoothosccs(S, S smoothingwidth) smoothosccs(S, S, S smoothingwidth) smoothosccs(V2, S smoothingwidth) |
|
谐波振荡器 | ||
oschi | oschi(S) oschi(S, S) oschi(V2) |
|
osch | osch(S) osch(S, S) osch(V2) |
|
oschsc | oschsc(S) oschsc(S, S) oschsc(V2) |
|
oschsin | oschsin(S) oschsin(S, S) oschsin(V2) |
|
oschcs | oschcs(S) oschcs(S, S) oschcs(V2) |
|
oschcubic | oschcubic(S) oschcubic(S, S) oschcubic(V2) |
|
oschsq | oschsq(S) oschsq(S, S) oschsq(V2) |
|
oschsqi | oschsqi(S) oschsqi(S, S) oschsqi(V2) |
|
oschcb | oschcb(S) oschcb(S, S) oschcb(V2) |
|
oschcbi | oschcbi(S) oschcbi(S, S) oschcbi(V2) |
|
oschhsin | oschhsin(S) oschhsin(S, S) oschhsin(V2) |
|
oschhsini | oschhsini(S) oschhsini(S, S) oschhsini(V2) |
|
oschcr | oschcr(S) oschcr(S, S) oschcr(V2) |
|
oschcri | oschcri(S) oschcri(S, S) oschcri(V2) |
|
oschrt | oschrt(S) oschrt(S, S) oschrt(V2) |
|
oschrti | oschrti(S) oschrti(S, S) oschrti(V2) |
|
smoothoschlin | smoothoschlin(S, S smoothingwidth) smoothoschlin(S, S, S smoothingwidth) smoothoschlin(V2, S smoothingwidth) |
|
smoothosch | smoothosch(S, S smoothingwidth) smoothosch(S, S, S smoothingwidth) smoothosch(V2, S smoothingwidth) |
|
smoothoschsc | smoothoschsc(S, S smoothingwidth) smoothoschsc(S, S, S smoothingwidth) smoothoschsc(V2, S smoothingwidth) |
|
smoothoschsin | smoothoschsin(S, S smoothingwidth) smoothoschsin(S, S, S smoothingwidth) smoothoschsin(V2, S smoothingwidth) |
|
smoothoschcs | smoothoschcs(S, S smoothingwidth) smoothoschcs(S, S, S smoothingwidth) smoothoschcs(V2, S smoothingwidth) |
|
简单噪声 | ||
noisei | noisei(S) noisei(S, S) noisei(S, S, S) noisei(V2) noisei(V3) |
|
noise | noise(S) noise(S, S) noise(S, S, S) noise(V2) noise(V3) |
线性噪声 |
noisesc | noisesc(S) noisesc(S, S) noisesc(S, S, S) noisesc(V2) noisesc(V3) |
S-Curve 噪声 |
noisesin | noisesin(S) noisesin(S, S) noisesin(S, S, S) noisesin(V2) noisesin(V3) |
|
noisecs | noisecs(S) noisecs(S, S) noisecs(S, S, S) noisecs(V2) noisecs(V3) |
|
noisecubic | noisecubic(S) noisecubic(S, S) noisecubic(S, S, S) noisecubic(V2) noisecubic(V3) |
|
noisesq | noisesq(S) noisesq(S, S) noisesq(S, S, S) noisesq(V2) noisesq(V3) |
|
noisesqi | noisesqi(S) noisesqi(S, S) noisesqi(S, S, S) noisesqi(V2) noisesqi(V3) |
|
noisecb | noisecb(S) noisecb(S, S) noisecb(S, S, S) noisecb(V2) noisecb(V3) |
|
noisecbi | noisecbi(S) noisecbi(S, S) noisecbi(S, S, S) noisecbi(V2) noisecbi(V3) |
|
noisepsin | noisepsin(S) noisepsin(S, S) noisepsin(S, S, S) noisepsin(V2) noisepsin(V3) |
|
noisepsini | noisepsini(S) noisepsini(S, S) noisepsini(S, S, S) noisepsini(V2) noisepsini(V3) |
|
noisecr | noisecr(S) noisecr(S, S) noisecr(S, S, S) noisecr(V2) noisecr(V3) |
|
noisecri | noisecri(S) noisecri(S, S) noisecri(S, S, S) noisecri(V2) noisecri(V3) |
|
noisert | noisert(S) noisert(S, S) noisert(S, S, S) noisert(V2) noisert(V3) |
|
noiserti | noiserti(S) noiserti(S, S) noiserti(S, S, S) noiserti(V2) noiserti(V3) |
|
谐波简单噪声 | ||
noisehi | noisehi(S) noisehi(S, S) noisehi(S, S, S) noisehi(V2) noisehi(V3) |
|
noiseh | noiseh(S) noiseh(S, S) noiseh(S, S, S) noiseh(V2) noiseh(V3) |
|
noisehsc | noisehsc(S) noisehsc(S, S) noisehsc(S, S, S) noisehsc(V2) noisehsc(V3) |
|
noisehsin | noisehsin(S) noisehsin(S, S) noisehsin(S, S, S) noisehsin(V2) noisehsin(V3) |
|
noisehcs | noisehcs(S) noisehcs(S, S) noisehcs(S, S, S) noisehcs(V2) noisehcs(V3) |
|
noisehcubic | noisehcubic(S) noisehcubic(S, S) noisehcubic(S, S, S) noisehcubic(V2) noisehcubic(V3) |
|
noisehsq | noisehsq(S) noisehsq(S, S) noisehsq(S, S, S) noisehsq(V2) noisehsq(V3) |
|
noisehsqi | noisehsqi(S) noisehsqi(S, S) noisehsqi(S, S, S) noisehsqi(V2) noisehsqi(V3) |
|
noisehcb | noisehcb(S) noisehcb(S, S) noisehcb(S, S, S) noisehcb(V2) noisehcb(V3) |
|
noisehcbi | noisehcbi(S) noisehcbi(S, S) noisehcbi(S, S, S) noisehcbi(V2) noisehcbi(V3) |
|
noisehpsin | noisehpsin(S) noisehpsin(S, S) noisehpsin(S, S, S) noisehpsin(V2) noisehpsin(V3) |
|
noisehpsini | noisehpsini(S) noisehpsini(S, S) noisehpsini(S, S, S) noisehpsini(V2) noisehpsini(V3) |
|
noisehcr | noisehcr(S) noisehcr(S, S) noisehcr(S, S, S) noisehcr(V2) noisehcr(V3) |
|
noisehcri | noisehcri(S) noisehcri(S, S) noisehcri(S, S, S) noisehcri(V2) noisehcri(V3) |
|
noisehrt | noisehrt(S) noisehrt(S, S) noisehrt(S, S, S) noisehrt(V2) noisehrt(V3) |
|
noisehrti | noisehrti(S) noisehrti(S, S) noisehrti(S, S, S) noisehrti(V2) noisehrti(V3) |
|
Perlin 噪声 | ||
perlin | perlin(S x, I octaves, S persistence) perlin(S x, S y, I octaves, S persistence) perlin(V2 pt, I octaves, S persistence) |
|
perlinsc | perlinsc(S x, I octaves, S persistence) perlinsc(S x, S y, I octaves, S persistence) perlinsc(V2 pt, I octaves, S persistence) |
|
perlinsin | perlinsin(S x, I octaves, S persistence) perlinsin(S x, S y, I octaves, S persistence) perlinsin(V2 pt, I octaves, S persistence) |
|
perlincubic | perlincubic(S x, I octaves, S persistence) perlincubic(S x, S y, I octaves, S persistence) perlincubic(V2 pt, I octaves, S persistence) |
|
perlincs | perlincs(S x, I octaves, S persistence) perlincs(S x, S y, I octaves, S persistence) perlincs(V2 pt, I octaves, S persistence) |
|
谐波 Perlin 噪音 | ||
perlinh | perlinh(S x, I octaves, S persistence) perlinh(S x, S y, I octaves, S persistence) perlinh(V2 pt, I octaves, S persistence) |
|
perlinhsc | perlinhsc(S x, I octaves, S persistence) perlinhsc(S x, S y, I octaves, S persistence) perlinhsc(V2 pt, I octaves, S persistence) |
|
perlinhsin | perlinhsin(S x, I octaves, S persistence) perlinhsin(S x, S y, I octaves, S persistence) perlinhsin(V2 pt, I octaves, S persistence) |
|
perlinhcubic | perlinhcubic(S x, I octaves, S persistence) perlinhcubic(S x, S y, I octaves, S persistence) perlinhcubic(V2 pt, I octaves, S persistence) |
|
perlinhcs | perlinhcs(S x, I octaves, S persistence) perlinhcs(S x, S y, I octaves, S persistence) perlinhcs(V2 pt, I octaves, S persistence) |
|
Voronoi 噪音 | ||
cellnoise | cellnoise(S x, S y) cellnoise(S x, S y, S spread) |
|
cellnoise2 | cellnoise2(S x, S y, I degree) | |
cellnoisedist | cellnoisedist(S x, S y) cellnoisedist(S x, S y, S spread) |
|
cellnoiseedge | cellnoiseedge(S x, S y, S sz, S softness) | |
定向噪音 | ||
diri | diri(S) diri(S, S) diri(V2) |
|
dir | dir(S) dir(S, S) dir(V2) |
|
dirsc | dirsc(S) dirsc(S, S) dirsc(V2) |
|
dirsin | dirsin(S) dirsin(S, S) dirsin(V2) |
|
dircs | dircs(S) dircs(S, S) dircs(V2) |
|
udiri | udiri(S) udiri(S, S) udiri(V2) |
|
udir | udir(S) udir(S, S) udir(V2) |
|
udirsc | udirsc(S) udirsc(S, S) udirsc(V2) |
|
udirsin | udirsin(S) udirsin(S, S) udirsin(V2) |
|
udircs | udircs(S) udircs(S, S) udircs(V2) |
|
dir3i | dir3i(S) dir3i(S, S) dir3i(V2) |
|
dir3 | dir3(S) dir3(S, S) dir3(V2) |
|
dir3sc | dir3sc(S) dir3sc(S, S) dir3sc(V2) |
|
dir3sin | dir3sin(S) dir3sin(S, S) dir3sin(V2) |
|
dir3cs | dir3cs(S) dir3cs(S, S) dir3cs(V2) |
|
udir3i | udir3i(S) udir3i(S, S) udir3i(V2) |
|
udir3 | udir3(S) udir3(S, S) udir3(V2) |
|
udir3sc | udir3sc(S) udir3sc(S, S) udir3sc(V2) |
|
udir3sin | udir3sin(S) udir3sin(S, S) udir3sin(V2) |
|
udir3cs | udir3cs(S) udir3cs(S, S) udir3cs(V2) |