Unity中ShaderGraph下获取主灯


前言

在上一篇文章中,我们知道了URP下获取主灯的方法。

在这篇文章中,我们来了解一下ShaderGraph下怎么获取主灯。方便我们之后,快速调试光照效果。


一、ShaderGraph获取主灯

1、创建ShaderGraph

在这里插入图片描述

2、创建一个自定义方法(Custom Function)节点

在这里插入图片描述

3、新建两个 Vector3 类型的输出变量

在这里插入图片描述

4、选择自定义节点程序体为 string 类型

  • 这里也可以选择文件类型,我们选择文本框形式,只是方便修改

5、编写程序体

  • 给定方法名
  • 判断 SHADERGRAPH_PREVIEW,让其在预览模式下不要报错
  • 通过 _MainLightPosition 获取主光方向
  • 通过 _MainLightColor 获取主光颜色
    在这里插入图片描述

6、我们输出主光方向看看效果

在这里插入图片描述

请添加图片描述

7、我们输出主光颜色看看效果

在这里插入图片描述
请添加图片描述

8、计算Lambert光照

  • 使用 主光方向向量 点积 法线向量

  • 获取法线
    在这里插入图片描述

  • 创建点积节点
    在这里插入图片描述

  • 得到 dot(N,L)
    在这里插入图片描述

  • 输出
    在这里插入图片描述
    在这里插入图片描述


二、测试节点图 及 测试代码

在这里插入图片描述

#if SHADERGRAPH_PREVIEW
Direction = 1;
Color = 1;
#else
Direction = _MainLightPosition.xyz;
Color = _MainLightColor.rgb;
#endif

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-01-21 12:44:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-21 12:44:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-21 12:44:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-21 12:44:01       20 阅读

热门阅读

  1. VUE v-if 和 v-show 区别和例子

    2024-01-21 12:44:01       25 阅读
  2. 句子逆序(机试)

    2024-01-21 12:44:01       30 阅读
  3. Stable Diffusion中的Embeddings

    2024-01-21 12:44:01       26 阅读
  4. 微服务架构所面临的技术问题

    2024-01-21 12:44:01       36 阅读
  5. http和https详细解析

    2024-01-21 12:44:01       28 阅读
  6. Ubuntu22 启动后只有鼠标没有桌面

    2024-01-21 12:44:01       27 阅读