所以我正在尝试做一些着色器工作,我想用一个颜色变量做两件事:我希望它根据颜色的“强度”与纹理混合,我想要颜色的alpha混合整个图像。
所以:
fixed4(tex.rgb * (1 - intensity) + color.rgb * (intensity), tex.a * color.a)
现在我的想法是使用最高的RGB颜色值来获得它的强度。使用color.a更直观,但由于我想将它用于整个对象的透明度,这不起作用。
现在的问题是,我如何获得强度?
单独比较RGB似乎很笨拙。那将是:
r > b > g?
导致这种丑陋:
max(r, max(g, b) )
有更好的解决方案吗?
答案 0 :(得分:0)
物理强度通常为(r + g + b)/ 3。 (或考虑眼睛敏感度的加权变体)。 在这里,您将获得"价值"画家,感觉上不是强度(因为白色= R + G + B比单独的R更多瓦特/ st)。但如果你真的想要这个值,是的,max(max())。 (没什么大不了的:-))