[发明专利]一种在3D场景中模拟雾天的实现方法及系统在审
| 申请号: | 202210088303.8 | 申请日: | 2022-01-25 |
| 公开(公告)号: | CN114494545A | 公开(公告)日: | 2022-05-13 |
| 发明(设计)人: | 付莹;孙建飞 | 申请(专利权)人: | 上海影谱科技有限公司 |
| 主分类号: | G06T13/60 | 分类号: | G06T13/60;G06T15/00;A63F13/52 |
| 代理公司: | 北京知呱呱知识产权代理有限公司 11577 | 代理人: | 陈晨 |
| 地址: | 201721 上海市青浦*** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 场景 模拟 实现 方法 系统 | ||
本发明实施例公开了一种在3D场景中模拟雾天的实现方法及系统,通过获取3D场景中摄像机与物体表面点之间的距离;根据所述距离以及预设的雾效起始距离和雾效范围,确定雾效混合因子;基于所述雾效混合因子,将物体原色与雾气颜色进行加权计算值作为物体表面点的颜色,生成雾效显示结果。在3D场景中实现对雾天的模拟。
技术领域
本发明实施例涉及计算机图形学技术领域,具体涉及一种在3D场景中模拟雾天的实现方法及系统。
背景技术
雾效是3D渲染中用来模拟现实中大气现象的一种常见手段。最直接的用途就是实现带雾天气的场景。此外,雾效还有其他很多重要的作用:
1.用来防止场景中远处物体的突然消失/出现。这种现象的主要原因在于,在我们指定投影矩阵时,提供了两个参数:近平面和远平面。这两个参数限制了场景中绘制物体的范围。只有位于该区间内的物体才被渲染,其他会被剔除。这样就导致了当我们在场景中移动时,位于远平面附近处的物体中会因为跨越该距离而突然地消失或出现。这显然是我们不希望看到的。引入雾效后,由于从近到远场景中的物体会逐渐地“朦胧化”,在超过一定距离后会完全与背景色融合在一起。因此远平面处的这种奇异现象将不能被观察到。
2.另一个重要作用即优化场景的渲染。当雾效存在时,我们能够观察到的物体会被限制在一定距离内,该距离一般比远平面要小得多。实际上,当超过该距离后,更远处的物体是完全看不到的,即使位于远平面范围内,也没有任何渲染价值。这种情况下,在渲染时就可以把雾效距离之外的物体直接剔除掉,以避免不必要的渲染造成的资源浪费。在玩游戏时可能会有所体会,在游戏中,可以尝试关闭、打开雾效(如果有这个功能的话),会发现打开雾效后,场景更加逼真(按经验讲,更逼真的场景一般需要更高级的渲染,帧数会下降),而游戏反而会更加流畅。这正是因为利用雾效而进行的优化。
发明内容
为此,本发明实施例提供一种在3D场景中模拟雾天的实现方法及系统,以实现在3D场景中实现对雾天的模拟。
为了实现上述目的,本发明实施例提供如下技术方案:
根据本发明实施例的第一方面,提出了一种在3D场景中模拟雾天的实现方法,所述方法包括:
获取3D场景中摄像机与物体表面点之间的距离;
根据所述距离以及预设的雾效起始距离和雾效范围,确定雾效混合因子;
基于所述雾效混合因子,将物体原色与雾气颜色进行加权计算值作为物体表面点的颜色,生成雾效显示结果。
进一步地,获取3D场景中摄像机与物体表面点之间的距离,具体包括:所述距离为摄像机的世界坐标与物体三角网格模型的最小三角网格单元顶点的世界坐标之差的绝对值。
进一步地,根据所述距离以及预设的雾效起始距离和雾效范围,确定雾效混合因子,具体包括:
雾效混合因子s的值为,
其中,dist(p,E)为物体表面点p与摄像机位置E之间的距离,而函数saturate会将其参数限制在区间[0,1]内:
fogStart为雾效起始距离,即摄像机到雾气的最近距离;fogRange雾效范围,即从雾气到摄像机的最近距离至雾能完全覆盖物体的这段范围。
进一步地,基于所述雾效混合因子,将物体原色与雾气颜色进行加权计算值作为物体表面点的颜色,生成雾效显示结果,具体包括:
finalColor=litColor+s(fogColor-litColor)
=(1-s)*litColor+s*fogColor
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海影谱科技有限公司,未经上海影谱科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210088303.8/2.html,转载请声明来源钻瓜专利网。





