如何避免在创建着色器和节点组时违反能量守恒?

2021-02-24 17:14

最近,这里的一个用户提供了一个提示,在制作着色器时要小心,这样我就不会违反节能原则。Blender存储值范围为0-1的颜色。如果超过1,则反射的光比接收到的光多

解答动态

  • 这取决于你将如何使用这个值。
    一般来说,进入着色器的任何内容都应该在0-1范围内。

    但不一定是正常值或次表面(理论上,在任何一种情况下,您的模型都必须是巨大的,这样才有意义),因为这些值处理的是比例或距离。
    发射值也可以这样说,它会改变您的曲面
    创建遮罩时,可能会生成远远超出0-1范围的值,但这可能不是问题。例如,如果要为山脉生成置换贴图,则需要生成几百米高的凹凸。但是,如果这与底色或材质的任何物理属性有关,您将需要对值进行规范化。那么您可以做些什么?
    您可以检查“钳制”按钮,该按钮接受大于1的任何值并报告1。
    或者,如果您知道正在处理的新的最小值和最大值(您进行了计算),则可以使用“映射范围”节点将较大的范围压缩回0-1范围。

    关于何时夹具:
    视情况而定,再说一遍,你想要什么。考虑下面的例子,它是一个梯度,值从0到10。

    ,然后说我们钳制乘法。

    ,这个平面几乎所有的值都是1。如果我们想把这个梯度移到某个平面上,我们可以从中减去一些东西,比如说,6
    ,我们移动了它,但是现在大部分平面的值是,在引导时,平面上有一个梯度的部分明显缩小了,
    这不是真的,因为我们所做的是在左边创建一个负值的梯度,所有这些都用黑色表示。一整罐虫子!可能我们这里要做的不是钳制乘法,所以减法运算有一些更高的值要处理,然后钳制减法,这样我们就不会产生负值。当然,所有这些都是根据你想要的。如果你想短梯度结束于.4你应该夹住两个!
    那么有哪些具体的事情需要注意呢?如果你现在掌握了这些知识,你就永远不会忘记它。关于颜色,你现在应该害怕基本上任何未夹持的混合操作除了好的老式混合(只有当你知道进入的颜色是安全的放在第一位),物理属性以外的0-1,然后特别是添加Shader.
    ??
    这看起来需要维护很多,但是现在你知道了。

    • 不可能说你显示的组是否保存能量,因为它们是否保存能量取决于你发送给它们的值,它们无论如何都不会输出着色器。
      如果你想保存能量,并且除非必须,否则不想钳制,那么有只有各种各样的东西知道:如果你向着色器发送超出0,1颜色范围的颜色,您可能无法保存能量。如果你使用排放,你不节约能源。(发射从虚无中创建能量。)如果使用“添加着色器”(add shader)节点,则可能无法保存能量。如果如果在原则明暗器中使用0,1范围之外的镜面反射值,则可能不会保留能量。如果如果在一个有原则的着色器中使用光泽或透明涂层,则可能无法节省能量。(不是100%确定光泽,但是100%确定透明涂层。)如果你发送一个混合着色器一个fac在0,1范围之外,你可能不会节省能量。 这是一个很大的“可能”,因为有拐角的情况。将着色器1,0,0漫反射添加到0,1,1漫反射是否安全?对。因为输出不能超过1,1,1。将0.1透明涂层添加到0.9漫射原则涂层中是否安全?是的,因为输出不能超过1,1,1。从0.0漫反射着色器混合fac 2.0处的0.5漫反射着色器安全吗?是的,因为不能超过1,1,1。
      我肯定我错过了一些示例。

      • 您使用钳制复选框
        它将输出为0到1之间的数字
        还有一个钳制节点可以执行相同的操作,但是对于node
        您不限于0-1

        • End

        免责声明:

        本页内容仅代表作者本人意见,若因此产生任何纠纷由作者本人负责,概与琴岛网公司无关。本页内容仅供参考,请您根据自身实际情况谨慎操作。尤其涉及您或第三方利益等事项,请咨询专业人士处理。