unity 之 ShaderGraph 四

Channel Nodes

 

CombineFlip
ImageImage
 控制输出颜色的每个通道.相当于自己创建一个颜色调节各个通道的对比度
SplitSwizzle
ImageImage
分离色调

在每个通道的基础上反转输入的颜色

  

Combine Node

 根据自己输入的RGBA值来创建一个新的颜色

Ports

NameDirectionTypeBindingDescription
RInputVector 1NoneDefines red channel of output
GInputVector 1NoneDefines green channel of output
BInputVector 1NoneDefines blue channel of output
AInputVector 1NoneDefines alpha channel of output
RGBAOutputVector 4NoneOutput value as Vector 4
RGBOutputVector 3NoneOutput value as Vector 3
RGOutputVector 2NoneOutput value as Vector 2

Generated Code Example

The following example code represents one possible outcome of this node.

void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG)
{
    RGBA = float4(R, G, B, A);
    RGB = float3(R, G, B);
    RG = float2(R, G);
}

Flip Node

将节点参数选择的输入的各个通道翻转。正的值变成负的值,反之亦然,只显示打勾的通道所构成的颜色

Ports

NameDirectionTypeBindingDescription
InInputDynamic VectorNoneInput value
OutOutputDynamic VectorNoneOutput value

Controls

NameTypeOptionsDescription
RedToggleTrue, FalseIf true red channel will be flipped.
GreenToggleTrue, FalseIf true green channel will be flipped. Disabled if In is Vector 1.
BlueToggleTrue, FalseIf true blue channel will be flipped. Disabled if In is Vector 2 or smaller.
AlphaToggleTrue, FalseIf true alpha channel will be flipped. Disabled if In is Vector 3 or smaller.

Generated Code Example

The following example code represents one possible outcome of this node.

float2 _Flip_Flip = float4(Red, Green, Blue, Alpha);

void Unity_Flip_float4(float4 In, float4 Flip, out float4 Out)
{
    Out = (Flip * -2 + 1) * In;
}

Split Node

把输入的一个颜色分成四个通道. 如果维度中的输入向量小于4(向量4),则输入中不存在的输出值将为0。

Ports

NameDirectionTypeBindingDescription
InInputDynamic VectorNoneInput value
ROutputVector 1NoneRed channel from input
GOutputVector 1NoneGreen channel from input
BOutputVector 1NoneBlue channel from input
AOutputVector 1NoneAlpha channel from input

Generated Code Example

The following example code represents one possible outcome of this node.

float _Split_R = In[0];
float _Split_G = In[1];
float _Split_B = 0;
float _Split_A = 0;

Swizzle Node

创建与输入向量相同维度的新向量. 输出向量的通道与输入向量相同,但是根据节点上的下拉参数重新排序. 这叫做swizzling。通道下拉参数是动态的,取决于输入向量的维数的长度.不存在的通道的下拉菜单将被禁用,并且下拉菜单将只包含向量中存在的通道的条目。

Ports

NameDirectionTypeBindingDescription
InInputDynamic VectorNoneInput value
OutOutputDynamic VectorNoneOutput value

Controls

NameTypeOptionsDescription
Red outDropdownRed, Green, Blue, Alpha (depending on input vector dimension)Defines which input channel should be used in the output's red channel
Green outDropdownRed, Green, Blue, Alpha (depending on input vector dimension)Defines which input channel should be used in the output's green channel
Blue outDropdownRed, Green, Blue, Alpha (depending on input vector dimension)Defines which input channel should be used in the output's blue channel
Alpha outDropdownRed, Green, Blue, Alpha (depending on input vector dimension)Defines which input channel should be used in the output's alpha channel

Generated Code Example

The following example code represents one possible outcome of this node.

float4 _Swizzle_Out = In.xzyw;

 

Input Nodes:输入节点

Basic

BooleanColor
Image
  定义一个bool常量定义一个四维的颜色常量vector4.
ConstantInteger
ImageImage
在着色器中定义一个数学常量值的Vector 1顶一个一个整数
SliderTime
ImageImage
 定义一个slider,和属性差不多,只不过一个是属性,一个式常规变量提供对着色器中各种时间参数的访问。
Vector 1Vector 2
ImageImage
 定义一个Vector 1Defines a Vector 2 value in the shader.
Vector 3Vector 4
ImageImage
Defines a Vector 3 value in the shader.Defines a Vector 4 value in the shader.

Geometry

Bitangent VectorNormal Vector
Image
提供对网格顶点或片段的位元向量的访问.提供对网格顶点或片段的法向量的访问
PositionScreen Position
Image
Provides access to the mesh vertex or fragment's Position.Provides access to the mesh vertex or fragment's Screen Position.
Tangent VectorUV
Image
Provides access to the mesh vertex or fragment's Tangent Vector.提供访问网格顶点或片段的UV坐标。
Vertex ColorView Direction
Image
提供对网格顶点或片段顶点颜色的访问Provides access to the mesh vertex or fragment's View Direction vector.

Gradient

GradientSample Gradient
Image
 定义一个渐变色随时间变换的渐变色

Matrix

Matrix 2x2Matrix 3x3
在着色器中定义一个常数矩阵2x2值。Defines a constant Matrix 3x3 value in the shader.
Matrix 4x4Transformation Matrix
Image
Defines a constant Matrix 4x4 value in the shader.在着色器中为默认的单位变换矩阵定义一个常数矩阵4x4的值。

PBR

Dielectric SpecularMetal Reflectance
Image
Returns a Dielectric Specular F0 value for a physically based material.为physically based material.返回一个Dielectric Specular F0Returns a Metal Reflectance value for a physically based material.返回physically based material的金属反射值。

Scene

AmbientCamera
Image
提供对场景环境颜色值的访问。提供对当前相机的各种参数的访问
FogBaked GI
Image
提供对场景的雾参数的访问。Provides access to the Baked GI values at the vertex or fragment's position.
ObjectReflection Probe
提供对对象的各种参数的访问提供对对象最近的反射探测的访问
Scene ColorScene Depth
ImageImage
提供对当前摄像机的颜色缓冲区的访问。提供对当前摄像机深度缓冲区的访问
Screen 
Image 
提供对屏幕参数的访问。 

Texture

Cubemap AssetSample Cubemap
定义用于着色器Cubemap。对Cubemap进行采样,并返回一个Vector 4颜色值,以便在着色器中使用。
Sample Texture 2DSample Texture 2D Array
Image
Samples a Texture 2D and returns a color value for use in the shader.返回索引中的某个材质
Sample Texture 2D LODSample Texture 3D
ImageImage
Samples a Texture 2D at a specific LOD and returns a color value for use in the shader.Samples a Texture 3D and returns a color value for use in the shader.
Sampler StateTexel Size
ImageImage
Defines a Sampler State for sampling textures.返回纹理2D输入的texel大小的宽度和高度
Texture 2D Array AssetTexture 2D Asset
ImageImage
Defines a constant Texture 2D Array Asset for use in the shader.Defines a constant Texture 2D Asset for use in the shader.
Texture 3D Asset 
Image 
Defines a constant Texture 3D Asset for use in the shader. 

Boolean Node

定义一个bool值,可以和属性值相互转换通过convert to properties

Ports

NameDirectionTypeBindingDescription
OutOutputBooleanNoneOutput value

Controls

NameTypeOptionsDescription
 Toggle Defines the output value.

Generated Code Example

The following example code represents one possible outcome of this node.

float _Boolean = 1;

 

Color Node

定义一个颜色

Ports

NameDirectionTypeBindingDescription
OutOutputVector 4NoneOutput value

Controls

NameTypeOptionsDescription
 Color Defines the output value.
ModeDropdownDefault, HDRSets properties of the Color field

Generated Code Example

float4 _Color = IsGammaSpace() ? float4(1, 2, 3, 4) : float4(SRGBToLinear(float3(1, 2, 3)), 4);

Constant Node

定义一个数学常量

Ports

NameDirectionTypeBindingDescription
OutOutputVector 1NoneOutput value

Controls

NameTypeOptionsDescription
ModeDropdownPI, TAU, PHI, E, SQRT2Sets output constant value

Generated Code Example

The following example code represents one possible outcome of this node per constant type.

PI

float _Constant_PI = 3.1415926;

TAU

float _Constant_TAU = 6.28318530;

PHI

float _Constant_PHI = 1.618034;//黄金分割率φ  读fee

E

float _Constant_E = 2.718282;//自然数e

SQRT2

float _Constant_SQRT2 = 1.414214;//根号2

Time Node

Description

Provides access to various Time parameters in the shader.

Ports

NameDirectionTypeBindingDescription
TimeOutputVector 1NoneTime value
Sine TimeOutputVector 1NoneSine of Time value
Cosine TimeOutputVector 1NoneCosine of Time value
Delta TimeOutputVector 1NoneCurrent frame time
Smooth DeltaOutputVector 1NoneCurrent frame time smoothed

Generated Code Example

float Time_Time = _Time.y;
float Time_SineTime = _SinTime.w;
float Time_CosineTime = _CosTime.w;
float Time_DeltaTime = unity_DeltaTime.x;
float Time_SmoothDelta = unity_DeltaTime.z;

 

Ambient Node:环境光

获取场景中的环境光. 当环境光设置为 GradientColor/Sky 端口返回的是Sky Color. 当环境光设置为 ColorColor/Sky 返回的是 Ambient Color. Ports Equator and Ground 总是返回值赤道颜色和地面颜色,不管当前环境照明源

Note: 这个值只在播放模式或者是保存场景/工程时才会更新,保存shader是不会更新的

Note: 此节点的行为全局未定义. 着色器图形没有定义节点的功能.相反,每个呈现管道为这个节点定义执行什么HLSL代码。

不同的渲染管道可能产生不同的结果.如果你在一个渲染管道中构建一个着色器,你想在两个渲染管道中都使用,在使用之前先试一遍. 一个节点可能在一个呈现管道中定义,而在另一个管道中未定义。如果此节点未定义,则返回0(黑色)

Unity Pipelines Supported

  • Lightweight Render Pipeline

Ports

NameDirectionTypeBindingDescription
Color/SkyOutputVector 3NoneColor (Color) or Sky (Gradient) color value
EquatorOutputVector 3NoneEquator (Gradient) color value
GroundOutputVector 3NoneGround (Gradient) color value

Generated Code Example

The following example code represents one possible outcome of this node.

float3 _Ambient_ColorSky = SHADERGRAPH_AMBIENT_SKY;
float3 _Ambient_Equator = SHADERGRAPH_AMBIENT_EQUATOR;
float3 _Ambient_Ground = SHADERGRAPH_AMBIENT_GROUND;

Camera Node

Ports

NameDirectionTypeBindingDescription
PositionOutputVector 3NonePosition of the Camera's GameObject in world space摄像机的世界坐标
DirectionOutputVector 3NoneThe Camera's forward vector direction摄像机的forward向量
OrthographicOutputVector 1NoneReturns 1 if the Camera is orthographic, otherwise 0如果是正交模式,返回1,否则返回0
Near PlaneOutputVector 1None近视面的距离
Far PlaneOutputVector 1None远视面的距离
Z Buffer SignOutputVector 1NoneReturns -1 when using a reversed Z Buffer, otherwise 1使用反向Z缓冲区时返回-1,否则返回1
WidthOutputVector 1NoneThe Camera's width if orthographic正交模式下的的相机宽度
HeightOutputVector 1NoneThe Camera's height if orthographic正交模式下的相机高度

Generated Code Example

The following example code represents one possible outcome of this node.

float3 _Camera_Position = _WorldSpaceCameraPos;
float3 _Camera_Direction = -1 * mul(UNITY_MATRIX_M, transpose(mul(UNITY_MATRIX_I_M, UNITY_MATRIX_I_V)) [2].xyz);
float _Camera_Orthographic = unity_OrthoParams.w;
float _Camera_NearPlane = _ProjectionParams.y;
float _Camera_FarPlane = _ProjectionParams.z;
float _Camera_ZBufferSign = _ProjectionParams.x;
float _Camera_Width = unity_OrthoParams.x;
float _Camera_Height = unity_OrthoParams.y;

 

Object Node

Ports

NameDirectionTypeBindingDescription
PositionOutputVector 3NoneObject position in world space
ScaleOutputVector 3NoneObject scale in world space

Reflection Probe Node

Description

访问里物体最近的那个reflection probe, 需要 Normal and View Direction去采样probe. 通过使用LOD输入在不同的细节级别上采样,可以实现模糊效果。

 

Unity Pipelines Supported

  • Lightweight Render Pipeline

Ports

NameDirectionTypeBindingDescription
View DirInputVector 3View Direction (object space)Mesh's view direction
NormalInputVector 3Normal (object space)Mesh's normal vector
LODInputVector 1NoneLevel of detail for sampling
OutOutputVector 3NoneOutput color value

Generated Code Example

The following example code represents one possible outcome of this node.

void Unity_ReflectionProbe_float(float3 ViewDir, float3 Normal, float LOD, out float3 Out)
{
    Out = SHADERGRAPH_REFLECTION_PROBE(ViewDir, Normal, LOD);
}

Scene Color Node

Description

通过输入uv访问当前摄像机的颜色缓存,这个uv是标准化的屏幕坐标

Note:在 Lightweight Render Pipeline返回 Camera Opaque Texture.只对transparent物体有效. Set the Surface Type dropdown on the Material Options panel of the Master Node to Transparent to receive the correct values from this node.

NOTE: This Node can only be used in the Fragment Shader Stage.

Unity Pipelines Supported

  • Lightweight Render Pipeline
  • High Definition Render Pipeline

Ports

NameDirectionTypeBindingDescription
UVInputVector 4Screen PositionNormalized screen coordinates
OutOutputVector 3NoneOutput value

Generated Code Example

The following example code represents one possible outcome of this node.

void Unity_SceneColor_float(float4 UV, out float3 Out)
{
    Out = SHADERGRAPH_SAMPLE_SCENE_COLOR(UV);
}

Scene Depth Node

Description

使用输入UV访问当前相机的深度缓冲,它需要一个归一化的屏幕坐标

Note: Depth buffer 访问深度缓存需要当前的渲染管线打开深度缓存 .如果没有打开的话,这个节点是灰色的

自定义的渲染管线需要定义它的功能,如果没有定义,默认返回1

NOTE: 支持Fragment Shader Stage.

Unity Pipelines Supported

  • HD Render Pipeline
  • Lightweight Render Pipeline

Ports

NameDirectionTypeBindingDescription
UVInputVector 4Screen PositionNormalized screen coordinates
OutOutputVector 1NoneOutput value

Depth Sampling modes

NameDescription
Linear01在0和1之间的线性深度值
Raw原始的深度值
Eye深度转换为眼距单位

Generated Code Example

The following example code represents one possible outcome of this node.

void Unity_SceneDepth_Raw_float(float4 UV, out float Out)
{
    Out = SHADERGRAPH_SAMPLE_SCENE_DEPTH(UV);
}

 

Screen Node

Ports

NameDirectionTypeBindingDescription
WidthOutputVector 1None屏幕的宽度(以像素为单位)
HeightOutputVector 1None屏幕的高度(以像素为单位)

Generated Code Example

The following example code represents one possible outcome of this node.

float _Screen_Width = _ScreenParams.x;
float _Screen_Height = _ScreenParams.y;

Cubemap Asset Node

定义一个 Cubemap Asset . 要采样Cubemap Asset 应该和 Sample Cubemap Node一起使用,当使用单独的Cubemap Asset Node时,你可以通过不同的参数采样 Cubemap 两次,而不需要两次定义Cubemap本身。

Ports

NameDirectionTypeBindingDescription
OutOutputCubemapNoneOutput value

Controls

NameTypeOptionsDescription
 Object Field (Cubemap) Defines the cubemap asset from the project.

 

Sample Cubemap Node

对Cubemap进行采样,并返回一个Vector 4颜色值,以便在着色器中使用. 需要 View Direction and Normal输入来采样. 通过在不同的细节级别LOD上采样,可以实现模糊效果。您还可以使用自定义Sampler State采样

Ports

NameDirectionTypeBindingDescription
CubeInputCubemapNoneCubemap to sample
View DirInputVector 3View Direction (object space)Mesh's view direction
NormalInputVector 3Normal (object space)Mesh's normal vector
SamplerInputSampler StateDefault sampler stateSampler for the Cubemap
LODInputVector 1NoneLevel of detail for sampling
OutOutputVector 4NoneOutput value

Generated Code Example

The following example code represents one possible outcome of this node.

float4 _SampleCubemap_Out = SAMPLE_TEXTURECUBE_LOD(Cubemap, Sampler, reflect(-ViewDir, Normal), LOD);

 

Sample Texture 2D Node

Description

 对 Texture 2D 采样并返回一个Vector 4的颜色值,采样的意思就是把属性转换成能用的常规变量. 您可以使用输入UV覆盖UV坐标

要使用示例纹理2D节点对法线贴图进行采样,请将type下拉参数设置为normal

NOTE: 只能在Fragment Shader Stage. 在Vertex Shader Stage中对Texture 2D 采样,使用 Sample Texture 2D LOD Node instead.

Ports

NameDirectionTypeBindingDescription
TextureInputTexture 2DNoneTexture 2D to sample
UVInputVector 2UVMesh's normal vector
SamplerInputSampler StateDefault sampler stateSampler for the texture
RGBAOutputVector 4NoneOutput value as RGBA
ROutputVector 1Nonered (x) component of RGBA output
GOutputVector 1Nonegreen (y) component of RGBA output
BOutputVector 1Noneblue (z) component of RGBA output
AOutputVector 1Nonealpha (w) component of RGBA output

Controls

NameTypeOptionsDescription
TypeDropdownDefault, NormalSelects the texture type

 

Sample Texture 2D Array Node

Texture 2D Array采样,并返回一个Vector 4颜色值用于着色器. 使用索引输入来指定要采样的数组的索引。采样的意思就是把属性转换成能用的常规变量

NOTE: 此节点只能在片段着色器阶段使用 Fragment shader stage.

Ports

NameDirectionTypeBindingDescription
Texture ArrayInputTexture 2D ArrayNoneTexture 2D Array to sample
IndexInputVector 1NoneIndex of array to sample
UVInputVector 2UVMesh's normal vector
SamplerInputSampler StateDefault sampler stateSampler for the texture
RGBAOutputVector 4NoneOutput value as RGBA
ROutputVector 1Nonered (x) component of RGBA output
GOutputVector 1Nonegreen (y) component of RGBA output
BOutputVector 1Noneblue (z) component of RGBA output
AOutputVector 1Nonealpha (w) component of RGBA output

Generated Code Example

The following example code represents one possible outcome of this node.

float4 _SampleTexture2DArray_RGBA = SAMPLE_TEXTURE2D_ARRAY(Texture, Sampler, UV, Index);
float _SampleTexture2DArray_R = _SampleTexture2DArray_RGBA.r;
float _SampleTexture2DArray_G = _SampleTexture2DArray_RGBA.g;
float _SampleTexture2DArray_B = _SampleTexture2DArray_RGBA.b;
float _SampleTexture2DArray_A = _SampleTexture2DArray_RGBA.a;

 

Sample Texture 2D LOD Node

Texture 2D Array采样,并返回一个Vector 4颜色值用于着色器. 使用索引输入来指定要采样的数组的索引。采样的意思就是把属性转换成能用的常规变量. 使用LOD输入来调整示例的LOD级别

要使用示例纹理2D节点对法线贴图进行采样,请将type下拉参数设置为normal

这个可以在 vertex Shader StageTexture 进行采样,因为Sample Texture 2D Node 在这里不能用

Ports

NameDirectionTypeBindingDescription
TextureInputTexture 2DNoneTexture 2D to sample
UVInputVector 2UVMesh's normal vector
SamplerInputSampler StateDefault sampler stateSampler for the texture
LODInputVector 1NoneLevel of detail to sample
RGBAOutputVector 4NoneOutput value as RGBA
ROutputVector 1Nonered (x) component of RGBA output
GOutputVector 1Nonegreen (y) component of RGBA output
BOutputVector 1Noneblue (z) component of RGBA output
AOutputVector 1Nonealpha (w) component of RGBA output

Controls

NameTypeOptionsDescription
TypeDropdownDefault, NormalSelects the texture type

Default

float4 _SampleTexture2DLOD_RGBA = SAMPLE_TEXTURE2D_LOD(Texture, Sampler, UV, LOD);
float _SampleTexture2DLOD_R = _SampleTexture2DLOD_RGBA.r;
float _SampleTexture2DLOD_G = _SampleTexture2DLOD_RGBA.g;
float _SampleTexture2DLOD_B = _SampleTexture2DLOD_RGBA.b;
float _SampleTexture2DLOD_A = _SampleTexture2DLOD_RGBA.a;

Normal

float4 _SampleTexture2DLOD_RGBA = SAMPLE_TEXTURE2D_LOD(Texture, Sampler, UV, LOD);
_SampleTexture2DLOD_RGBA.rgb = UnpackNormalRGorAG(_SampleTexture2DLOD_RGBA);
float _SampleTexture2DLOD_R = _SampleTexture2DLOD_RGBA.r;
float _SampleTexture2DLOD_G = _SampleTexture2DLOD_RGBA.g;
float _SampleTexture2DLOD_B = _SampleTexture2DLOD_RGBA.b;
float _SampleTexture2DLOD_A = _SampleTexture2DLOD_RGBA.a;

Sample Texture 3D Node

Texture 3D 采样,并返回一个Vector 4颜色值用于着色器. 使用索引输入来指定要采样的数组的索引。采样的意思就是把属性转换成能用的常规变量

NOTE: 只能在 Fragment Shader Stage.使用

Ports

NameDirectionTypeBindingDescription
TextureInputTexture 3DNoneTexture 3D to sample
UVInputVector 3None3 dimnensional UV coordinates
SamplerInputSampler StateDefault sampler stateSampler for the texture
RGBAOutputVector 4NoneOutput value as RGBA

Generated Code Example

The following example code represents one possible outcome of this node.

float4 _SampleTexture3D_Out = SAMPLE_TEXTURE3D(Texture, Sampler, UV);

Sampler State Node

定义一个 Sampler State . 他应该和采样节点一起使用,比如:Sample Texture 2D Node.

当使用一个单独的采样状态节点时,您可以对一个纹理2D采样两次,使用不同的采样器参数,无需两次定义纹理本身。就是说一个材质可以使用两次,通过设置不同的参数

Ports

NameDirectionTypeBindingDescription
OutOutputSampler StateNoneOutput value

Controls

NameTypeOptionsDescription
FilterDropdownLinear, Point, TrilinearDefines filtering mode for sampling.
WrapDropdownRepeat, Clamp, Mirror, MirrorOnceDefines wrap mode for sampling.

Generated Code Example

The following example code represents one possible outcome of this node.

SamplerState _SamplerState_Out = _SamplerState_Linear_Repeat_sampler;

 

 

Texel Size Node

Description

返回纹理2D输入的texel大小的宽度和高度.使用内置的变量{texturename}_TexelSize来访问纹理2D的特殊属性。

Note: 不要直接使用从属性面板上拖下来的,那会报错,应该使用 Texture 2D Asset Node 来引用,然后再使用这个节点

Ports

NameDirectionTypeBindingDescription
TextureInputTextureNoneTexture asset
WidthOutputVector 1NoneTexel width
HeightOutputVector 1NoneTexel height

Generated Code Example

The following example code represents one possible outcome of this node.

float _TexelSize_Width = Texture_TexelSize.z; 
float _TexelSize_Height = Texture_TexelSize.w; 

 

Texture 2D Asset Node

定义一个 Texture 2D Asset 以供在shader中使用, Texture 2D Asset 应该和 Sample Texture 2D Node.一起使用

Ports

NameDirectionTypeDescription
OutOutputTexture 2DOutput value

Controls

NameTypeOptionsDescription
 Object Field (Texture) Defines the texture 3D asset from the project.

Generated Code Example

The following example code represents one possible outcome of this node.

TEXTURE2D(_Texture2DAsset); 
SAMPLER(sampler_Texture2DAsset);

 

Texture 2D Array Asset Node

定义一个 Texture 2D Array Asset在shader里使用. 它Tex应该和ture 2D Array Asset Sample Texture 2D Array Node一起使用. W,因为这样才能转化成可以用的材质,

Ports

NameDirectionTypeDescription
OutOutputTexture 2D ArrayOutput value

Controls

NameTypeOptionsDescription
 Object Field (Texture 2D Array) Defines the texture 2D array asset from the project.

Generated Code Example

The following example code represents one possible outcome of this node.

TEXTURE2D_ARRAY(_Texture2DArrayAsset); 
SAMPLER(sampler_Texture2DArrayAsset);

 

 

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TO_ZRG

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值