Cesium进阶教程-阴影贴图-视频融合-优化

Cesium进阶教程-阴影贴图-视频融合-优化

视频裁剪

在实际应用中,有时候为了让视频与场景能够更好地进行融合,可能需要手动裁剪掉某些区域的视频内容,比如当视频主要是指向道路的画面时,由于相机角度较大,导致旁边行道树也在画面内,因为模型中行道树是凸起来的,所以会导致融合后的视频画面被拉伸,导致效果不理想,并且行道树的部分其实没有什么用,这是就可以将这部分裁剪视频裁剪掉,从而得到一个更好的融合效果。

规则裁剪

有些裁剪区域可能比较规则,比如裁剪掉视频的上半部分/下半部分/左半部分/右半部分等,此时就可以直接通过判断纹理坐标的方式进行裁剪,因为纹理坐标的区间是[0,0]-[1,1],并且坐标原点位于左下角,所以判断上下左右只需按照坐标关系判断即可,以裁剪视频上半部分为例

 if(shadowPosition.y>0.5)return; 

示例效果可到 xt3d 官网 运行查看

不规则裁剪

如果是不规则的视频区域裁剪,可以借助一张纹理图来实现,先将区域信息存储到一张纹理中,把纹理传入后处理程序的着色器中,然后在着色器中读取区域信息。 这里通过一个固定的区域来进行演示,如果要实现动态绘制区域,只需通过canvas来绘制即可。

在这里插入图片描述

vec3 clipColor;             
if(clipColor.r<.5)return;

示例效果可到 xt3d 官网 运行查看

视频羽化

有时候视频边界可能看起来比较生硬,可以通过羽化来使其和场景更好的进行融合,羽化效果一种方式是通过设置透明度来实现,原理图如下

在这里插入图片描述

实现代码如下


vec4 videoColor = texture(videoTexture, shadowPosition.xy);
out_FragColor = mix(color, vec4(videoColor.xyz, 1.),  videoColor.a);//color为原场景的颜色
//设置羽化
...

在这里插入图片描述

可自行对比有羽化和无羽化的效果差异

示例效果可到 xt3d 官网 运行查看

更多内容见 Cesium进阶教程-教程简介

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xt3d

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值