CN117409131A - 模型渲染方法及装置、计算机可读存储介质和电子设备 - Google Patents
模型渲染方法及装置、计算机可读存储介质和电子设备 Download PDFInfo
- Publication number
- CN117409131A CN117409131A CN202311338647.0A CN202311338647A CN117409131A CN 117409131 A CN117409131 A CN 117409131A CN 202311338647 A CN202311338647 A CN 202311338647A CN 117409131 A CN117409131 A CN 117409131A
- Authority
- CN
- China
- Prior art keywords
- noise
- model
- coordinate
- determining
- offset
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 76
- 238000009877 rendering Methods 0.000 title claims abstract description 51
- 238000003860 storage Methods 0.000 title claims abstract description 23
- 238000005070 sampling Methods 0.000 claims abstract description 76
- 238000004040 coloring Methods 0.000 claims abstract description 20
- 238000012545 processing Methods 0.000 claims description 23
- 230000008859 change Effects 0.000 claims description 18
- 239000012634 fragment Substances 0.000 claims description 15
- 238000012216 screening Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 2
- 230000000694 effects Effects 0.000 abstract description 48
- 238000004090 dissolution Methods 0.000 abstract description 36
- 230000008569 process Effects 0.000 description 22
- 230000006870 function Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 9
- 230000001965 increasing effect Effects 0.000 description 7
- 230000000007 visual effect Effects 0.000 description 7
- 239000013598 vector Substances 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000006073 displacement reaction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000001788 irregular Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 241001465754 Metazoa Species 0.000 description 1
- 238000002679 ablation Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000001704 evaporation Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000007654 immersion Methods 0.000 description 1
- 238000004020 luminiscence type Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000003892 spreading Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000016776 visual perception Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/55—Radiosity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Architecture (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
Abstract
本公开涉及计算机技术领域,涉及一种模型渲染方法及装置、计算机可读存储介质和电子设备。该模型渲染方法包括:利用模型顶点在世界空间的第一坐标对噪声纹理采样,得到第一噪声;根据第一坐标和第一噪声确定第一偏移量,并基于第一偏移量将第一坐标进行调整,得到第二坐标;利用模型的像素在世界空间的第三坐标对噪声纹理采样,得到第二噪声,像素为基于第二坐标对模型进行着色处理后确定;基于第三坐标和第二噪声确定像素的透明值,以对模型进行渲染。本公开能丰富模型溶解特效的展示效果。
Description
技术领域
本公开涉及计算机技术领域,更具体地,涉及一种模型渲染方法、模型渲染装置、计算机可读存储介质和电子设备。
背景技术
随着计算机技术领域的发展,用户对网络游戏中虚拟对象的特效展示要求越来越高。溶解特效,也可称为消融特效,可以通过控制模型的透明度从深变浅直至为零,来得到虚拟对象消失的效果。例如,虚拟角色从某一位置开始消失,直到蔓延全身,达到类似于燃烧现象的溶解效果,可以提高玩家玩游戏的沉浸感和乐趣。
然而,相关技术的溶解特效生硬、不流畅,导致虚拟对象的特效展示效果差。
需要说明的是,在上述背景技术部分发明的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种模型渲染方法及装置、计算机可读存储介质和电子设备,进而至少在一定程度上提高溶解特效的流畅感,提升虚拟角色的溶解特效展示效果。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的一个方面,提供一种模型渲染方法,包括:利用模型顶点在世界空间的第一坐标对噪声纹理采样,得到第一噪声;根据所述第一坐标和所述第一噪声确定第一偏移量,并基于所述第一偏移量将所述第一坐标进行调整,得到第二坐标;利用模型的像素在世界空间的第三坐标对所述噪声纹理采样,得到第二噪声,所述像素为基于所述第二坐标对所述模型进行着色处理后确定;基于所述第三坐标和所述第二噪声确定所述像素的透明值,以对所述模型进行渲染。
在本公开的一种示例性实施例中,所述利用模型顶点在世界空间的第一坐标对噪声纹理采样,包括:根据所述第一坐标的坐标信息确定至少两个二维坐标组;利用所述至少两个二维坐标组分别对所述噪声纹理进行采样;根据得到的至少两个采样结果确定所述第一噪声。
在本公开的一种示例性实施例中,所述根据所述第一坐标和所述第一噪声确定第一偏移量,包括:根据所述第一坐标确定所述模型顶点在所述模型的相对位置信息;根据当前帧数和所述相对位置信息,确定所述模型顶点在目标方向对应的斜率;根据所述斜率、所述第一噪声和预设噪声幅度,确定所述第一偏移量。
在本公开的一种示例性实施例中,所述根据所述第一坐标确定所述模型顶点在所述模型的相对位置信息,包括:在世界空间中,获取所述模型在所述目标方向的最大坐标值和最小坐标值;根据所述坐标信息在所述目标方向的坐标值、所述最大坐标值和最小坐标值确定所述相对位置信息。
在本公开的一种示例性实施例中,所述根据当前帧数和所述相对位置信息,确定所述模型顶点在目标方向对应的斜率,包括:获取预设渐变参数,所述预设渐变参数表征将所述模型进行变形调整的程度;根据所述预设渐变参数、所述当前帧数和所述相对位置信息进行插值处理,以得到所述斜率。
在本公开的一种示例性实施例中,所述根据所述斜率、所述第一噪声和预设噪声幅度,确定所述第一偏移量,包括:将所述斜率与所述第一噪声、所述预设噪声幅度以及所述第一偏移量进行插值,以得到所述模型顶点在所述目标方向的所述第一偏移量。
在本公开的一种示例性实施例中,所述利用模型的像素在世界空间的第三坐标对所述噪声纹理采样,得到第二噪声,包括:将所述像素的第三坐标转换为屏幕坐标;基于所述屏幕坐标对所述噪声纹理进行至少两次随机采样,以根据得到的至少两次采样结果确定所述第二噪声。
在本公开的一种示例性实施例中,所述基于所述第三坐标和所述第二噪声确定所述像素的透明值,包括:根据所述第三坐标确定所述像素在目标方向的第二偏移量;根据所述第二偏移量、所述第二噪声和预设噪声幅度,确定所述像素的透明值。
在本公开的一种示例性实施例中,所述根据所述第二偏移量、所述第二噪声和预设噪声幅度,确定所述像素的透明值,包括:根据所述第二偏移量、所述第二噪声和预设噪声幅度,按照第一插值方式确定第一结果;基于所述第一结果与第一预设阈值的大小关系,确定所述像素的透明度,所述第一预设阈值用于筛选能够渲染呈现的像素。
在本公开的一种示例性实施例中,所述方法还包括:基于所述第二噪声确定第一亮度;根据所述第二偏移量、所述第二噪声和预设噪声幅度,确定第二亮度;结合所述第一亮度和所述第二亮度对所述模型进行亮度渲染。
在本公开的一种示例性实施例中,所述根据所述第二偏移量、所述第二噪声和预设噪声幅度,确定第二亮度,包括:根据所述第二偏移量、所述第二噪声和预设噪声幅度,按照第二插值方式确定第二结果;基于所述第二结果与第二预设阈值的大小关系,确定所述第二亮度;其中,所述第二预设阈值用于筛选需要进行亮度调整的像素。
在本公开的一种示例性实施例中,其特征在于,所述噪声纹理为随时间变化的,对所述噪声纹理采样能得到随时间变化的噪声。
根据本公开的一个方面,提供一种模型渲染装置,包括:第一顶点着色模块,用于利用模型顶点在世界空间的第一坐标对噪声纹理采样,得到第一噪声;第二顶点着色模块,用于根据所述第一坐标和所述第一噪声确定第一偏移量,并基于所述第一偏移量将所述第一坐标进行调整,得到第二坐标;第一片元着色模块,用于利用模型的像素在世界空间的第三坐标对所述噪声纹理采样,得到第二噪声,所述像素为基于所述第二坐标对所述模型进行着色处理后确定;第二片元着色模块,用于基于所述第三坐标和所述第二噪声确定所述像素的透明值,以对所述模型进行渲染。
根据本公开的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的方法。
根据本公开的一个方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的方法。
本公开的示例性实施例中的模型渲染方法,一方面,利用模型顶点在世界空间的第一坐标对噪声纹理采样,得到第一噪声,并根据第一坐标和第二噪声确定第一偏移量,以基于第一偏移量将第一坐标进行调整,得到第二坐标,该过程通过获得的第一噪声对模型顶点的坐标进行调整,可以实现模型在特定方向的形变,如拉伸和位移等,增加了模型溶解特效在模型的形变上表现,使模型的溶解过程更流畅;另一方面,使用模型的像素在世界空间的第三坐标采样噪声纹理得到第二噪声,以基于第三坐标和第二噪声确定像素的透明度,以根据透明度对模型进行渲染,即,将像素在世界空间的位置作为参数影响溶解过程,使溶解特效更形象真实,提升用户的视觉体验。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:
图1示出了根据本公开示例性实施例的一种应用环境;
图2示出了根据本公开示例性实施例的一种溶解特效的示意图;
图3示出了根据本公开示例性实施例的一种模型渲染方法的流程图;
图4示出了根据本公开示例性实施例的一种光栅化处理的示意图;
图5示出了根据本公开示例性实施例的一种对噪声纹理采样的实现方式的流程图;
图6示出了根据本公开示例性实施例的一种确定第一偏移量的实现方式的流程图;
图7示出了根据本公开示例性实施例的一张确定斜率的实现方式的流程图;
图8示出了根据本公开示例性实施例的一种对模型实现拉伸的效果图;
图9示出了根据本公开示例性实施例的一种确定第二噪声的实现方式的流程图;
图10示出了根据本公开示例性实施例的一种确定像素的透明值的实现方式的流程图;
图11示出了根据本公开示例性实施例的另一种溶解特效的示意图;
图12示出了根据本公开示例性实施例的一种对模型溶解添加发光特效的实现方式的流程图;
图13示出了根据本公开示例性实施例的一种伴随发光特效的模型溶解示意图;
图14示出了根据本公开示例性实施例的一种模型渲染装置的组成示意图;
图15示出了根据本公开示例性实施例的电子设备的框图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
现在将参考附图更全面地描述示例性实施方式。然而,示例性实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施例使得本公开将更加全面和完整,并将示例性实施方式的构思全面地传达给本领域的技术人员。图中相同的附图标记表示相同或类似的结构,因而将省略它们的详细描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知结构、方法、装置、实现或者操作以避免模糊本公开的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个软件硬化的模块中实现这些功能实体或功能实体的一部分,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
本公开的示例性实施例提供的模型渲染方法,可以应用于如图1所示的应用环境中。其中,终端101通过网络与服务器102进行通信。数据存储系统可以存储服务器102需要处理的数据。数据存储系统可以集成在服务器102上,也可以放在云上或其他网络服务器上。
一种示例性实施例中,本公开的示例性实施例所提供的模型渲染方法可以由服务器102执行,相应的,模型渲染装置设置于服务器102中。对应的,在由服务器102执行的这种方式中,服务器102可以响应于触发执令开始执行本公开的示例性实施例的技术方案中的步骤,其中,该触发执令可以由用户使用的终端所发送,也可以由服务器响应于一些自动化事件而在本地触发。
服务器102可以利用模型顶点在世界空间的第一坐标对噪声纹理采样,得到第一噪声,根据第一坐标和第一噪声确定第一偏移量,并基于第一偏移量将所述第一坐标进行调整,得到第二坐标,利用模型的像素在世界空间的第三坐标对噪声纹理采样,得到第二噪声,像素为基于第二坐标对模型进行着色处理后确定;最后基于第三坐标和第二噪声确定像素的透明值,以对模型进行渲染。
服务器102可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。服务器102可以执行后台任务。
再者,在另一示例性实施例中,终端101也可以与服务器102具有相似的功能,从而执行本公开的示例性实施例所提供的模型渲染方法。
其中,终端101可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调和智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。终端101还可以被称为移动终端、终端设备、移动设备等,本公开的示例性实施例对终端101的类型不做限制。
另外,本公开的示例性实施例的技术方案还可以由终端101和服务器102协同执行。在由终端101和服务器102协同执行的这种方式中,本公开的示例性实施例提供的技术方案中的部分步骤由终端101执行,而另外部分的步骤则由服务器102来执行。例如,终端101利用模型顶点在世界空间的第一坐标对噪声纹理采样,得到第一噪声,根据第一坐标和第一噪声确定第一偏移量,并基于第一偏移量将第一坐标进行调整,得到第二坐标,并将得到的第二坐标发送至服务器102,由服务器102执行后续的模型渲染过程。
需要说明的是,在由终端101和服务器102协同执行的这种方式中,终端101和服务器102分别执行的步骤可根据实际情况动态的调整,对此不做特殊限制。
其中,终端101和服务器102可以通过无线通信方式进行直接或间接地连接,本公开的示例性实施例在此不做特殊限制。
溶解特效,可以通过控制模型的透明度从深变浅直至为零,来得到虚拟对象消失的效果,通常表现为虚拟对象的表面逐渐消失,或者由内向外呈现出随时间燃烧、破碎或蒸发的效果。如图2所示的一种溶解特效的示意图。
在本公开的示例性实施例中,针对目前的溶解特效生硬、不流畅的问题,提供一种模型渲染方法,参考图3所示为本公开的示例性实施例的模型渲染方法的流程图。如图3所示,该模型渲染方法包括步骤S310至步骤S340,具体如下:
在步骤S310中,利用模型顶点在世界空间的第一坐标对噪声纹理采样,得到第一噪声。
在本公开的示例性实施例中,模型即虚拟对象,不同于真实对象,虚拟对象是虚拟出的角色形象,比如,虚拟出的角色形象可以是虚拟场景中用于表示用户、且受用户控制的玩家角色形象,也可以是虚拟场景中用于表示可与用户交互的非玩家角色形象,比如虚拟对象可以是虚拟人物,虚拟动物等;虚拟对象还可以是虚拟场景中的其他虚拟物体,比如虚拟对象可以是虚拟建筑部件(比如桌、椅、门、窗),虚拟交通工具(比如车辆、船只)等。
虚拟场景可以是模拟真实环境虚拟出的场景,比如,虚拟场景可以包括虚拟的天空、河流、山川、动植物、建筑等;虚拟场景可以在终端运行游戏应用时实时显示。
其中,模型数据通常是从内存中读取的模型几何数据,包括模型顶点和索引等数据。在基于模型数据进行处理过程中,涉及模型空间、世界空间、观察空间和裁剪空间。
建模是在模型空间进行,模型自带的坐标均为模型空间下的表示,当模型被放到世界坐标系中,模型的位置需使用世界空间下的坐标表示,即,将模型上的顶点坐标相应转换为世界空间下的坐标。为了方便后续裁剪、投影等处理,还需要由世界空间转换至观察空间(摄像机空间),最后由观察空间转换至屏幕空间。本公开的示例性实施例是在由世界空间转换至观察空间之前,基于世界空间下的模型顶点进行的操作。
其中,噪声纹理为预设的任意一噪声纹理函数,对噪声纹理采样得到的噪声至少包括噪声信息,其中噪声信息包括但不限于噪声的坐标信息、颜色信息等。
在一种可选的实施例中,噪声纹理函数中包括时间、噪声密度等参数,时间参数可以是随时间线性增长的float值,例如该值为游戏开始后的秒数,进而可以使采样到的噪声随时间不同,实现抖动的效果。噪声密度可以预先设定,以表征噪声的最终密度,如更密集,或更稀疏等。当然,本公开的示例性实施例的噪声纹理函数还可以包括其它参数,对此不做特殊限定。
在一种可选的实施例中,可通过顶点着色器利用模型顶点在世界空间的第一坐标对噪声纹理采样,得到在世界空间下的第一噪声。顶点着色器是在图形处理中的一个可编程流程,它的作用是将输入的几何数据转换成另一种形式,一般是3D空间中的顶点坐标。顶点着色器可以定义顶点的位置、颜色、法向量以及纹理坐标等属性,这些属性可以用来控制顶点在屏幕上的位置、光照效果、纹理映射等方面的表现。
在步骤S320中,根据第一坐标和第一噪声确定第一偏移量,并基于第一偏移量将第一坐标进行调整,得到第二坐标。
在本公开的示例性实施例中,第一偏移量是将第一坐标按照目标方向进行伸缩或位移的偏移量,以使模型在世界空间中发生形变。
在一种可选的实施例中,根据第一坐标和第一噪声确定的第一偏移量是顶点坐标沿目标方向的偏移量。例如,将模型顶点的第一坐标沿垂直方向(如y轴方向)偏移可以使模型在世界空间的垂直方向发生拉伸或收缩的效果。
在一种可选的实施例中,可通过顶点着色器根据第一坐标和第一噪声确定第一偏移量,并基于第一偏移量将第一坐标进行调整得到第二坐标。基于此,一个三维模型经过顶点着色器处理后,将得到一个经拉伸、扭曲后的不规则区域,如一个球体模型经过顶点着色器后得到一个拉伸、扭曲、不规则的类圆形区域。
在步骤S330中,利用模型的像素在世界空间的第三坐标对噪声纹理采样,得到第二噪声,像素为基于第二坐标对模型进行着色处理后确定。
在本公开的示例性实施例中,模型的像素是指模型在屏幕上所覆盖的像素。经前述的示例性实施例得到一系列顶点坐标(第二坐标)后,还可以将该第二坐标转换至屏幕坐标,并通过光栅化步骤,将屏幕坐标连成面并确定所覆盖的所有像素。
示例性的,如图4示出了根据本公开的示例性实施例的一种光栅化处理的示意图。在左边为经前述步骤经过顶点着色器输出的一系列模型顶点在屏幕上的位置(屏幕坐标),右边为基于屏幕坐标进行光栅化处理,以计算模型顶点在屏幕空间所构成的面所覆盖的像素,即得到模型的像素。当然,通过顶点着色器还可以输出法线、纹理坐标等,可根据实际的渲染需求确定,对此不做特殊限定。
在一可选的实施例中,可通过片元着色器对模型的像素进行处理,以确定模型的颜色及透明度。
需要说明的是,本公开的示例性实施例在获得第二坐标后,还可以包括其它可选处理流程,如曲面细分着色、域着色、几何着色等,以得到模型的像素,本公开的示例性实施例对该些处理流程不做特殊限定,可根据实际需求选择设置。
其中,模型的像素在世界空间的第三坐标表征模型的像素在世界空间的位置,基于第三坐标可以对噪声纹理采样,得到第二噪声。该噪声纹理可以与确定第一噪声的噪声纹理相同,也可以不同,可根据实际需求选择。
在一种可选的实施例中,该噪声纹理也可以为预设的任意一噪声纹理函数,对噪声纹理采样得到的噪声至少包括噪声信息,其中噪声信息包括但不限于噪声的坐标信息、颜色信息等。该噪声纹理函数中也可以包括时间、噪声密度等参数,对此不再赘述。
在步骤S340中,基于第三坐标和第二噪声确定像素的透明值,以对模型进行渲染。
在本公开的示例性实施例中,像素的透明值可以为溶解值,用于表示像素的透明信息,可通过改变虚拟对象的透明值从而达到使虚拟对象消失的效果,本公开的示例性实施例利用像素在世界空间的第三坐标和第二噪声干扰像素的透明值,以使模型达到溶解的效果。
本公开的示例性实施例中的模型渲染方法,一方面,利用模型顶点在世界空间的第一坐标对噪声纹理采样,得到第一噪声,并根据第一坐标和第二噪声确定第一偏移量,以基于第一偏移量将第一坐标进行调整,得到第二坐标,该过程通过获得的第一噪声对模型顶点的坐标进行调整,可以实现模型在特定方向的形变,如拉伸和位移等,增加了模型溶解特效在模型的形变上表现,使模型的溶解过程更流畅;另一方面,使用模型的像素在世界空间的第三坐标采样噪声纹理得到第二噪声,以基于第三坐标和第二噪声确定像素的透明度,以根据透明度对模型进行渲染,即,将像素在世界空间的位置作为参数影响溶解过程,使溶解特效更形象真实,提升用户的视觉体验。
以下对上述各步骤进行详细说明。
在一示例性实施例中,提供一种对噪声纹理采样的实现方式。如图5所示,步骤S310利用模型顶点在世界空间的第一坐标对噪声纹理采样可以包括步骤S510至步骤S530:
步骤S510:根据第一坐标的坐标信息确定至少两个二维坐标组。
第一坐标为模型顶点在世界空间的三维向量,噪声纹理为二维纹理,可以根据第一坐标信息确定至少两个二维坐标组,以使三维向量的各项均参与采样。示例性的,若第一坐标为(x,y,z),确定的至少两个二维坐标组为(x,y)和(x,z)。
步骤S520:利用至少两个二维坐标组分别对噪声纹理进行采样。
步骤S530:根据得到的至少两个采样结果确定第一噪声。
其中,仍以上述示例进行说明,可利用二维坐标组(x,y)对噪声纹理进行采样,并利用二维坐标组(x,z)对噪声纹理进行采样,并结合得到的两个采样结果确定第一噪声。
示例性的,以Random3D为第一噪声,TILE_DENSITY为密度参数,Time为时间参数,worldPos.xz为一个二维坐标组,worldPos.xy为一个二维坐标组,则可以通过以下公式实现对噪声纹理的采样:
其中,tRandom3D.SampleLevel用于噪声采样,求和公式中的各项为采样得到的值的r通道。
通过利用至少两个二维坐标组分别对噪声纹理进行采样,可以使第一坐标中的各项均参与采样,进而可以使每个顶点对应的噪声不同。当然,本公开实施例还可以根据需求采样两次以上,对此不再赘述。
在一示例性实施例中,提供一种确定第一偏移量的实现方式。如图6所示,步骤S320根据第一坐标和第一噪声确定第一偏移量可以包括步骤S610至步骤S630:
步骤S610:根据第一坐标确定模型顶点在模型的相对位置信息。
模型顶点在模型的相对位置信息是指模型顶点在模型范围内的相对位置。例如,模型顶点在模型的高度范围内的相对位置,即高度比例;或者,模型顶点在模型的宽度范围内的相对位置,即宽度比例等。
模型范围是指将模型进行包裹的多面体范围,即包围盒的范围。例如由CPU传入的将模型包裹的具有六面体范围的包围盒。也就是说,本公开的示例性实施例可以确定模型顶点在包围盒的相对位置信息。
基于此,根据第一坐标确定模型顶点在模型的相对位置信息可以进一步包括:
首先在世界空间中,获取模型在目标方向的最大坐标值和最小坐标值,然后根据坐标信息在目标方向的坐标值、最大坐标值和最小坐标值确定相对位置信息。
具体而言,以获取相对位置信息为相对高度为例,可以获取模型在垂直方向中坐标值worldPos.y(如y坐标值),然后获取模型在垂直方向的最大坐标值MaxBB.y和做小坐标值MinBB.y,即可根据worldPos.y、MaxBB.y和MinBB.y计算模型顶点在模型中的高度比例。
其中,可以通过如下公式计算相对高度:
half localHeight=(worldPos.y-MinBB.y)/(MaxBB.y-MinBB.y) (2)
其中,基于模型的包围盒,localHeight为相对高度,MaxBB.y和MinBB.y分别为包围盒的最高点纵坐标和最低点纵坐标,用于表征模型在世界空间中的最高高度和最低高度。
需要说明的是,上述示例仅是以相对位置信息为相对高度为例,还可以通过上述相类似的方法获取模型在任意方向上的相对位置信息,如在水平方向上的相对宽度等,在此不再一一列举。以下目标方向均以垂直方向为例进行说明。
步骤S620:根据当前帧数和相对位置信息,确定模型顶点在目标方向的斜率。
其中,当前帧数为表示溶解效果进度的帧数,例如可以为0~1的值,0表示整个溶解效果的开始所对应的帧,1表示整个溶解效果的结束所对应的帧。模型顶点在目标方向对应的斜率一定程度可以反映模型顶点在模型中的位置是否是在模型边缘位置。
图7示出了本公开的示例性实施例的一张确定斜率的实现方式,如图7所示,步骤S620根据当前帧数和相对位置信息,确定模型顶点在目标方向对应的斜率可进一步包括步骤S710和步骤S720:
步骤S710:获取预设渐变参数,预设渐变参数表征将模型进行变形调整的程度。即,预设渐变参数可以根据模型设计需求设定,通过调整预设渐变参数可以改变模型的变形调整程度,如改变拉伸的程度。
步骤S720:根据预设渐变参数、当前帧数和相对位置信息进行插值处理,以得到斜率。
在确定当前帧数和相对位置信息后,可结合预设渐变参数进行插值处理,以确定在目标方向上的斜率值。
其中,以确定在垂直方向(如y轴方向)上的斜率,可以通过以下公式计算斜率值:
其中verticalSlope为计算得到的斜率值,frame为当前帧数,GRADIENT为预设渐变参数,localHeight为相对高度,lerp(x,y,s)用于确定拉伸强度的效果。
在一可选的实施例中,可以将斜率值限制在[0,1]范围内,即若斜率值大于1则设置为1,若斜率值小于0则设置为0,以使全部的斜率值处于[0,1]范围内。
步骤S630:根据斜率、第一噪声和预设噪声幅度,确定第一偏移量。
本公开的示例性实施例可以将斜率与第一噪声、预设噪声幅度以及第一偏移量进行插值,以得到模型顶点在目标方向的第一偏移量。
其中,以目标方向为垂直方向为例,可以通过如下公式进行插值处理,以得到第一偏移量:
verticalSlope'=Random3D×verticalSlope×cNoisePower+verticalSlope(4)
其中,verticalSlope'为第一偏移量,Random3D为第一噪声,verticalSlope为斜率值,NoisePower为噪声幅度,c为预设常量。
在获得第一偏移量后,可基于第一偏移量将第一坐标进行调整,以得到第二坐标,即模型顶点在世界空间中经过位置偏移后的位置坐标。
在一种可选的实施例中,可以将模型顶点在目标方向上的坐标值与该目标方向上的第一偏移量求和,得到第二坐标。当然,本公开的示例性实施例还可以对第一偏移量进行缩放,并将缩放后的第一偏移量与坐标值求和,以获得第二坐标,缩放程度可根据设计需求设定,对此不做特殊限定。
本公开的示例性实施例首先在计算第一偏移量时引入第一噪声,该第一噪声通过模型顶点在世界空间的第一坐标采样得到,其次在计算相对位置信息、斜率的过程中均是针对目标方向进行的,即根据第一偏移量对第一坐标进行偏移处理全部发生在世界空间的目标方向,实现对模型在目标方向上的形变调整。最后,在对噪声纹理进行采样时,可以通过噪声纹理函数引入时间参数,使采样到的第一噪声是随时间变化的。
也就是说,本公开的示例性实施例能基于第一噪声使模型进行目标方向、随时间变化的变形调整,通过在模型渲染过程中加入模型的形变,可提升模型溶解的视觉效果。如图8示出了根据本公开的示例性实施例的一种对模型实现拉伸的效果图,从左至右为随着时间变化模型的拉伸与位移结果,丰富了模型溶解的视觉效果。
在一示例性实施例中,提供一种确定第二噪声的实现方式。如图9所示,步骤S330利用模型的像素在世界空间的第三坐标对所述噪声纹理采样得到第二噪声可以包括步骤S910和步骤S920:
步骤S910:将像素的第三坐标转换为屏幕坐标。
步骤S920:基于屏幕坐标对噪声纹理进行至少两次随机采样,以根据得到的至少两次采样结果确定第二噪声。
第三坐标为模型的像素在世界空间的坐标,可以将像素的坐标转换至屏幕坐标,以基于屏幕坐标对噪声纹理进行至少两次随机采样。
示例性的,可以通过如下公式(5)进行两次采样,并根据两次采样结果确定第二噪声:
halfRandom3D=tRandom3D.SampleLevel(sRandom3D,IN.HPosition.xy×ScreenInfo.zw×TILE_DENSITY+timeFac,0).rRandom3D=Random3D+tRandom3D.SampleLevel(sRandom3D,worldPos.xy×TILE_DENSITY-timeFac,0).r (5)
其中,IN.HPosition.xy×ScreenInfo.zw是为将像素坐标转换至屏幕坐标,timeFac是使纹理噪声函数随时间变化而变化,tRandom3D.SampleLevel表示噪声采样。
与确定第一噪声类似的,本公开的示例性实施例可以通过屏幕坐标对噪声纹理进行至少两次随机采样,并结合两次随机采样结果确定第二噪声。在一可选的实施例中,可以将至少两次采样结果求和以得到第二噪声。
在一示例性实施例中,还提供一种确定像素的透明值的实现方式。如图10所示,基于第三坐标和第二噪声确定像素的透明值可以包括步骤S1010和步骤S1020:
步骤S1010:根据第三坐标确定像素在目标方向的第二偏移量。
其中,可以利用像素的第三坐标中在目标方向的坐标值,减去该像素对应的模型顶点在世界空间下该目标方向的坐标值,以得到在世界空间中该像素在目标方向的第二偏移量。
目标方向仍可以是根据需求设置的模型的任意方向,以目标方向为垂直方向为例,可以利用像素在世界空间中的高度(如y轴坐标值)减去像素对应的模型顶点在世界空间下的高度值,以得到高度差值,即第二偏移量。
步骤S1020:根据第二偏移量、第二噪声和预设噪声幅度,确定像素的透明值。
其中,可以根据第一偏移量、第二噪声和预设噪声幅度来综合判断像素的位置,以根据位置确定该像素的透明值。
具体而言,根据第二偏移量、第二噪声和预设噪声幅度,确定像素的透明值可以包括:首先根据第二偏移量、第二噪声和预设噪声幅度,按照第一插值方式确定第一结果,然后基于第一结果与第一预设阈值的大小关系,确定像素的透明度。
其中,第一预设阈值用于筛选能够渲染呈现的像素,即,通过第一预设阈值的设定可以将像素进行裁剪,亦可称作过滤。也就是说,确定最终需要被保留的像素以及最终不保留的像素,以确定像素的透明程度。
其中,基于第一结果与第一预设阈值的大小关系确定像素的透明度可以通过如下公式(6)表示:
clip(cClipValue+0.01-verticalSlope-Random3D×cNoisePower×verticalSlope) (6)
其中,clip(x)函数用于对像素进行筛选,以确定哪些像素被保留并最终渲染呈现,以及确定哪些像素被剔除并最终不呈现;cClipValue+0.01为第一预设阈值,verticalSlope-Random3D×cNoisePower×verticalSlope为根据第二偏移量verticalSlope、第二噪声Random3D和预设噪声幅度NoisePower按照第一插值方式确定第一结果,c为预设常量。
通过公式(6)的clip(x)函数,将Random3D×cNoisePower×verticalSlope与第一预设阈值cClipValue+0.01进行比较,若第一预设阈值小于等于插值的第一结果,则该像素被剔除,作为被放弃的像素,最终不会渲染呈现;相反,若第一预设阈值大于插值的第一结果,则该像素被保留,像素对应的颜色被保留。
基于此,可以根据像素是否被保留确定像素对应的透明度,以根据透明度对模型进行渲染,得到具有溶解效果模型。参见图11所示为本公开的示例性实施例的一种溶解特效的示意图,随时间变化溶解区域逐渐变化,且呈现拉伸效果。
需要说明的是,上述记载均是以某一帧中模型的溶解渲染过程进行的说明,各帧的数据处理方式均相同,对此不做赘述。
通过本公开的示例性实施例,将像素在世界空间的位置作为参数影响溶解过程,使溶解特效更形象真实,提升用户的视觉体验。
在一示例性实施例中,还提供一种对模型溶解添加发光特效的实现方式。如图12所示,基于第三坐标和第二噪声确定像素的透明值,以对模型进行渲染还可以进一步包括步骤S1210至步骤S1230:
步骤S1210:基于第二噪声确定第一亮度。
在确定第二噪声后,可以基于第二噪声获取第一亮度,即可以对第二噪声进行处理以得到第一亮度。
具体的,可以通过如下公式(7)确定第一亮度:
GetLuminance(Random3D) (7)
其中,Random3D为第二噪声,GetLuminance(x)用于提取亮度值,示例性的,GetLuminance(x)可以为如下形式:
GetLuminance(rgb)=dot(rgb,half3(0.3,0.59,0.11))
其中,dot为向量点乘操作,通过GetLuminance(x)将第二噪声转换为亮度值。
步骤S1220:根据第二偏移量、第二噪声和预设噪声幅度确定第二亮度。
根据第二偏移量、第二噪声和预设噪声幅度确定第二亮度是指判断像素是否需要增加或减少亮度值的过程,即筛选需要进行亮度调整的像素,并确定需要调整的亮度值,即第二亮度。
具体而言,根据第二偏移量、第二噪声和预设噪声幅度确定第二亮度可以包括:首先根据第二偏移量、第二噪声和预设噪声幅度,按照第二插值方式确定第二结果,然后基于第二结果与第二预设阈值的大小关系,确定第二亮度。
其中,第二预设阈值用于筛选需要进行亮度调整的像素。需要说明的是,本公开的示例性实施例所指的亮度调整是针对第一亮度的调整,若像素需要调整亮度,则根据第二亮度对第一亮度进行调整,否则像素保持第一亮度不变。
示例性的,可以通过如下公式(8)基于第二结果与第二预设阈值的大小关系确定第二亮度:
step(cClipValue×0.5+0.01,verticalSlope+Random3D×cNoisePower×verticalSlope)
其中,step(x)函数用于基于第二偏移量、第二噪声和预设噪声幅度,确定像素是否需要调整亮度,用于确定更靠近溶解边缘的像素,该函数的定义为:比较两个值,根据哪个值更大返回0或1;ClipValue×0.5+0.01为第二预设阈值,verticalSlope为第二偏移量,Random3D为第二噪声,NoisePower为预设噪声幅度,c为预设常量。
基于公式(8)将第二预设阈值cClipValue×0.5+0.01与插值得到的第二结果verticalSlope+Random3D×cNoisePower×verticalSlope进行比较,若第二结果大于或等于第二预设阈值,表明像素更靠近溶解边缘,则该像素需要增加亮度;相反,若第二结果小于第二预设阈值,则该像素的亮度保持第一亮度。
在一种可选的实施例中,若确定像素需要增加亮度,则可以通过增加第二亮度至第一亮度上,以使像素的亮度增加,产生发光的效果;否则,若确定像素不需要增加亮度,则保持该像素的亮度为第一亮度。
可选地,第二亮度可以为大于1的HDR(High Dynamic Range Imaging,高动态范围成像)比例因子,将第二亮度与第一亮度相乘,以得到目标亮度,并基于目标亮度对模型进行亮度渲染;可选地,第二亮度还可以为具体的亮度值,将第二亮度与第一亮度相加,以得到目标亮度,并基于目标亮度对模型进行亮度渲染。当然,本公开的示例性实施例的第二亮度还可以为其它形式,对此不做特殊限定。
需要说明的是,上述是以增加像素的亮度为例进行说明,本公开的示例性实施例还可以对像素的亮度进行减少,可以按照降低亮度的需求设置第二亮度的确定方式,对此不再赘述。
步骤S1230:结合第一亮度和第二亮度对模型进行亮度渲染。
其中,结合第一亮度和第二亮度对模型继续渲染,即使模型的溶解边缘的像素增加亮度。
如图13所示为本公开的示例性实施例的一种伴随发光特效的模型溶解示意图。相比于图11所示的模型溶解特效,图13增加发光特效,溶解边缘的亮度升高。
通过本公开的示例性实施例,能根据模型的像素的世界坐标采样噪声纹理,进而基于像素的世界坐标和第二噪声对像素的亮度进行调整,使溶解边缘的更明亮突出,提高溶解特效在视觉呈现上的表现,并且溶解边缘更具立体感和质感。
在一示例性示例中,如前述实施例所述,本公开的示例性实施例的噪声纹理为随时间变化的,对噪声纹理采样能得到随时间变化的噪声,进而得到随溶解特效过程的不同帧数而不同的溶解渲染结果。
如下以步骤S310和步骤S320为顶点着色器执行,步骤S330和步骤S340为片元着色器执行,以对游戏模型进行拉伸位移为例,对本公开的示例性实施例的模型渲染方法进行说明。
首先,顶点着色器接收模型数据,包括模型顶点。
其次,顶点着色器根据模型顶点在世界空间的第一坐标确定至少两个二维坐标组(如若第一坐标为(x,y,z),确定的至少两个二维坐标组为(x,y)和(x,z)),并利用至少两个二维坐标组分别对噪声纹理进行采样,以根据得到的至少两个采样结果确定第一噪声,参见公式(1)。
然后,顶点着色器在世界空间中,获取模型在垂直方向的最大坐标值和最小坐标值,并根据坐标信息在垂直方向的坐标值、最大坐标值和最小坐标值确定模型顶点在模型的相对高度,可参见公式(2)。
接着,顶点着色器根据预设渐变参数、当前帧数和相对高度进行插值处理,以得到斜率,可参见公式(3)。
进一步的,顶点着色器根据斜率、第一噪声和预设噪声幅度,确定第一偏移量,以根据第一偏移量将第一坐标进行调整,得到第二坐标,其中,确定第一偏移量可参见公式(4)。
至此,顶点着色器实现对模型的形变调整。在此之后,顶点着色器将得到一系列第二坐标转换至屏幕坐标的顶点输出。
进而,通过光栅化步骤,将屏幕坐标连成面并确定所覆盖的所有像素,即得到模型的像素,作为片元着色器的输入,以下对片元作色器的处理过程进行说明。
首先,片元着色器将像素的第三坐标转换为屏幕坐标,并基于屏幕坐标对噪声纹理进行至少两次随机采样,以根据得到的至少两次采样结果确定第二噪声,可参见公式(5)。
其次,片元着色器根据第三坐标确定像素在垂直方向的第二偏移量,并根据第二偏移量、第二噪声和预设噪声幅度,按照第一插值方式确定第一结果,以基于第一结果与第一预设阈值的大小关系,确定像素的透明度,以对模型进行渲染,得到模型溶解特效。其中,该第一预设阈值用于筛选能够渲染呈现的像素。其中,确定第一结果,以及基于第一结果与第一预设阈值的大小关系确定像素的透明度可参见公式(6)。
进一步的,片元着色器基于第二噪声确定第一亮度,并根据第二偏移量、第二噪声和预设噪声幅度,按照第二插值方式确定第二结果,以基于第二结果与第二预设阈值的大小关系,确定第二亮度。该第二预设阈值用于筛选需要进行亮度调整的像素。其中,确定第一亮度可参见公式(7),确定第二亮度可参见公式(8)。
最后,片元着色器结合第一亮度和第二亮度对模型进行亮度渲染,以使模型在溶解过程中呈现发光效果。
需要说明的是,上述步骤的实施细节已在上述的示例性实施例中记载,在此不再赘述。
通过本公开的示例性实施例中的模型渲染方法,利用模型顶点在世界空间的第一坐标对噪声纹理采样,得到第一噪声,并根据第一坐标和第二噪声确定第一偏移量,以基于第一偏移量将第一坐标进行调整,得到第二坐标,该过程通过获得的第一噪声对模型顶点的坐标进行调整,可以实现模型在特定方向的形变,如拉伸和位移等,增加了模型溶解特效在模型的形变上表现,使模型的溶解过程更流畅;使用模型的像素在世界空间的第三坐标采样噪声纹理得到第二噪声,以基于第三坐标和第二噪声确定像素的透明度,以根据透明度对模型进行渲染,即,将像素在世界空间的位置作为参数影响溶解过程,使溶解特效更形象真实,提升用户的视觉体验。另外,通过对溶解边缘增加发光效果,使溶解边缘亮度突出,提升视觉感知,也使溶解边缘更立体富有质感。
在本公开的示例性实施例中,还提供了一种模型渲染装置。参考图14所示,该模型渲染装置1400可以包括第一顶点着色模块1410、第二顶点着色模块1420、第一片元着色模块1430和第二片元着色模块1440。具体地:
第一顶点着色模块1410,用于利用模型顶点在世界空间的第一坐标对噪声纹理采样,得到第一噪声;
第二顶点着色模块1420,用于根据所述第一坐标和所述第一噪声确定第一偏移量,并基于所述第一偏移量将所述第一坐标进行调整,得到第二坐标;
第一片元着色模块1430,用于利用模型的像素在世界空间的第三坐标对所述噪声纹理采样,得到第二噪声,所述像素为基于所述第二坐标对所述模型进行着色处理后确定;
第二片元着色模块1440,用于基于所述第三坐标和所述第二噪声确定所述像素的透明值,以对所述模型进行渲染。
在本公开的一种示例性实施例中,第一顶点着色模块1410被配置为执行:根据所述第一坐标的坐标信息确定至少两个二维坐标组;利用所述至少两个二维坐标组分别对所述噪声纹理进行采样;根据得到的至少两个采样结果确定所述第一噪声。
在本公开的一种示例性实施例中,第二顶点着色模块1420被配置为执行:根据所述第一坐标确定所述模型顶点在所述模型的相对位置信息;根据当前帧数和所述相对位置信息,确定所述模型顶点在目标方向对应的斜率;根据所述斜率、所述第一噪声和预设噪声幅度,确定所述第一偏移量。
在本公开的一种示例性实施例中,第二顶点着色模块1420被配置为执行:在世界空间中,获取所述模型在所述目标方向的最大坐标值和最小坐标值;根据所述坐标信息在所述目标方向的坐标值、所述最大坐标值和最小坐标值确定所述相对位置信息。
在本公开的一种示例性实施例中,第二顶点着色模块1420被配置为执行:获取预设渐变参数,所述预设渐变参数表征将所述模型进行变形调整的程度;根据所述预设渐变参数、所述当前帧数和所述相对位置信息进行插值处理,以得到所述斜率。
在本公开的一种示例性实施例中,第二顶点着色模块1420被配置为执行:将所述斜率与所述第一噪声、所述预设噪声幅度以及所述第一偏移量进行插值,以得到所述模型顶点在所述目标方向的所述第一偏移量。
在本公开的一种示例性实施例中,第一片元着色模块1430被配置为执行:将所述像素的第三坐标转换为屏幕坐标;基于所述屏幕坐标对所述噪声纹理进行至少两次随机采样,以根据得到的至少两次采样结果确定所述第二噪声。
在本公开的一种示例性实施例中,第二片元着色模块1440被配置为执行:根据所述第三坐标确定所述像素在目标方向的第二偏移量;根据所述第二偏移量、所述第二噪声和预设噪声幅度,确定所述像素的透明值。
在本公开的一种示例性实施例中,第二片元着色模块1440被配置为执行:根据所述第二偏移量、所述第二噪声和预设噪声幅度,按照第一插值方式确定第一结果;基于所述第一结果与第一预设阈值的大小关系,确定所述像素的透明度,所述第一预设阈值用于筛选能够渲染呈现的像素。
在本公开的一种示例性实施例中,第二片元着色模块1440还被配置为执行:基于所述第二噪声确定第一亮度;根据所述第二偏移量、所述第二噪声和预设噪声幅度,确定第二亮度;结合所述第一亮度和所述第二亮度对所述模型进行亮度渲染。
在本公开的一种示例性实施例中,第二片元着色模块1440还被配置为执行:根据所述第二偏移量、所述第二噪声和预设噪声幅度,按照第二插值方式确定第二结果;基于所述第二结果与第二预设阈值的大小关系,确定所述第二亮度;其中,所述第二预设阈值用于筛选需要进行亮度调整的像素。
在本公开的一种示例性实施例中,所述噪声纹理为随时间变化的,对所述噪声纹理采样能得到随时间变化的噪声。
由于本公开的示例性实施例的模型渲染装置的各个功能模块的详细内容已在上述数据处理方法的示例性实施例中记载,因此在此不再赘述。
应当注意,尽管在上文详细描述中提及了模型渲染装置的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,在本公开示例性实施方式中,还提供了一种能够实现上述方法的计算机存储介质。其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施例中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施例的步骤,如,可以执行如下步骤:
利用模型顶点在世界空间的第一坐标对噪声纹理采样,得到第一噪声;根据所述第一坐标和所述第一噪声确定第一偏移量,并基于所述第一偏移量将所述第一坐标进行调整,得到第二坐标;利用模型的像素在世界空间的第三坐标对所述噪声纹理采样,得到第二噪声,所述像素为基于所述第二坐标对所述模型进行着色处理后确定;基于所述第三坐标和所述第二噪声确定所述像素的透明值,以对所述模型进行渲染。
在本公开的一种示例性实施例中,所述利用模型顶点在世界空间的第一坐标对噪声纹理采样,包括:根据所述第一坐标的坐标信息确定至少两个二维坐标组;利用所述至少两个二维坐标组分别对所述噪声纹理进行采样;根据得到的至少两个采样结果确定所述第一噪声。
在本公开的一种示例性实施例中,所述根据所述第一坐标和所述第一噪声确定第一偏移量,包括:根据所述第一坐标确定所述模型顶点在所述模型的相对位置信息;根据当前帧数和所述相对位置信息,确定所述模型顶点在目标方向对应的斜率;根据所述斜率、所述第一噪声和预设噪声幅度,确定所述第一偏移量。
在本公开的一种示例性实施例中,所述根据所述第一坐标确定所述模型顶点在所述模型的相对位置信息,包括:在世界空间中,获取所述模型在所述目标方向的最大坐标值和最小坐标值;根据所述坐标信息在所述目标方向的坐标值、所述最大坐标值和最小坐标值确定所述相对位置信息。
在本公开的一种示例性实施例中,所述根据当前帧数和所述相对位置信息,确定所述模型顶点在目标方向对应的斜率,包括:获取预设渐变参数,所述预设渐变参数表征将所述模型进行变形调整的程度;根据所述预设渐变参数、所述当前帧数和所述相对位置信息进行插值处理,以得到所述斜率。
在本公开的一种示例性实施例中,所述根据所述斜率、所述第一噪声和预设噪声幅度,确定所述第一偏移量,包括:将所述斜率与所述第一噪声、所述预设噪声幅度以及所述第一偏移量进行插值,以得到所述模型顶点在所述目标方向的所述第一偏移量。
在本公开的一种示例性实施例中,所述利用模型的像素在世界空间的第三坐标对所述噪声纹理采样,得到第二噪声,包括:将所述像素的第三坐标转换为屏幕坐标;基于所述屏幕坐标对所述噪声纹理进行至少两次随机采样,以根据得到的至少两次采样结果确定所述第二噪声。
在本公开的一种示例性实施例中,所述基于所述第三坐标和所述第二噪声确定所述像素的透明值,包括:根据所述第三坐标确定所述像素在目标方向的第二偏移量;根据所述第二偏移量、所述第二噪声和预设噪声幅度,确定所述像素的透明值。
在本公开的一种示例性实施例中,所述根据所述第二偏移量、所述第二噪声和预设噪声幅度,确定所述像素的透明值,包括:根据所述第二偏移量、所述第二噪声和预设噪声幅度,按照第一插值方式确定第一结果;基于所述第一结果与第一预设阈值的大小关系,确定所述像素的透明度,所述第一预设阈值用于筛选能够渲染呈现的像素。
在本公开的一种示例性实施例中,所述方法还包括:基于所述第二噪声确定第一亮度;根据所述第二偏移量、所述第二噪声和预设噪声幅度,确定第二亮度;结合所述第一亮度和所述第二亮度对所述模型进行亮度渲染。
在本公开的一种示例性实施例中,所述根据所述第二偏移量、所述第二噪声和预设噪声幅度,确定第二亮度,包括:根据所述第二偏移量、所述第二噪声和预设噪声幅度,按照第二插值方式确定第二结果;基于所述第二结果与第二预设阈值的大小关系,确定所述第二亮度;其中,所述第二预设阈值用于筛选需要进行亮度调整的像素。
在本公开的一种示例性实施例中,其特征在于,所述噪声纹理为随时间变化的,对所述噪声纹理采样能得到随时间变化的噪声。
程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言-诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施例、完全的软件实施例(包括固件、微代码等),或硬件和软件方面结合的实施例,这里可以统称为“电路”、“模块”或“系统”。
下面参照图15来描述根据本公开的这种实施例的电子设备1500。图15显示的电子设备1500仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图15所示,电子设备1500以通用计算设备的形式表现。电子设备1500的组件可以包括但不限于:上述至少一个处理单元1510、上述至少一个存储单元1520、连接不同系统组件(包括存储单元1520和处理单元1510)的总线1530、显示单元1540。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元1510执行,使得所述处理单元1510执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施例的步骤。例如,所述处理单元1510可以执行如下所示的步骤:利用模型顶点在世界空间的第一坐标对噪声纹理采样,得到第一噪声;根据所述第一坐标和所述第一噪声确定第一偏移量,并基于所述第一偏移量将所述第一坐标进行调整,得到第二坐标;利用模型的像素在世界空间的第三坐标对所述噪声纹理采样,得到第二噪声,所述像素为基于所述第二坐标对所述模型进行着色处理后确定;基于所述第三坐标和所述第二噪声确定所述像素的透明值,以对所述模型进行渲染。
在本公开的一种示例性实施例中,所述利用模型顶点在世界空间的第一坐标对噪声纹理采样,包括:根据所述第一坐标的坐标信息确定至少两个二维坐标组;利用所述至少两个二维坐标组分别对所述噪声纹理进行采样;根据得到的至少两个采样结果确定所述第一噪声。
在本公开的一种示例性实施例中,所述根据所述第一坐标和所述第一噪声确定第一偏移量,包括:根据所述第一坐标确定所述模型顶点在所述模型的相对位置信息;根据当前帧数和所述相对位置信息,确定所述模型顶点在目标方向对应的斜率;根据所述斜率、所述第一噪声和预设噪声幅度,确定所述第一偏移量。
在本公开的一种示例性实施例中,所述根据所述第一坐标确定所述模型顶点在所述模型的相对位置信息,包括:在世界空间中,获取所述模型在所述目标方向的最大坐标值和最小坐标值;根据所述坐标信息在所述目标方向的坐标值、所述最大坐标值和最小坐标值确定所述相对位置信息。
在本公开的一种示例性实施例中,所述根据当前帧数和所述相对位置信息,确定所述模型顶点在目标方向对应的斜率,包括:获取预设渐变参数,所述预设渐变参数表征将所述模型进行变形调整的程度;根据所述预设渐变参数、所述当前帧数和所述相对位置信息进行插值处理,以得到所述斜率。
在本公开的一种示例性实施例中,所述根据所述斜率、所述第一噪声和预设噪声幅度,确定所述第一偏移量,包括:将所述斜率与所述第一噪声、所述预设噪声幅度以及所述第一偏移量进行插值,以得到所述模型顶点在所述目标方向的所述第一偏移量。
在本公开的一种示例性实施例中,所述利用模型的像素在世界空间的第三坐标对所述噪声纹理采样,得到第二噪声,包括:将所述像素的第三坐标转换为屏幕坐标;基于所述屏幕坐标对所述噪声纹理进行至少两次随机采样,以根据得到的至少两次采样结果确定所述第二噪声。
在本公开的一种示例性实施例中,所述基于所述第三坐标和所述第二噪声确定所述像素的透明值,包括:根据所述第三坐标确定所述像素在目标方向的第二偏移量;根据所述第二偏移量、所述第二噪声和预设噪声幅度,确定所述像素的透明值。
在本公开的一种示例性实施例中,所述根据所述第二偏移量、所述第二噪声和预设噪声幅度,确定所述像素的透明值,包括:根据所述第二偏移量、所述第二噪声和预设噪声幅度,按照第一插值方式确定第一结果;基于所述第一结果与第一预设阈值的大小关系,确定所述像素的透明度,所述第一预设阈值用于筛选能够渲染呈现的像素。
在本公开的一种示例性实施例中,所述方法还包括:基于所述第二噪声确定第一亮度;根据所述第二偏移量、所述第二噪声和预设噪声幅度,确定第二亮度;结合所述第一亮度和所述第二亮度对所述模型进行亮度渲染。
在本公开的一种示例性实施例中,所述根据所述第二偏移量、所述第二噪声和预设噪声幅度,确定第二亮度,包括:根据所述第二偏移量、所述第二噪声和预设噪声幅度,按照第二插值方式确定第二结果;基于所述第二结果与第二预设阈值的大小关系,确定所述第二亮度;其中,所述第二预设阈值用于筛选需要进行亮度调整的像素。
在本公开的一种示例性实施例中,其特征在于,所述噪声纹理为随时间变化的,对所述噪声纹理采样能得到随时间变化的噪声。
存储单元1520可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)1521和/或高速缓存存储单元1522,还可以进一步包括只读存储单元(ROM)1523。
存储单元1520还可以包括具有一组(至少一个)程序模块1525的程序/实用工具1524,这样的程序模块1525包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线1530可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备1500也可以与一个或多个外部设备1600(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备1500交互的设备通信,和/或与使得该电子设备1500能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口1550进行。并且,电子设备1500还可以通过网络适配器1560与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1560通过总线1530与电子设备1500的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1500使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施例的方法。
此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
Claims (15)
1.一种模型渲染方法,其特征在于,所述方法包括:
利用模型顶点在世界空间的第一坐标对噪声纹理采样,得到第一噪声;
根据所述第一坐标和所述第一噪声确定第一偏移量,并基于所述第一偏移量将所述第一坐标进行调整,得到第二坐标;
利用模型的像素在世界空间的第三坐标对所述噪声纹理采样,得到第二噪声,所述像素为基于所述第二坐标对所述模型进行着色处理后确定;
基于所述第三坐标和所述第二噪声确定所述像素的透明值,以对所述模型进行渲染。
2.根据权利要求1所述的方法,其特征在于,所述利用模型顶点在世界空间的第一坐标对噪声纹理采样,包括:
根据所述第一坐标的坐标信息确定至少两个二维坐标组;
利用所述至少两个二维坐标组分别对所述噪声纹理进行采样;
根据得到的至少两个采样结果确定所述第一噪声。
3.根据权利要求1所述的方法,其特征在于,所述根据所述第一坐标和所述第一噪声确定第一偏移量,包括:
根据所述第一坐标确定所述模型顶点在所述模型的相对位置信息;
根据当前帧数和所述相对位置信息,确定所述模型顶点在目标方向对应的斜率;
根据所述斜率、所述第一噪声和预设噪声幅度,确定所述第一偏移量。
4.根据权利要求3所述的方法,其特征在于,所述根据所述第一坐标确定所述模型顶点在所述模型的相对位置信息,包括:
在世界空间中,获取所述模型在所述目标方向的最大坐标值和最小坐标值;
根据所述坐标信息在所述目标方向的坐标值、所述最大坐标值和最小坐标值确定所述相对位置信息。
5.根据权利要求3所述的方法,其特征在于,所述根据当前帧数和所述相对位置信息,确定所述模型顶点在目标方向对应的斜率,包括:
获取预设渐变参数,所述预设渐变参数表征将所述模型进行变形调整的程度;
根据所述预设渐变参数、所述当前帧数和所述相对位置信息进行插值处理,以得到所述斜率。
6.根据权利要求3所述的方法,其特征在于,所述根据所述斜率、所述第一噪声和预设噪声幅度,确定所述第一偏移量,包括:
将所述斜率与所述第一噪声、所述预设噪声幅度以及所述第一偏移量进行插值,以得到所述模型顶点在所述目标方向的所述第一偏移量。
7.根据权利要求1所述的方法,其特征在于,所述利用模型的像素在世界空间的第三坐标对所述噪声纹理采样,得到第二噪声,包括:
将所述像素的第三坐标转换为屏幕坐标;
基于所述屏幕坐标对所述噪声纹理进行至少两次随机采样,以根据得到的至少两次采样结果确定所述第二噪声。
8.根据权利要求1所述的方法,其特征在于,所述基于所述第三坐标和所述第二噪声确定所述像素的透明值,包括:
根据所述第三坐标确定所述像素在目标方向的第二偏移量;
根据所述第二偏移量、所述第二噪声和预设噪声幅度,确定所述像素的透明值。
9.根据权利要求8所述的方法,其特征在于,所述根据所述第二偏移量、所述第二噪声和预设噪声幅度,确定所述像素的透明值,包括:
根据所述第二偏移量、所述第二噪声和预设噪声幅度,按照第一插值方式确定第一结果;
基于所述第一结果与第一预设阈值的大小关系,确定所述像素的透明度,所述第一预设阈值用于筛选能够渲染呈现的像素。
10.根据权利要求8所述的方法,其特征在于,所述方法还包括:
基于所述第二噪声确定第一亮度;
根据所述第二偏移量、所述第二噪声和预设噪声幅度,确定第二亮度;
结合所述第一亮度和所述第二亮度对所述模型进行亮度渲染。
11.根据权利要求10所述的方法,其特征在于,所述根据所述第二偏移量、所述第二噪声和预设噪声幅度,确定第二亮度,包括:
根据所述第二偏移量、所述第二噪声和预设噪声幅度,按照第二插值方式确定第二结果;
基于所述第二结果与第二预设阈值的大小关系,确定所述第二亮度;
其中,所述第二预设阈值用于筛选需要进行亮度调整的像素。
12.根据权利要求1至11中任一项所述的方法,其特征在于,
所述噪声纹理为随时间变化的,对所述噪声纹理采样能得到随时间变化的噪声。
13.一种模型渲染装置,其特征在于,所述装置包括:
第一顶点着色模块,用于利用模型顶点在世界空间的第一坐标对噪声纹理采样,得到第一噪声;
第二顶点着色模块,用于根据所述第一坐标和所述第一噪声确定第一偏移量,并基于所述第一偏移量将所述第一坐标进行调整,得到第二坐标;
第一片元着色模块,用于利用模型的像素在世界空间的第三坐标对所述噪声纹理采样,得到第二噪声,所述像素为基于所述第二坐标对所述模型进行着色处理后确定;
第二片元着色模块,用于基于所述第三坐标和所述第二噪声确定所述像素的透明值,以对所述模型进行渲染。
14.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现根据权利要求1至12中任一项所述的方法。
15.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至12中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311338647.0A CN117409131A (zh) | 2023-10-16 | 2023-10-16 | 模型渲染方法及装置、计算机可读存储介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311338647.0A CN117409131A (zh) | 2023-10-16 | 2023-10-16 | 模型渲染方法及装置、计算机可读存储介质和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117409131A true CN117409131A (zh) | 2024-01-16 |
Family
ID=89495531
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311338647.0A Pending CN117409131A (zh) | 2023-10-16 | 2023-10-16 | 模型渲染方法及装置、计算机可读存储介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117409131A (zh) |
-
2023
- 2023-10-16 CN CN202311338647.0A patent/CN117409131A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6580430B1 (en) | Method and apparatus for providing improved fog effects in a graphics system | |
CN110196746B (zh) | 交互界面渲染方法及装置、电子设备、存储介质 | |
US20070139408A1 (en) | Reflective image objects | |
US7212206B2 (en) | Method and apparatus for self shadowing and self interreflection light capture | |
JP2010033296A (ja) | プログラム、情報記憶媒体及び画像生成システム | |
US11238572B2 (en) | Device and method for dynamic range expansion in a virtual reality scene | |
JP5731566B2 (ja) | 情報処理装置、制御方法、及び記録媒体 | |
CN113936086B (zh) | 毛发模型的生成方法、装置、电子设备以及存储介质 | |
US11804008B2 (en) | Systems and methods of texture super sampling for low-rate shading | |
JP4816928B2 (ja) | 画像生成用のプログラム及び当該プログラムを記録したコンピュータ読み取り可能な記録媒体、画像処理装置、画像処理方法 | |
WO2023202254A1 (zh) | 图像渲染方法、装置、电子设备、计算机可读存储介质及计算机程序产品 | |
US20200183566A1 (en) | Hybrid image rendering system | |
JP4827250B2 (ja) | プログラム、情報記憶媒体及び画像生成システム | |
JP2008077405A (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP2003168130A (ja) | リアルタイムで合成シーンのフォトリアルなレンダリングをプレビューするための方法 | |
JP2006252426A (ja) | プログラム、情報記憶媒体及び画像生成システム | |
US7710419B2 (en) | Program, information storage medium, and image generation system | |
CN115970275A (zh) | 虚拟对象的投影处理方法、装置、存储介质与电子设备 | |
CN117409131A (zh) | 模型渲染方法及装置、计算机可读存储介质和电子设备 | |
US7724255B2 (en) | Program, information storage medium, and image generation system | |
CN117078838B (zh) | 一种对象渲染方法、装置、存储介质及电子设备 | |
JP2006277488A (ja) | プログラム、情報記憶媒体及び画像生成システム | |
JP2010033302A (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
CN116524102A (zh) | 卡通二阶直接光照的渲染方法、装置及系统 | |
Schwandt et al. | Illumination in Mixed Reality |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |