Node:Tiling And Offset
Graphic:色彩的形成
ShaderGraph:制作UV动画
ShaderGraph:基于已有颜色叠加
效果展示和资源
Node:Tiling And Offset
功能定义
平铺和位移输入的UV通过Tiling和Offset端口;通常用于UV动画。
端口介绍
代码生成
void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out)
{
Out = UV * Tiling + Offset;
}
Graphic:色彩的形成
色彩是以色光为主体的客观存在,人产生这种视象感觉基于三种因素:光、物体对光的反射、人的视觉器官眼睛。
基础颜色红绿蓝,人眼可见的七色光谱,赤橙黄绿青蓝紫;其他颜色的光则是由这些颜色的光组合而成;
例如,一张灰色的图片,我们可以取到R、G、B通道的数字,灰色的图片是由RGB来组合成的
ShaderGraph:制作UV动画
Thinking in logic
首先要获取到当前渲染图片的UV坐标,在ShaderGraph中,使用Postion选择Object下拉选项即可获取到本身的UV信息
动画需要一个Update的更新函数来处理,使用Time + 变量来处理,由于是UV坐标动画,需要一个二维度的变量来声明
最后使用Tiling And Offset来处理和输出结果
ShaderGraph:基于已有颜色叠加
一般来说,在输出一个颜色以后,通过Multiply一个数值,如果这个数值是个颜色值可以进行叠加
如果这个数值是一个一维度的数值,则可以进行密度叠加,更亮或更暗
源码
创建一个ShaderGraph PBR文件,复制黏贴代码:
{
"m_SerializedProperties": [
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.Vector2ShaderProperty"
},
"JSONnodeData": "{\n \"m_Value\": {\n \"x\": 1.0,\n \"y\": 1.0,\n \"z\": 0.0,\n \"w\": 0.0\n },\n \"m_Name\": \"Vector2 Tiling\",\n \"m_GeneratePropertyBlock\": true,\n \"m_Guid\": {\n \"m_GuidSerialized\": \"a1f1183c-826f-484d-836a-f47e86be36f3\"\n },\n \"m_OverrideReferenceName\": \"\"\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.Vector2ShaderProperty"
},
"JSONnodeData": "{\n \"m_Value\": {\n \"x\": 0.20000000298023225,\n \"y\": 0.20000000298023225,\n \"z\": 0.0,\n \"w\": 0.0\n },\n \"m_Name\": \"OffsetSpeed\",\n \"m_GeneratePropertyBlock\": true,\n \"m_Guid\": {\n \"m_GuidSerialized\": \"643658db-6a67-4d97-a516-a78709f9de91\"\n },\n \"m_OverrideReferenceName\": \"\"\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.Vector1ShaderProperty"
},
"JSONnodeData": "{\n \"m_Value\": 2.0,\n \"m_Name\": \"Intensity\",\n \"m_GeneratePropertyBlock\": true,\n \"m_Guid\": {\n \"m_GuidSerialized\": \"e4b076e7-0989-4113-a99d-c88ff8f58f3a\"\n },\n \"m_OverrideReferenceName\": \"\",\n \"m_FloatType\": 0,\n \"m_RangeValues\": {\n \"x\": 0.0,\n \"y\": 1.0\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.TextureShaderProperty"
},
"JSONnodeData": "{\n \"m_Value\": {\n \"m_SerializedTexture\": \"\",\n \"m_Guid\": \"1285420cb92f0a64595b450d08d0218f\"\n },\n \"m_Name\": \"Texture2D\",\n \"m_GeneratePropertyBlock\": true,\n \"m_Guid\": {\n \"m_GuidSerialized\": \"e46356f4-6d02-4ca2-8892-db72f9f92286\"\n },\n \"m_OverrideReferenceName\": \"\",\n \"m_Modifiable\": true,\n \"m_DefaultType\": 0\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.TextureShaderProperty"
},
"JSONnodeData": "{\n \"m_Value\": {\n \"m_SerializedTexture\": \"\",\n \"m_Guid\": \"71252e23924e4491c9cdcfed734fa027\"\n },\n \"m_Name\": \"Texture2D Overlay\",\n \"m_GeneratePropertyBlock\": true,\n \"m_Guid\": {\n \"m_GuidSerialized\": \"fd40232b-e0c0-4d9f-aaaf-3c64d7b92ed4\"\n },\n \"m_OverrideReferenceName\": \"\",\n \"m_Modifiable\": true,\n \"m_DefaultType\": 0\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.ColorShaderProperty"
},
"JSONnodeData": "{\n \"m_Value\": {\n \"r\": 0.0,\n \"g\": 0.24705882370471955,\n \"b\": 1.0,\n \"a\": 0.0\n },\n \"m_Name\": \"OverlayColor\",\n \"m_GeneratePropertyBlock\": true,\n \"m_Guid\": {\n \"m_GuidSerialized\": \"e3e78740-4a5d-41f2-9823-fa786cf111cd\"\n },\n \"m_OverrideReferenceName\": \"\",\n \"m_ColorMode\": 0,\n \"m_Hidden\": false\n}"
}
],
"m_GUID": {
"m_GuidSerialized": "cacf9699-5147-45e5-acb5-f2e368340a09"
},
"m_SerializableNodes": [
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.PropertyNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"6f796af6-7ca6-437b-9ee3-dbe675dfa11c\",\n \"m_Name\": \"Property\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -635.9302368164063,\n \"y\": -140.49493408203126,\n \"width\": 0.0,\n \"height\": 0.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"Intensity\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0,\\n \\\"m_Labels\\\": [\\n \\\"X\\\"\\n ]\\n}\"\n }\n ],\n \"m_PreviewExpanded\": true,\n \"m_PropertyGuidSerialized\": \"e4b076e7-0989-4113-a99d-c88ff8f58f3a\"\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.MultiplyNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"9c96aa21-e6bf-4e86-8124-8f6f319fb356\",\n \"m_Name\": \"Multiply\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -265.74908447265627,\n \"y\": 129.5364227294922,\n \"width\": 208.0,\n \"height\": 302.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicValueMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"A\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"A\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"e00\\\": 0.0,\\n \\\"e01\\\": 0.0,\\n \\\"e02\\\": 0.0,\\n \\\"e03\\\": 0.0,\\n \\\"e10\\\": 0.0,\\n \\\"e11\\\": 0.0,\\n \\\"e12\\\": 0.0,\\n \\\"e13\\\": 0.0,\\n \\\"e20\\\": 0.0,\\n \\\"e21\\\": 0.0,\\n \\\"e22\\\": 0.0,\\n \\\"e23\\\": 0.0,\\n \\\"e30\\\": 0.0,\\n \\\"e31\\\": 0.0,\\n \\\"e32\\\": 0.0,\\n \\\"e33\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"e00\\\": 1.0,\\n \\\"e01\\\": 0.0,\\n \\\"e02\\\": 0.0,\\n \\\"e03\\\": 0.0,\\n \\\"e10\\\": 0.0,\\n \\\"e11\\\": 1.0,\\n \\\"e12\\\": 0.0,\\n \\\"e13\\\": 0.0,\\n \\\"e20\\\": 0.0,\\n \\\"e21\\\": 0.0,\\n \\\"e22\\\": 1.0,\\n \\\"e23\\\": 0.0,\\n \\\"e30\\\": 0.0,\\n \\\"e31\\\": 0.0,\\n \\\"e32\\\": 0.0,\\n \\\"e33\\\": 1.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicValueMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"B\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"B\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"e00\\\": 2.0,\\n \\\"e01\\\": 2.0,\\n \\\"e02\\\": 2.0,\\n \\\"e03\\\": 2.0,\\n \\\"e10\\\": 2.0,\\n \\\"e11\\\": 2.0,\\n \\\"e12\\\": 2.0,\\n \\\"e13\\\": 2.0,\\n \\\"e20\\\": 2.0,\\n \\\"e21\\\": 2.0,\\n \\\"e22\\\": 2.0,\\n \\\"e23\\\": 2.0,\\n \\\"e30\\\": 2.0,\\n \\\"e31\\\": 2.0,\\n \\\"e32\\\": 2.0,\\n \\\"e33\\\": 2.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"e00\\\": 1.0,\\n \\\"e01\\\": 0.0,\\n \\\"e02\\\": 0.0,\\n \\\"e03\\\": 0.0,\\n \\\"e10\\\": 0.0,\\n \\\"e11\\\": 1.0,\\n \\\"e12\\\": 0.0,\\n \\\"e13\\\": 0.0,\\n \\\"e20\\\": 0.0,\\n \\\"e21\\\": 0.0,\\n \\\"e22\\\": 1.0,\\n \\\"e23\\\": 0.0,\\n \\\"e30\\\": 0.0,\\n \\\"e31\\\": 0.0,\\n \\\"e32\\\": 0.0,\\n \\\"e33\\\": 1.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicValueMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 2,\\n \\\"m_DisplayName\\\": \\\"Out\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"e00\\\": 0.0,\\n \\\"e01\\\": 0.0,\\n \\\"e02\\\": 0.0,\\n \\\"e03\\\": 0.0,\\n \\\"e10\\\": 0.0,\\n \\\"e11\\\": 0.0,\\n \\\"e12\\\": 0.0,\\n \\\"e13\\\": 0.0,\\n \\\"e20\\\": 0.0,\\n \\\"e21\\\": 0.0,\\n \\\"e22\\\": 0.0,\\n \\\"e23\\\": 0.0,\\n \\\"e30\\\": 0.0,\\n \\\"e31\\\": 0.0,\\n \\\"e32\\\": 0.0,\\n \\\"e33\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"e00\\\": 1.0,\\n \\\"e01\\\": 0.0,\\n \\\"e02\\\": 0.0,\\n \\\"e03\\\": 0.0,\\n \\\"e10\\\": 0.0,\\n \\\"e11\\\": 1.0,\\n \\\"e12\\\": 0.0,\\n \\\"e13\\\": 0.0,\\n \\\"e20\\\": 0.0,\\n \\\"e21\\\": 0.0,\\n \\\"e22\\\": 1.0,\\n \\\"e23\\\": 0.0,\\n \\\"e30\\\": 0.0,\\n \\\"e31\\\": 0.0,\\n \\\"e32\\\": 0.0,\\n \\\"e33\\\": 1.0\\n }\\n}\"\n }\n ],\n \"m_PreviewExpanded\": true\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.PropertyNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"a8186cd4-1368-45c7-bbd2-300181cd4c36\",\n \"m_Name\": \"Property\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -884.2890625,\n \"y\": -68.78567504882813,\n \"width\": 0.0,\n \"height\": 0.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector4MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"OverlayColor\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n }\n ],\n \"m_PreviewExpanded\": true,\n \"m_PropertyGuidSerialized\": \"e3e78740-4a5d-41f2-9823-fa786cf111cd\"\n}"
},
{
"typeInfo"