缺点:只能在平面上贴.
2.修改贴图:
将物体的材质贴图替换成原贴图和decal贴图的混合,适用于静态批量的物体
缺点:只适用于静态物体
3.基于SubMesh:
先获取跟目标投影相交的....
4.将所有相交的三角形片,合并成新的IndexBuffer,使用新的decal的纹理重新渲染一次,UV可以直接取映射到框中的xy值,当然要注意在shader中把uv 0~1之外的部分clip掉...,传入一个或多个decal投影框矩阵+数张decal贴图.FS得到原始的输出颜色后,再根据decal拿到的颜色进行混合,如果同时有多个Decal,则需要不同数量改变shader变体.
...缺点:需要大量调整shader,复杂繁琐,而且一个mesh上的decal数量在运行时发生变化时,需要动态编译shader变体.
6.基于后处理实现:
将decal整体作为一个长方体进行渲染两次来对目标进行贴花...,输出一个标志位到stencil buffer(或者任意其他可以标志像素点的方式),不需要输出颜色值
3.再次将投影框作为长方体渲染,打开Face Cull(只绘制长方形靠前的三个面),再上一步中stencil