容器中液体的渲染方法、装置、设备及存储介质制造方法及图纸

技术编号:33711206 阅读:52 留言:0更新日期:2022-06-06 08:44
本公开实施例提供了一种容器中液体的渲染方法、装置、设备及存储介质。该方法包括:获取液体模型、开口容器模型以及液面控制点;确定所述开口容器模型上的杯口控制点;根据所述液面控制点和所述杯口控制点,对所述开口容器模型中的液体模型进行渲染显示。本公开实施例通过采用上述技术方案,能够实现对开口容器模型中的液体模型的渲染符合物理规律,避免产生渲染错误。渲染错误。渲染错误。

【技术实现步骤摘要】
容器中液体的渲染方法、装置、设备及存储介质


[0001]本公开实施例涉及计算机
,尤其涉及一种容器中液体的渲染方法、装置、设备及存储介质。

技术介绍

[0002]目前,使用着色器Shader来实现容器中液体的渲染效果时,通常使用液面控制点控制液面的高低,使得容器中高于液面的部分不显示。
[0003]现有技术中,对于开口容器来说,采用上述方式实现开口容器中液体的渲染效果,可能会导致渲染结果不符合物理规律,例如出现图1中的开口容器倾斜时产生的渲染错误。

技术实现思路

[0004]本公开实施例提供一种容器中液体的渲染方法、装置、设备及存储介质,以实现对开口容器模型中的液体模型的渲染符合物理规律,避免渲染错误。
[0005]第一方面,本公开实施例提供了一种容器中液体的渲染方法,包括:
[0006]获取液体模型、开口容器模型以及液面控制点;
[0007]确定所述开口容器模型上的杯口控制点;
[0008]根据所述液面控制点和所述杯口控制点,对所述开口容器模型中的液体模型进行渲染显示。
[0009]第二方面,本公开实施例还提供了一种容器中液体的渲染装置,包括:
[0010]获取模块,用于获取液体模型、开口容器模型以及液面控制点;
[0011]确定模块,用于确定所述开口容器模型上的杯口控制点;
[0012]渲染模块,用于根据所述液面控制点和所述杯口控制点,对所述开口容器模型中的液体模型进行渲染显示。
[0013]第三方面,本公开实施例还提供了一种电子设备,所述电子设备包括:
[0014]一个或多个处理器;
[0015]存储装置,用于存储一个或多个程序,
[0016]当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本公开实施例所述的容器中液体的渲染方法。
[0017]第四方面,本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本公开实施例所述的容器中液体的渲染方法。
[0018]本公开实施例提供的容器中液体的渲染方法、装置、设备及存储介质,通过获取液体模型、开口容器模型以及液面控制点;确定所述开口容器模型上的杯口控制点;根据所述液面控制点和所述杯口控制点,对所述开口容器模型中的液体模型进行渲染显示。本实施例通过采用上述技术方案,能够实现对开口容器模型中的液体模型的渲染符合物理规律,避免产生渲染错误。
附图说明
[0019]结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
[0020]图1为现有技术中的一种开口容器中液体错误渲染的效果示意图;
[0021]图2是本公开实施例提供的一种容器中液体的渲染方法的流程图;
[0022]图3是本公开实施例提供的一种错误的液体渲染结果的示意图;
[0023]图4是本公开实施例提供的一种正确的液体渲染结果的示意图;
[0024]图5是本公开实施例提供的一种液面控制的原理示意图;
[0025]图6是本公开实施例提供的另一种容器中液体的渲染方法的流程图;
[0026]图7是本公开实施例提供的一种体积控制的流程图;
[0027]图8是本公开实施例提供的一种容器中液体的渲染装置的结构示意图;
[0028]图9是本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
[0029]下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
[0030]应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
[0031]本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
[0032]需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
[0033]需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
[0034]本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
[0035]图2是本公开实施例提供的一种容器中液体的渲染方法的流程图,本公开实施例可适用于对开口容器中的液体进行渲染的情况,该方法可以由本公开实施例提供的容器中液体的渲染装置来执行,该装置可采用软件和/或硬件的方式实现,并一般可集成在电子设备中。本公开实施例的方法具体包括:
[0036]S110、获取液体模型、开口容器模型以及液面控制点。
[0037]其中,液体模型和开口容器模型是预先建立的三维模型,两者的模型顶部开口且模型内外两面都包含图元信息,图元是组成图像的基本单元,包括三维模型中的点、线、面
等。本实施例对开口容器模型的形状不做固定限制,可以是如图1所示的杯子形状,也可以是规则的圆柱体、圆锥体,又或者是其他不规则形状,液体模型的形状可以跟与之适配的开口容器模型的形状一致。
[0038]其中,液面控制点在液体模型中的位置是用户预先设置的,用于控制液体模型的液面高低,液面是经过液面控制点且垂直于重力方向的平面,液体模型在渲染时通常分为液面和液面下的液体两部分进行渲染,从而营造出水面的效果。
[0039]S120、确定所述开口容器模型上的杯口控制点。
[0040]本实施例中,由于盛放液体的容器为开口容器,因此,如果仅使用液面控制点来控制开口容器模型中的液体模型的液面高低,在某些情况下,例如开口容器模型倾斜的情况下,可能会导致液体渲染结果不符合物理规律,如图3中虚线所示的液体渲染效果。这是因为只考虑了液体模型自身的信息(液面控制点)和全局信息(重力方向),但并未考虑环境信息(盛放液体的开口容器),因此,需要在开口容器模型上另外确定一个杯口控制点,用于与液面控制点一起确定液体模型的液面,避免出现液体渲染出错的情况。
[0041]可选的,确定所述开口容器模型上的杯口控制点,可以包括:根据本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种容器中液体的渲染方法,其特征在于,包括:获取液体模型、开口容器模型以及液面控制点;确定所述开口容器模型上的杯口控制点;根据所述液面控制点和所述杯口控制点,对所述开口容器模型中的液体模型进行渲染显示。2.根据权利要求1所述的方法,其特征在于,确定所述开口容器模型上的杯口控制点,包括:根据所述开口容器模型的倾斜角度,从所述开口容器模型的杯口上选择位置最低点作为杯口控制点。3.根据权利要求2所述的方法,其特征在于,从所述开口容器模型的杯口上选择位置最低点作为杯口控制点,包括:在所述开口容器模型的本地坐标系下,从所述开口容器模型的杯口的各点中,选择坐标原点到杯口的点的向量在重力向量上的投影最大的点作为杯口控制点。4.根据权利要求1所述的方法,其特征在于,根据所述液面控制点和所述杯口控制点,对所述开口容器模型中的液体模型进行渲染显示,包括:在世界坐标系下,将所述液面控制点和所述杯口控制点中的位置最低点作为目标控制点;根据所述目标控制点以及重力方向,对所述开口容器模型中的液体模型进行渲染显示。5.根据权利要求4所述的方法,其特征在于,根据所述目标控制点以及重力方向,对所述开口容器模型中的液体模型进行渲染显示,包括:计算所述目标控制点到所述液体模型中的每个像素点的顶点的第一向量;计算第一向量与重力方向之间的点乘积;对所述液体模型中的与大于0的点乘积对应的像素点进行显示。6.根据权利要求1

5中任一项...

【专利技术属性】
技术研发人员:张恒
申请(专利权)人:北京字跳网络技术有限公司
类型:发明
国别省市:

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

1