- Creator 版本:3.7.2
在做粒子系统时发现粒子出来的效果和预期不一样
发现粒子在叠加的过程中,显示的效果会出现类似过曝的效果
后续在排查过程中以及询问了大佬
发现是渲染材质球的问题,材质球中BlendState 的Blend Dst属性应该使用ONE_MINUS_SRC_ALPHA
这样就可以解决透明材质叠加导致的图片过曝问题

以下是关于修改材质球中BlendState 的Blend Dst属性GPT的解释:
在材质(Material)渲染中, Blend Src Alpha 和 Blend Dst Alpha 是用于控制混合模式(Blending Mode)效果的关键参数,尤其是在处理透明纹理或图片时。它们分别表示源图(当前纹理)和目标图(屏幕上的已渲染内容)在颜色混合过程中的权重。调整它们可以影响材质在屏幕上叠加时的显示效果。
1. Blend Src Alpha
-
Blend Src Alpha控制源图(当前纹理)的透明度,即对渲染的像素颜色所取的权重,通常使用SRC_ALPHA表示。 -
SRC_ALPHA会使用当前纹理的 alpha 值作为混合因子,表示“源颜色的透明度”对最终渲染颜色的影响。
2. Blend Dst Alpha
-
Blend Dst Alpha控制目标图(背景或已渲染内容)的透明度,即对背景颜色的权重,通常使用ONE_MINUS_SRC_ALPHA表示。 -
ONE_MINUS_SRC_ALPHA表示背景颜色会以1 - 源图的 alpha值作为混合因子。这在叠加多个透明图像时效果尤为明显,可以防止透明度累加过度导致的过曝(发白)。
3. 解决图片叠加过曝问题
-
当使用
Blend Dst Alpha为ONE(完全显示背景颜色)或SRC_ALPHA(使用背景颜色的透明度)时,透明图片叠加时的透明度累加会导致图像整体发亮或过曝,尤其是多层透明图片叠加时更加明显。 -
将
Blend Dst Alpha设置为ONE_MINUS_SRC_ALPHA可以让背景颜色的权重随源图透明度增加而减小,这样就避免了多次叠加透明度的累加效应。其公式如下:
Final Color=(Src Color * Src Alpha)+(Dst Color * (1 - Src Alpha)) -
这种混合模式可以确保透明度越高的区域对背景颜色的影响越小,叠加效果更加自然,不会过曝。

刚入行1年,对着色器shader这一块还不是很熟悉,之前学习了下unity shader,但是没怎么看明白 
