Loading...
墨滴

SimFg

2021/10/20  阅读:22  主题:全栈蓝

Unity-Shader Graph你可能不知道的秘密

公众号:SimFG,期待与你相遇

环境:

Keyword含义

在添加Shader Graph参数Properties下有Keywords

Keyword视图
Keyword视图

个人理解:一个Shader可以编译出多种结果,类似于 Android手机App渠道的含义。

Android手机app渠道:比如说手机app开发完成后,需要发布到不同手机平台的应用商城,为了便于统计app数据和做一些平台的特色适配工作,如果每一个平台都单独开发一份代码,就过于冗余也不便于后续维护,解决方案就是渠道,也就是flavor,可以根据一个变量控制最终生成产物。

Percision-精度

节点和图都会有一个精度设置

节点精度
节点精度
图精度
图精度

Precision Type

Single(也就是图中的Float)和Half

Single和Half含义
Single和Half含义

对于节点,有一个特殊的值:Inherit,表示该节点的精度是图设置中的精度值。

节点连接时进度的变化

  • 如果half节点连接到float节点,输出会变成float,如果float连接half节点,输出会变成half
  • 如果两个不同精度的节点作为另外一个节点(Inherit类型的精度)的输入,那么这个节点最终的精度是两个节点中更高精度
  • sub graph的精度:如果sub graph的graph settings的进度是half,输入输出节点精度为inherit,在graph的graph settings的进度是float,那么这个时候sub graph中的输入输出节点最终确认的进度依然为half

节点连接

疑问:为什么一个float值连接到三维向量color上,可以正常输出 个人思考:经过一些尝试,我直接将一个float节点连接到最后的color输出上,然后调节输入节点的值,发现输出节点在黑白之间变化。所以一维的数值连接到三维数值上没有啥问题。

疑问:为什么只有一个float值,但是却可以输出一个图案呢 个人思考:这一个float值可能只是表示一个点,也就是说在不同的位置,这个输出的float是不一样的,换句话说,假如这张图片是100*100的,由10000=100*100点组成,那么这个上面的流程就要计算10000次,每一个像素点输出值都是不一致的。

以上部分都是个人思考,因为我并不是游戏开发,只是学习。

SimFg

2021/10/20  阅读:22  主题:全栈蓝

作者介绍

SimFg