首先给出自定义主光源节点的源文件MainLight.hlsl #ifndefCUSTOM_LIGHTING_INCLUDED#defineCUSTOM_LIGHTING_INCLUDED#pragmamulti_compile _ _MAIN_LIGHT_SHADOWS#pragmamulti_compile _ _MAIN_LIGHT_SHADOWS_CASCADE#pragmamulti_compile _ _SHADOWS_SOFTvoidMainLight_float(float3WorldPos,outfloat3Direction,outfloat3Colo...
其中 MainLight 是自定义函数(通过 Custom Function 节点创建),选中 MainLight,在 Node Settings 中配置如下,SHADERGRAPH_PREVIEW 用来判断是否是预览窗口。 #ifSHADERGRAPH_PREVIEWDirection =half3(0.5,0.5,0); Color =half4(1,0,0,1);#elseLight light =GetMainLight(); Direction = light.direction; ...
配置完后,Main Camera 对象下面会自动添加 UniversalAddtionalCameraData 组件,Directional Light 对象下面会自动添加 UniversalAddtionalLightData 组件。 3 Shader Graph 窗口介绍 3.1 Shader Graph 的 创建 1)built-in 管线中创建 Shader Graph 在Assets 窗口右键,弹出菜单栏,依次选择【Create → Shader Graph → Bui...
MainLight:使用 Custom Function 节点(挂接到 CustomLighting.hlsl 中的 MainLight_float 方法)的 Sub Graph 资源。它将处理自阴影过程,对主光应用卡通着色和着色,并输出其对物体着色的最终贡献。 AdditionalLights:另一个 Sub Graph 资源,它执行相同的操作,但使用 AdditionalLights_float 方法来计算场景中所有附加光源...
我们可能会在其它位置使用该函数,让Custom Function节点可以重用的最简单方法,是把它包装到Sub Graph子视图中。选中节点和其分组,单击右键,选择Convert to Sub-graph。 我们把该子视图命名为Get Main Light。在子视图中,我们把需要的输出接口添加到子视图的输出节点,把节点的输出部分连接到子视图的输出部分。然后添加...
Light mainLight = GetMainLight(shadowCoord); Direction = mainLight.direction; Color = mainLight.color; DistanceAtten = mainLight.distanceAttenuation; #if !defined(_MAIN_LIGHT_SHADOWS) || defined(_RECEIVE_SHADOWS_OFF) ShadowAtten = 1.0h; ...
在4.1 节的基础上,修改 My Unlit Shader Graph 文件如下。 其中MainLight 是自定义函数(通过 Custom Function 节点创建),选中 MainLight,在 Node Settings 中配置如下,SHADERGRAPH_PREVIEW 用来判断是否是预览窗口。 #ifSHADERGRAPH_PREVIEWDirection=half3(0.5,0.5,0);Color=half4(1,0,0,1);#elseLight light=...
现在已经设置了镜面反射计算,我们可以返回到未点亮的图表,并通过创建节点菜单添加它。将衰减输出连接到直接镜面子图的颜色输入。接下来,将 Get Main Light 函数的Direction输出连接到 Specular Sub Graph 的Direction输入。将 NdotL*Attenuation 的结果添加到Direct SpecularSub Graph 的输出,并将其插入Color输出。
我们可能会在其它位置使用该函数,让Custom Function节点可以重用的最简单方法,是把它包装到Sub Graph子视图中。选中节点和其分组,单击右键,选择Convert to Sub-graph。 我们把该子视图命名为Get Main Light。在子视图中,我们把需要的输出接口添加到子视图的输出节点,把节点的输出部分连接到子视图的输出部分。然后添加...
unity shadergraph main preview不显示 unity shader normal 在Unity5.2及以上版本中,Unity一共提供了4中UnityShader模板供我们选择,分别是:UnlitShader、SurfaceShader、ImageEffectShader、ComputeShader。 SurfaceShader:会产生一个包含了标准光照模型的表面着色器模板,代码如下:...