一种球体渲染方法、装置、电子设备和可读存储介质制造方法及图纸

技术编号:34323190 阅读:11 留言:0更新日期:2022-07-31 00:36
本发明专利技术实施例提供了一种球体渲染方法、装置、电子设备和可读存储介质,所述方法包括:确定光线原点到球体中心的距离向量;所述光线原点为发射光线的起始点;确定从所述光线原点发射的所述光线的光线方向,计算所述距离向量在所述光线方向上的投影;根据所述距离向量和所述投影,判断所述光线是否与所述球体相交;若所述光线与所述球体相交,确定所述光线与所述球体的交点;根据所述投影,计算所述交点与所述光线原点的距离;根据所述光线和所述距离,对所述球体进行渲染。在判断光线是否与球体相交时,不涉及对球体半径进行运算,根据投影计算命中距离,可以避免两个相近的浮点数进行减法运算,提高了渲染精度,优化了渲染效果。优化了渲染效果。优化了渲染效果。

A sphere rendering method, device, electronic device and readable storage medium

【技术实现步骤摘要】
一种球体渲染方法、装置、电子设备和可读存储介质


[0001]本专利技术实施例涉及图像处理
,特别是涉及一种球体渲染方法、一种球体渲染装置、一种电子设备以及一种计算机可读存储介质。

技术介绍

[0002]光线追踪(Ray Tracing)是一种通过追踪与光学表面发生交互作用的光线,得到光线经过路径的算法。随着图像处理技术的发展,光线追踪在图像渲染中的应用也逐渐普及起来。
[0003]在光线追踪的实际应用中,如在渲染光线与球体的图像时,需要判断光线是否命中球体,以及计算命中距离,经常涉及浮点数的运算,而由于浮点数有效位数量的限制,当两个差值很大或很小的浮点数在进行减法运算时,很容易丢失浮点精度;因此,当球体与光线原点(发射光线的起始点)的距离超过球体半径一定倍数,或计算命中距离的两个浮点数很接近时,计算的结果会产生较大误差,影响图像渲染效果。

技术实现思路

[0004]本专利技术实施例是提供一种球体渲染方法、装置、电子设备以及计算机可读存储介质,以解决现有技术中渲染光线与球体的图像时计算误差大,效果不佳的问题。
[0005]为了解决上述问题,本专利技术实施例公开了一种球体渲染方法,所述方法包括:
[0006]确定光线原点到球体中心的距离向量;所述光线原点为发射光线的起始点;
[0007]确定从所述光线原点发射的所述光线的光线方向,计算所述距离向量在所述光线方向上的投影;
[0008]根据所述距离向量和所述投影,判断所述光线是否与所述球体相交;
[0009]若所述光线与所述球体相交,确定所述光线与所述球体的交点;
[0010]根据所述投影,计算所述交点与所述光线原点的距离;
[0011]根据所述光线和所述距离,对所述球体进行渲染。
[0012]可选地,所述计算所述距离向量在所述光线方向上的投影的投影,包括:
[0013]确定以所述光线方向为方向的单位向量;
[0014]计算所述距离向量与所述单位向量的点积,得到所述距离向量在所述光线方向上的投影。
[0015]可选地,所述根据所述距离向量和所述投影,判断所述光线是否与所述球体相交,包括:
[0016]计算所述距离向量的模的平方与所述投影的平方的差值;
[0017]确定所述球体的半径;
[0018]根据所述差值和所述半径,判断所述光线是否与所述球体相交。
[0019]可选地,所述根据所述差值和所述半径,判断所述光线是否与所述球体相交,包括:
[0020]若所述差值的平方大于所述半径的平方,则确定所述光线与所述球体不相交;
[0021]若所述差值的平方小于等于所述半径的平方,则确定所述光线与所述球体相交。
[0022]可选地,所述确定所述光线与所述球体的交点,包括:
[0023]生成与所述光线的光线方向相同的直线;
[0024]确定所述直线穿过所述球体的第一交点和第二交点。
[0025]可选地,所述根据所述投影,计算所述交点与所述光线原点的距离,包括:
[0026]根据所述投影的大小,确定所述投影的符号;所述符号包括正号和负号;
[0027]根据所述符号,计算所述第一交点与所述光线原点的第一距离;
[0028]根据所述第一距离,计算所述第二交点与所述光线原点的第二距离。
[0029]可选地,所述根据所述光线和所述距离,对所述球体进行渲染,包括:
[0030]将所述第一距离和所述第二距离中长度最小的作为目标距离;
[0031]根据所述光线和所述目标距离,对所述球体进行渲染。
[0032]可选地,所述根据所述光线和所述目标距离,对所述球体进行渲染,包括:
[0033]根据所述目标距离,计算所述交点对应的法线;
[0034]根据所述光线对应的光源属性和所述法线,计算所述交点的像素颜色;
[0035]采用所述像素颜色对所述球体进行渲染。
[0036]本专利技术实施例还公开了一种球体渲染装置,所述装置包括:
[0037]向量确定模块,用于确定光线原点到球体中心的距离向量;所述光线原点为发射光线的起始点;
[0038]投影计算模块,用于确定从所述光线原点发射的所述光线的光线方向,计算所述距离向量在所述光线方向上的投影;
[0039]相交判断模块,用于根据所述距离向量和所述投影,判断所述光线是否与所述球体相交;
[0040]交点确定模块,用于若所述光线与所述球体相交,确定所述光线与所述球体的交点;
[0041]距离计算模块,用于根据所述投影,计算所述交点与所述光线原点的距离;
[0042]渲染模块,用于根据所述光线和所述距离,对所述球体进行渲染。
[0043]可选地,所述投影计算模块,用于:确定以所述光线方向为方向的单位向量;计算所述距离向量与所述单位向量的点积,得到所述距离向量在所述光线方向上的投影。
[0044]可选地,所述相交判断模块,用于:计算所述距离向量的模的平方与所述投影的平方的差值;确定所述球体的半径;根据所述差值和所述半径,判断所述光线是否与所述球体相交。
[0045]可选地,所述相交判断模块,用于:若所述差值的平方大于所述半径的平方,则确定所述光线与所述球体不相交;若所述差值的平方小于等于所述半径的平方,则确定所述光线与所述球体相交。
[0046]可选地,所述交点确定模块,用于:生成与所述光线的光线方向相同的直线;确定所述直线穿过所述球体的第一交点和第二交点。
[0047]可选地,所述距离计算模块,用于:根据所述投影的大小,确定所述投影的符号;所述符号包括正号和负号;根据所述符号,计算所述第一交点与所述光线原点的第一距离;根
据所述第一距离,计算所述第二交点与所述光线原点的第二距离。
[0048]可选地,所述渲染模块,用于:将所述第一距离和所述第二距离中长度最小的作为目标距离;根据所述光线和所述目标距离,对所述球体进行渲染。
[0049]可选地,所述渲染模块,用于:根据所述目标距离,计算所述交点对应的法线;根据所述光线对应的光源属性和所述法线,计算所述交点的像素颜色;采用所述像素颜色对所述球体进行渲染。
[0050]本专利技术实施例还公开了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口以及所述存储器通过所述通信总线完成相互间的通信;
[0051]所述存储器,用于存放计算机程序;
[0052]所述处理器,用于执行存储器上所存放的程序时,实现如本专利技术实施例所述的方法。
[0053]本专利技术实施例还公开了一种计算机可读存储介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如本专利技术实施例所述的方法。
[0054]本专利技术实施例还公开了一种计算机程序产品,该程序产品被存储在存储介质中,该计算机程序产品被至少一个处理器执行以实现如本专利技术实施例所述的方法。<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种球体渲染方法,其特征在于,所述方法包括:确定光线原点到球体中心的距离向量;所述光线原点为发射光线的起始点;确定从所述光线原点发射的所述光线的光线方向,计算所述距离向量在所述光线方向上的投影;根据所述距离向量和所述投影,判断所述光线是否与所述球体相交;若所述光线与所述球体相交,确定所述光线与所述球体的交点;根据所述投影,计算所述交点与所述光线原点的距离;根据所述光线和所述距离,对所述球体进行渲染。2.根据权利要求1所述的方法,其特征在于,所述计算所述距离向量在所述光线方向上的投影,包括:确定以所述光线方向为方向的单位向量;计算所述距离向量与所述单位向量的点积,得到所述距离向量在所述光线方向上的投影。3.根据权利要求1所述的方法,其特征在于,所述根据所述距离向量和所述投影,判断所述光线是否与所述球体相交,包括:计算所述距离向量的模的平方与所述投影的平方的差值;确定所述球体的半径;根据所述差值和所述半径,判断所述光线是否与所述球体相交。4.根据权利要求3所述的方法,其特征在于,所述根据所述差值和所述半径,判断所述光线是否与所述球体相交,包括:若所述差值的平方大于所述半径的平方,则确定所述光线与所述球体不相交;若所述差值的平方小于等于所述半径的平方,则确定所述光线与所述球体相交。5.根据权利要求1所述的方法,其特征在于,所述确定所述光线与所述球体的交点,包括:生成与所述光线的光线方向相同的直线;确定所述直线穿过所述球体的第一交点和第二交点。6.根据权利要求5所述的方法,其特征在于,所述根据所述投影,计算所述交点与所述光线原点的距离,包括:根据所述投影的大小,确定所述投影的符号;所述符号包括正号和负号;根据所述符号,计算所述第一交...

【专利技术属性】
技术研发人员:王凯
申请(专利权)人:网易杭州网络有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1