您的位置:首页 > 移动开发 > Unity3D

Unity Shader 内置固有函数

2017-04-12 10:37 381 查看
参考网址:http://www.cppblog.com/lai3d/archive/2008/10/23/64889.html


放在blog上看起来方便,这个是MSDN上的,DirectX Documentation里也有




Intrinsic Functions (DirectX HLSL)

The following table lists the intrinsic functions available in HLSL. Each function has a brief description, and a link to a reference page that has more detail about the input argument and return type.
NameSyntaxDescription
absabs(x)Absolute value (per component).
acosacos(x)Returns the arccosine of each component of x.
allall(x)Test if all components of x are nonzero.
anyany(x)Test if any component of x is nonzero.
asfloatasfloat(x)Convert the input type to a float.
asinasin(x)Returns the arcsine of each component of x.
asintasint(x)Convert the input type to an integer.
asuintasuint(x)Convert the input type to an unsigned integer.
atanatan(x)Returns the arctangent of x.
atan2atan2(y, x)Returns the arctangent of of two values (x,y).
ceilceil(x)Returns the smallest integer which is greater than or equal to x.
clampclamp(x, min, max)Clamps x to the range [min, max].
clipclip(x)Discards the current pixel, if any component of x is less than zero.
coscos(x)Returns the cosine of x.
coshcosh(x)Returns the hyperbolic cosine of x.
crosscross(x, y)Returns the cross product of two 3D vectors.
D3DCOLORtoUBYTE4D3DCOLORtoUBYTE4(x)Swizzles and scales components of the 4D vector x to compensate for the lack of UBYTE4 support in some hardware.
ddxddx(x)Returns the partial derivative of x with respect to the screen-space x-coordinate.
ddyddy(x)Returns the partial derivative of x with respect to the screen-space y-coordinate.
degreesdegrees(x)Converts x from radians to degrees.
determinantdeterminant(m)Returns the determinant of the square matrix m.
distancedistance(x, y)Returns the distance between two points.
dotdot(x, y)Returns the dot product of two vectors.
expexp(x)Returns the base-e exponent.
exp2exp2(x)Base 2 exponent (per component).
faceforwardfaceforward(n, i, ng)Returns -n * sign(•(i, ng)).
floorfloor(x)Returns the greatest integer which is less than or equal to x.
fmodfmod(x, y)Returns the floating point remainder of x/y.
fracfrac(x)Returns the fractional part of x.
frexpfrexp(x, exp)Returns the mantissa and exponent of x.
fwidthfwidth(x)Returns abs(ddx(x)) + abs(ddy(x))
GetRenderTargetSampleCountGetRenderTargetSampleCount()Returns the number of render-target samples.
GetRenderTargetSamplePositionGetRenderTargetSamplePosition(x)Returns a sample position (x,y) for a given sample index.
isfiniteisfinite(x)Returns true if x is finite, false otherwise.
isinfisinf(x)Returns true if x is +INF or -INF, false otherwise.
isnanisnan(x)Returns true if x is NAN or QNAN, false otherwise.
ldexpldexp(x, exp)Returns x * 2exp
lengthlength(v)Returns the length of the vector v.
lerplerp(x, y, s)Returns x + s(y - x).
litlit(n • l, n • h, m)Returns a lighting vector (ambient, diffuse, specular, 1)
loglog(x)Returns the base-e logarithm of x.
log10log10(x)Returns the base-10 logarithm of x.
log2log2(x)Returns the base-2 logarithm of x.
maxmax(x, y)Selects the greater of x and y.
minmin(x, y)Selects the lesser of x and y.
modfmodf(x, out ip)Splits the value x into fractional and integer parts.
mulmul(x, y)Performs matrix multiplication using x and y.
noisenoise(x)Generates a random value using the Perlin-noise algorithm.
normalizenormalize(x)Returns a normalized vector.
powpow(x, y)Returns xy.
radiansradians(x)Converts x from degrees to radians.
reflectreflect(i, n)Returns a reflection vector.
refractrefract(i, n, R)Returns the refraction vector.
roundround(x)Rounds x to the nearest integer
rsqrtrsqrt(x)Returns 1 / sqrt(x)
saturatesaturate(x)Clamps x to the range [0, 1]
signsign(x)Computes the sign of x.
sinsin(x)Returns the sine of x
sincossincos(x, out s, out c)Returns the sine and cosine of x.
sinhsinh(x)Returns the hyperbolic sine of x
smoothstepsmoothstep(min, max, x)Returns a smooth Hermite interpolation between 0 and 1.
sqrtsqrt(x)Square root (per component)
stepstep(a, x)Returns (x >= a) ? 1 : 0
tantan(x)Returns the tangent of x
tanhtanh(x)Returns the hyperbolic tangent of x
tex1Dtex1D(s, t)1D texture lookup.
tex1Dbiastex1Dbias(s, t)1D texture lookup with bias.
tex1Dgradtex1Dgrad(s, t, ddx, ddy)1D texture lookup with a gradient.
tex1Dlodtex1Dlod(s, t)1D texture lookup with LOD.
tex1Dprojtex1Dproj(s, t)1D texture lookup with projective divide.
tex2Dtex2D(s, t)2D texture lookup.
tex2Dbiastex2Dbias(s, t)2D texture lookup with bias.
tex2Dgradtex2Dgrad(s, t, ddx, ddy)2D texture lookup with a gradient.
tex2Dlodtex2Dlod(s, t)2D texture lookup with LOD.
tex2Dprojtex2Dproj(s, t)2D texture lookup with projective divide.
tex3Dtex3D(s, t)3D texture lookup.
tex3Dbiastex3Dbias(s, t)3D texture lookup with bias.
tex3Dgradtex3Dgrad(s, t, ddx, ddy)3D texture lookup with a gradient.
tex3Dlodtex3Dlod(s, t)3D texture lookup with LOD.
tex3Dprojtex3Dproj(s, t)3D texture lookup with projective divide.
texCUBEtexCUBE(s, t)Cube texture lookup.
texCUBEbiastexCUBEbias(s, t)Cube texture lookup with bias.
texCUBEgradtexCUBEgrad(s, t, ddx, ddy)Cube texture lookup with a gradient.
texCUBElodtex3Dlod(s, t)Cube texture lookup with LOD.
texCUBEprojtexCUBEproj(s, t)Cube texture lookup with projective divide.
transposetranspose(m)Returns the transpose of the matrix m.
trunctrunc(x)Truncates floating-point value(s) to integer value(s)


表 3-1 HLSL内置函数
函数名            用法

abs                         计算输入值的绝对值。
acos                        返回输入值反余弦值。
all                           测试非0值。
any                         测试输入值中的任何非零值。
asin                         返回输入值的反正弦值。
atan                        返回输入值的反正切值。
atan2                       返回y/x的反正切值。
ceil                         返回大于或等于输入值的最小整数。
clamp                      把输入值限制在[min, max]范围内。
clip                         如果输入向量中的任何元素小于0,则丢弃当前像素。
cos                         返回输入值的余弦。
cosh                       返回输入值的双曲余弦。
cross                      返回两个3D向量的叉积。
ddx                         返回关于屏幕坐标x轴的偏导数。
ddy                         返回关于屏幕坐标y轴的偏导数。
degrees                   弧度到角度的转换
determinant              返回输入矩阵的值。
distance                   返回两个输入点间的距离。
dot                          返回两个向量的点积。
exp                         返回以e为底数,输入值为指数的指数函数值。
exp2                       返回以2为底数,输入值为指数的指数函数值。
faceforward             检测多边形是否位于正面。
floor                       返回小于等于x的最大整数。
fmod                       返回a / b的浮点余数。
frac                        返回输入值的小数部分。
frexp                       返回输入值的尾数和指数
fwidth                     返回 abs ( ddx (x) + abs ( ddy(x))。
isfinite                     如果输入值为有限值则返回true,否则返回false。
isinf                        如何输入值为无限的则返回true。
isnan                       如果输入值为NAN或QNAN则返回true。
ldexp                       frexp的逆运算,返回 x * 2 ^ exp。
len / lenth                返回输入向量的长度。
lerp                         对输入值进行插值计算。
lit                            返回光照向量(环境光,漫反射光,镜面高光,1)。
log                          返回以e为底的对数。
log10                      返回以10为底的对数。
log2                        返回以2为底的对数。
max                        返回两个输入值中较大的一个。
min                         返回两个输入值中较小的一个。
modf                       把输入值分解为整数和小数部分。
mul                         返回输入矩阵相乘的积。
normalize                 返回规范化的向量,定义为 x / length(x)。
pow                        返回输入值的指定次幂。
radians                    角度到弧度的转换。
reflect                     返回入射光线i对表面法线n的反射光线。
refract                     返回在入射光线i,表面法线n,折射率为eta下的折射光线v。
round                      返回最接近于输入值的整数。
rsqrt                       返回输入值平方根的倒数。
saturate                   把输入值限制到[0, 1]之间。
sign                        计算输入值的符号。
sin                          计算输入值的正弦值。
sincos                     返回输入值的正弦和余弦值。
sinh                        返回x的双曲正弦。
smoothstep              返回一个在输入值之间平稳变化的插值。
sqrt                         返回输入值的平方根。
step                        返回(x >= a)? 1 : 0。
tan                          返回输入值的正切值。
fanh                        返回输入值的双曲线切线。
transpose                 返回输入矩阵的转置。
tex1D*                    1D纹理查询。
tex2D*                    2D纹理查询。
tex3D*                    3D纹理查询。

texCUBE*                立方纹理查询。

Intrinsic Functions (DirectX HLSL)

The following table lists the intrinsic functions available in HLSL. Each function has a brief description, and a link to a reference page that has more detail about the input argument and return type.

NameDescriptionMinimum shader model
absAbsolute value (per component).11
acosReturns the arccosine of each component of x.11
allTest if all components of x are nonzero.11
AllMemoryBarrierBlocks execution of all threads in a group until all memory accesses have been completed.5
AllMemoryBarrierWithGroupSyncBlocks execution of all threads in a group until all memory accesses have been completed and all threads in the group have reached this call.5
anyTest if any component of x is nonzero.11
asdoubleReinterprets a cast value into a double.5
asfloatConvert the input type to a float.4
asinReturns the arcsine of each component of x.11
asintConvert the input type to an integer.4
asuintReinterprets the bit pattern of a 64-bit type to a uint.5
asuintConvert the input type to an unsigned integer.4
atanReturns the arctangent of x.11
atan2Returns the arctangent of of two values (x,y).11
ceilReturns the smallest integer which is greater than or equal to x.11
clampClamps x to the range [min, max].11
clipDiscards the current pixel, if any component of x is less than zero.11
cosReturns the cosine of x.11
coshReturns the hyperbolic cosine of x.11
countbitsCounts the number of bits (per component) in the input integer.5
crossReturns the cross product of two 3D vectors.11
D3DCOLORtoUBYTE4Swizzles and scales components of the 4D vector xto compensate for the lack of UBYTE4 support in some hardware.11
ddxReturns the partial derivative of x with respect to the screen-space x-coordinate.21
ddx_coarseComputes a low precision partial derivative with respect to the screen-space x-coordinate.5
ddx_fineComputes a high precision partial derivative with respect to the screen-space x-coordinate.5
ddyReturns the partial derivative of x with respect to the screen-space y-coordinate.21
ddy_coarseComputes a low precision partial derivative with respect to the screen-space y-coordinate.5
ddy_fineComputes a high precision partial derivative with respect to the screen-space y-coordinate.5
degreesConverts x from radians to degrees.11
determinantReturns the determinant of the square matrix m.11
DeviceMemoryBarrierBlocks execution of all threads in a group until all device memory accesses have been completed.5
DeviceMemoryBarrierWithGroupSyncBlocks execution of all threads in a group until all device memory accesses have been completed and all threads in the group have reached this call.5
distanceReturns the distance between two points.11
dotReturns the dot product of two vectors.1
dstCalculates a distance vector.5
EvaluateAttributeAtCentroidEvaluates at the pixel centroid.5
EvaluateAttributeAtSampleEvaluates at the indexed sample location.5
EvaluateAttributeSnappedEvaluates at the pixel centroid with an offset.5
expReturns the base-e exponent.11
exp2Base 2 exponent (per component).11
f16tof32Converts the float16 stored in the low-half of the uint to a float.5
f32tof16Converts an input into a float16 type.5
faceforwardReturns -n * sign(dot(i, ng)).11
firstbithighGets the location of the first set bit starting from the highest order bit and working downward, per component.5
firstbitlowReturns the location of the first set bit starting from the lowest order bit and working upward, per component.5
floorReturns the greatest integer which is less than or equal to x.11
fmodReturns the floating point remainder of x/y.11
fracReturns the fractional part of x.11
frexpReturns the mantissa and exponent of x.21
fwidthReturns abs(ddx(x)) + abs(ddy(x))21
GetRenderTargetSampleCountReturns the number of render-target samples.4
GetRenderTargetSamplePositionReturns a sample position (x,y) for a given sample index.4
GroupMemoryBarrierBlocks execution of all threads in a group until all group shared accesses have been completed.5
GroupMemoryBarrierWithGroupSyncBlocks execution of all threads in a group until all group shared accesses have been completed and all threads in the group have reached this call.5
InterlockedAddPerforms a guaranteed atomic add of value to the dest resource variable.5
InterlockedAndPerforms a guaranteed atomic and.5
InterlockedCompareExchangeAtomically compares the input to the comparison value and exchanges the result.5
InterlockedCompareStoreAtomically compares the input to the comparison value.5
InterlockedExchangeAssigns value to dest and returns the original value.5
InterlockedMaxPerforms a guaranteed atomic max.5
InterlockedMinPerforms a guaranteed atomic min.5
InterlockedOrPerforms a guaranteed atomic or.5
InterlockedXorPerforms a guaranteed atomic xor.5
isfiniteReturns true if x is finite, false otherwise.11
isinfReturns true if x is +INF or -INF, false otherwise.11
isnanReturns true if x is NAN or QNAN, false otherwise.11
ldexpReturns x * 2exp11
lengthReturns the length of the vector v.11
lerpReturns x + s(y - x).11
litReturns a lighting vector (ambient, diffuse, specular, 1)11
logReturns the base-e logarithm of x.11
log10Returns the base-10 logarithm of x.11
log2Returns the base-2 logarithm of x.11
madPerforms an arithmetic multiply/add operation on three values.5
maxSelects the greater of x and y.11
minSelects the lesser of x and y.11
modfSplits the value x into fractional and integer parts.11
mulPerforms matrix multiplication using x and y.1
noiseGenerates a random value using the Perlin-noise algorithm.11
normalizeReturns a normalized vector.11
powReturns xy.11
Process2DQuadTessFactorsAvgGenerates the corrected tessellation factors for a quad patch.5
Process2DQuadTessFactorsMaxGenerates the corrected tessellation factors for a quad patch.5
Process2DQuadTessFactorsMinGenerates the corrected tessellation factors for a quad patch.5
ProcessIsolineTessFactorsGenerates the rounded tessellation factors for an isoline.5
ProcessQuadTessFactorsAvgGenerates the corrected tessellation factors for a quad patch.5
ProcessQuadTessFactorsMaxGenerates the corrected tessellation factors for a quad patch.5
ProcessQuadTessFactorsMinGenerates the corrected tessellation factors for a quad patch.5
ProcessTriTessFactorsAvgGenerates the corrected tessellation factors for a tri patch.5
ProcessTriTessFactorsMaxGenerates the corrected tessellation factors for a tri patch.5
ProcessTriTessFactorsMinGenerates the corrected tessellation factors for a tri patch.5
radiansConverts x from degrees to radians.1
rcpCalculates a fast, approximate, per-component reciprocal.5
reflectReturns a reflection vector.1
refractReturns the refraction vector.11
reversebitsReverses the order of the bits, per component.5
roundRounds x to the nearest integer11
rsqrtReturns 1 / sqrt(x)11
saturateClamps x to the range [0, 1]1
signComputes the sign of x.11
sinReturns the sine of x11
sincosReturns the sine and cosine of x.11
sinhReturns the hyperbolic sine of x11
smoothstepReturns a smooth Hermite interpolation between 0 and 1.11
sqrtSquare root (per component)11
stepReturns (x >= a) ? 1 : 011
tanReturns the tangent of x11
tanhReturns the hyperbolic tangent of x11
tex1D(s, t)1D texture lookup.1
tex1D(s, t, ddx, ddy)1D texture lookup.21
tex1Dbias1D texture lookup with bias.21
tex1Dgrad1D texture lookup with a gradient.21
tex1Dlod1D texture lookup with LOD.31
tex1Dproj1D texture lookup with projective divide.21
tex2D(s, t)2D texture lookup.11
tex2D(s, t, ddx, ddy)2D texture lookup.21
tex2Dbias2D texture lookup with bias.21
tex2Dgrad2D texture lookup with a gradient.21
tex2Dlod2D texture lookup with LOD.3
tex2Dproj2D texture lookup with projective divide.21
tex3D(s, t)3D texture lookup.11
tex3D(s, t, ddx, ddy)3D texture lookup.21
tex3Dbias3D texture lookup with bias.21
tex3Dgrad3D texture lookup with a gradient.21
tex3Dlod3D texture lookup with LOD.31
tex3Dproj3D texture lookup with projective divide.21
texCUBE(s, t)Cube texture lookup.11
texCUBE(s, t, ddx, ddy)Cube texture lookup.21
texCUBEbiasCube texture lookup with bias.21
texCUBEgradCube texture lookup with a gradient.21
texCUBElodCube texture lookup with LOD.31
texCUBEprojCube texture lookup with projective divide.21
transposeReturns the transpose of the matrix m.1
truncTruncates floating-point value(s) to integer value(s)1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  unity 函数