edl后变暗后的解决方法

由于edl类似于ssao,会变暗,这时候调整亮度时,可以类似于hdr,高动态范围转LDR,只是不色调映射就可以了,rgb各分量同时提高同一个比例即可。这样既可以变亮且不溢出,也可以不改变颜色。(当然,可能会出现类似于深绿变浅绿的现象,但是视觉效果还可以。)

learn opengl中是这样子的,
vec3 mapped = hdrColor / (hdrColor + vec3(1.0));

从此可以借鉴,可以把rgb三个分量各自计算

比如
vec3 hdrColor=vec3( r* 10,g10,b10),
float scaleA = hdrColor.r / (hdrColor.r+1);
float scaleB = hdrColor.g / (hdrColor.g+1);
float scaleC = hdrColor.b / (hdrColor.b+1);

很明显,scaleA,scaleB,scaleC往往不相等。取一个相同值即可,比如最小的
float scale = min(min(scaleA,scaleB),scaleC);

vec3 finalColor = (scaler,scaleg,scale*b);

另外,可以在edl的alpha处传递阴影因子,在一定阈值内不乘以系数,(比如,<0.25)这样可以在最后保持清晰的边缘。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值