zoukankan      html  css  js  c++  java
  • Substance Designer 使用手册

    最近在肝substance designer,强大的节点编辑功能多用用真的对编写shader有很多好处,见识了不少新的处理方式,这篇文章不仅仅是翻译官方的文档,而是加入了自己的理解,同时会结合在unity中的使用,又是一个大工程,争取一个月之内填完。。。。

     最近这段时间不会再系统学习一些新东西了,会把博客里没填的坑都慢慢整理一下,感觉如果弃坑超过一个月就真的再也不会填坑了。。。

    先把草稿打完,争取这周搞定,这篇文章不会讲基础的操作。

    substance designer版本6.0.2

    unity版本2017.1

    output节点与unity的导入

    output节点是输出节点,在substance desigher中,创建一个初始的PBR(metallic)graph就会自动生成五个节点,分别是baseColor(对应Metallic/roughness),normal,roughness,metallic,height。一般来说,unity的标准着色器的输入的几张基础纹理足够了,如果需要其余的输出节点可以自己再进行添加,但是unity的标准着色器不支持的话,是不能正常使用节点的,不过如果是自定义的pbr着色器,是可以的。substance材质导入到unity的原理,可以简单的视作在unity的材质系统外另外加了一个壳,进行pbr输入纹理的预计算,经过这个步骤后,将计算完成的纹理再传递给材质和着色器进行计算。

    unity中,需要注意的是输出节点中normal通道的设置,否则会造成在unity中导入sbsar材质失败的情况,输入到输出节点normal通道的normal节点,需要将其Alpha Channel Content设置为Fill Alpha with Input,默认是Force Alpha to 1。

    unity中直接将文件拖入资源浏览器或普通的导入操作即可,unreal需要商城安装substance插件。

    导入unity中之后,可以在generate texture标签下看到四张纹理贴图,这是因为smothness使用的是metallic贴图的alpha通道,这也是可设置的。

    需要注意的是,unity中的标准pbr使用的是smoothness贴图,而不是substance和unreal中的roughness贴图。在unity的标准pbr实现中,计算粗糙度的公式为(1-smoothness)^2。可以在资源浏览器中找到metallic贴图,查看它的alpha通道。会法线,alpha通道的值和你在substance中链接到输出节点roughness的通道值是不同的,至少从肉眼来看,灰度图是反相的,明暗度也不同。这是因为sbsar文件在导入unity中,自动重新计算粗糙度以符合unity中的PBR实现。

    另外,unity和unreal的法线format也不一样,区别在于Green通道,unity和unreal里的也是相反的。但是在substance中,似乎并不需要针对此进行修改。

    尝试过在substance中,将normal节点的Normal Format分别设置为OpenGL和DirextX,然后分别导入到unity中,发现unity均针对法线贴图的Green通道进行了反相操作,在unity中的法线表现和在substance中保持了一致。

    在substance designer中设置为dx,导入unity中效果与substance designer中gl效果一致。

    在substance designer中设置为gl,导入unity中效果与substance designer中dx效果一致。

    结论:导入unity后,无视设置,均对green通道做反相操作,最终显示结果和substance中实际效果一致。unreal的情况还在测试。

    //在project configure中可以设置全局,而且要求unity关闭逐像素切线空间计算,unreal则要求打开,这里具体为什么还没搞清楚。

     Node节点

    • Bitmap node:位图节点,导入外部的位图资源。
    • Blend node:混合节点,结合了多种混合方式的节点,包括multiply,add等常用的混合模式。
    • Blur node:模糊节点。
    • Channel Shuffle Node
    • Curve node
    • Directional blur node
    • Directional warp node
    • Distance node
    • Emboss node
    • FX-Map node
    • Gradient (dynamic) node
    • Gradient Map node
    • Grayscale conversion node
    • HSL node
    • Levels node:层级节点,用于调整灰度图的黑白平衡。
    • Normal node:法线节点,将一张灰度图转换为法线贴图。
    • Pixel processor node
    • Sharpen node
    • SVG node
    • Text node
    • Transform 2D node
    • Uniform color node:颜色节点,可以是RGB颜色输入或者灰度颜色输入。
    • Warp node
    • Input and Output nodes

     substance designer的属性暴露比shaderforge以及unreal的稍微复杂一些,功能也更强大。暴露属性给编辑器的目的是在substance designer材质在导入unity时,可以暴露给材质编辑器进行调节。

     
  • 相关阅读:
    学习情况记录 02
    2020寒假 04
    学习情况记录1
    2020寒假 03
    云平台发展前沿报告 微软云平台——Windows Azure
    2020寒假 02
    2020寒假 01
    大数据课堂测试3——数据清洗(1)
    Ubuntu Hadoop使用过程中的一些技巧1
    登录界面
  • 原文地址:https://www.cnblogs.com/jaffhan/p/7419961.html
Copyright © 2011-2022 走看看