一种真实3D实时混合渲染方法与流程

文档序号:11515824阅读:875来源:国知局

本发明涉及一种计算机图形图像领域的实时渲染技术,具体是一种真实3d实时混合渲染方法,主要用于。



背景技术:

随着电商及数字经济的普及发展,零售行业也开始了3d数字化的征程。受制于目前3d渲染技术的发展。目前的3d数字化渲染,主要存在以下问题:

<1>环绕拍摄照片:

大部分商家以摄影箱环绕拍摄实物照片的方式,获取产品360度照片,来模拟3d,然后通过美术团队,通过photoshop修图的方式来更正细节,完善效果。这种方式的缺点是:制作成本高,效果差。

<2>3d离线渲染技术:

基于3d产品模型,通过离线渲染的方式,获得产品照片或3d效果,成为新的发展趋势。这种方式的优点是,制作效果好。其缺点是:制作时间长,成本高,单帧,无法交互。

<3>3d实时渲染技术:

基于3d产品模型,通过实时3d引擎,实现实时3d产品渲染效果。这种方式的优点是,制作成本低,并且能让客户实时查看产品的各个角度的细节,并且完成diy定制设计的能力。必将成为主流的制作方式。这种方式的缺点是:渲染效果差,无法真实体现产品的光学特性。



技术实现要素:

为了大幅提升实时渲染的渲染质量,减少虚拟产品与真实产品之间的视觉差距,降低数据化成本,实现实时交互效率,本发明提供一种真实3d实时混合渲染方法。

本发明的技术方案是:一种真实3d实时混合渲染方法,其特征在于,包括以下步骤:

(1)把场景中,需要提升为真实物理渲染效果的部分,用光线追踪的技术来渲染;

(2)把光线追踪渲染的输出图像,实时传输给光栅化渲染引擎,进行混合显示;

(3)统一光栅化渲染与光线追踪渲染的世界坐标系;

(4)校正渲染顺序。

针对半透明的物体,所述的步骤(1)的具体实现方法:执行如下过程:

(a)跟踪从屏幕每个像素点发射出的光线;

(b)把入射到物体的光线和物体表面的包括反射率、折射率、色散率和透明度的物理材质属性作为输入参数,通过菲涅尔反射、折射和色散作用后,得到反射光线、折射光线和色散光线作为下一次计算的输入;

(c)重复(b),直到满足迭代结束条件,最终输出的颜色值即为物体表面最终的颜色值;步骤(a)-(c)的整个计算的过程,都以cuda代码的方式运行在gup核心中,进行渲染加速,以保证计算的实时性;最终的计算结果存储在显卡内存中。

针对金属类物体,所述的步骤(1)的具体实现方法:执行如下过程:

(a)跟踪从屏幕每个像素点发射出的光线;

(b)把入射到物体的光线和物体表面的反射率作为输入参数,通过菲涅尔反射作用后,得到反射光线作为下一次计算的输入;

(c)重复(b),直到满足迭代结束条件,最终输出的颜色值即为物体表面最终的颜色值;步骤(a)-(c)的整个计算都以cuda代码的方式运行在gup核心中,进行渲染加速,以保证计算的实时性;最终的计算结果存储在显卡内存中。

所述的步骤(2)具体实现方法:把步骤(1)中光线追踪渲染的结果从显卡内存拷贝传输到内存中,并以字节数组的接口方式提供给后续的光栅化渲染引擎;用光栅化渲染部分从上述接口读取所述的光线追踪渲染的结果,并以纹理的方式被写入显卡后备缓冲,最终以光栅化的形式显示在屏幕上。

所述的步骤(3)具体实现方法:在步骤(1)执行中,把光栅化渲染过程中的相机及对应物体进行矩阵变换,包括位置、旋转和缩放信息,实时传回至光线追踪渲染系统的坐标系统,保证世界坐标的一致,从而实现了完美的混合匹配效果。

所述的步骤(4)具体实现方法:在所述步骤(1)中,增加遮罩材质,只写深度值,不写颜色值,进一步实现了不同渲染系统里的物体之间的正确遮挡效果,让混合渲染效果更加真实。

还包括步骤(5):根据需求及机器性能,提供以下不同的渲染性能级别:在较差的配置上,采用高性能,低质量的渲染方案;在较高的配置上,采用高质量,低性能的方案;通过控制渲染窗口的大小,即总体渲染和传输的像素数量来控制带宽使用。

本发明的优点是:

(1)超真实的渲染效果,让虚拟产品的视觉展示效果可以无限接近真实产品。

(2)对机器配置要求较低,运行成本低。

(3)可以无死角,实时交互,互动。

(4)支持实时修改材质,方便定制及辅助设计。

(5)支持后续的ar及vr交互应用。

本发明将会极大的提升产品3d数据化的效率,降低成本,大大的提升了渲染质量,为后续的3d虚拟产品标准的建立,交互应用(如虚拟试戴,辅助设计,ar和vr应用)奠定了坚实的基础,为零售行业提供未来3d虚拟经济的雏形。

附图说明

图1是本发明实施例的基本流程图。

具体实施方式

参见图1,本发明一种真实3d实时混合渲染方法,其特征在于,包括以下步骤:

(1)把场景中,需要提升为真实物理渲染效果的部分,用光线追踪的技术来渲染。

具体实现为:针对半透明的物体,比如宝石类物体,会执行如下过程,跟踪从屏幕每个像素点发射出的光线,一旦光线射入到物体表面,根据宝石类物体的物理属性,透明度/折射率/色散率等,执行菲涅尔反射,折射,色散等光学计算,计算得出的反射光线或折射光线或色散光线,会作为下一次的入射光线进行迭代跟踪,直到满足迭代结束条件,即可计算出该物体表面点真实的物理颜色值。对金属类物体,仅会执行菲涅尔反射计算。计算的过程会采用cuda代码通过gpu核心进行加速(这是一种常规的硬件加速渲染方法),可以保证计算实时性。计算的结果会存储在显卡内存中。

(2)把光线追踪渲染的输出图像,实时传输给光栅化渲染引擎,进行混合显示。

具体实现为:设计光线追踪功能和光栅化渲染功能之间的中间件,这个中间件以动态链接库的形式出现,核心是把上述光线追踪渲染的结果,从显卡内存,拷贝传输到内存中,并以字节数组的接口方式提供给后续的光栅化渲染引擎。光栅化渲染部分,调用上述接口,读取相应内容,并以纹理的方式被写入显卡后备缓冲,最终以光栅化的形式显示在屏幕上。

(3)实现世界坐标系的统一。

具体实现为:上述中间件还需要把光栅化渲染过程中的相机及对应物体的变换矩阵,包括位置/旋转/缩放信息,实时传回至光线追踪渲染系统的坐标系统,保证世界坐标的一致,从而实现了完美的混合匹配效果。

(4)实现正确的渲染顺序。

具体实现为:在光线追踪功能中,增加遮罩材质,即,只写深度值,不写颜色值,进一步实现了不同渲染系统里的物体之间的正确遮挡效果,让混合渲染效果更加真实。

(5)控制传输带宽。

具体实现为:可根据需求及机器性能,提供了不同的渲染性能级别。在较差的配置上,可以采用高性能,低质量的渲染方案。在较高的配置上,可以采用高质量,低性能的方案。其具体思路是通过控制渲染窗口的大小,即总体渲染和传输的像素数量来控制带宽使用。

该方案与之前的方案对比:

在交互性上,完全实现了实时,无死角的交互。相对于之前的离线渲染,有极大的实时交互优势。

在渲染质量上,完全达到了顶级的基于物理真实的渲染质量。把目前实时渲染的效果,提升了一个级别。

本发明基于3d产品模型,通过实时3d渲染,达到离线渲染技术水平的真实实时渲染效果。

设计思路:

实现光栅化渲染算法与光线追踪渲染算法结合的混合渲染技术。从而在最终的效果中,兼顾了实时的交互与顶级的渲染质量。

光栅化渲染的特点是实时可交互,但是渲染效果不够逼真,没有真实的光学特性。而光线追踪渲染的特点是渲染效果逼真,能显示真实的光学特性。但是,光线追踪渲染,目前的算法对机器性能要求较高,渲染时间较长,主要应用在离线渲染阶段。考虑到,场景中,大部分物体,光栅化渲染与光线追踪渲染的结果差别并不明显。但是,针对某些特殊材质,比如其中的半透明物体以及金属材质等,光线追踪的渲染效果就很有优势,例如,在宝石等光学特性展示方面。而恰巧是这些特殊材质的物体的渲染效果,影响了整体渲染效果的真实性。所以,可以考虑只对场景中的特殊材质的物体进行光线追踪的渲染,这样就大大减少了光线追踪算法需要渲染的工作量,然后,再把光线追踪算法通过gpu,cuda核心进行加速运算,就基本实现了实时光线追踪的效果。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1