Unity透明软件背景,显示桌面背景方案

Unity采用内置渲染管线,版本2020.3.0(URP不能用OnRenderImage,实现了再发)
参考网上资料:链接

Unity新版需要关闭选项:Edit——ProjectSettings——Player——ResolutionandPresentation——UseDXGIFlipModelSwapchainforD3D11
这个参考上面链接

重要的事说三遍:
说下思路:先清除颜色,再渲染需要的!先清除颜色,再渲染需要的!先清除颜色,再渲染需要的!

第一种:不采用UI
在OnRenderImage方法上添加属性ImageEffectOpaque,这样会渲染完不透明物体后立刻执行,所以在自定义UnlitShader的片元阶段直接返回float4(0.0,0.0,0.0,0.0),即清除所有颜色,把我们需要显示的材质改为不透明顺序之后材质,如透明材质,这样就可以了。
第二种:采用UI
在自定义的Shader的片元阶段直接返回float4(0.0,0.0,0.0,0.0),即清除所有颜色,用UI显示我们的图片或视频就可以了,因为UI的渲染靠后。

透明后,窗口置顶,鼠标穿透等功能可参考网上资料

你可能感兴趣的:(Unity,unity3d,shader)