CN116797701A - 扩散效果渲染方法、装置、存储介质及电子设备 - Google Patents
扩散效果渲染方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN116797701A CN116797701A CN202310595090.2A CN202310595090A CN116797701A CN 116797701 A CN116797701 A CN 116797701A CN 202310595090 A CN202310595090 A CN 202310595090A CN 116797701 A CN116797701 A CN 116797701A
- Authority
- CN
- China
- Prior art keywords
- target
- distance field
- map
- diffusion effect
- diffusion
- 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
- 238000009792 diffusion process Methods 0.000 title claims abstract description 161
- 230000000694 effects Effects 0.000 title claims abstract description 137
- 238000009877 rendering Methods 0.000 title claims abstract description 79
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000003860 storage Methods 0.000 title claims abstract description 28
- 238000004590 computer program Methods 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 abstract description 22
- 238000010586 diagram Methods 0.000 description 27
- 238000007781 pre-processing Methods 0.000 description 14
- 238000012545 processing Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 241001270131 Agaricus moelleri Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000006735 deficit Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Landscapes
- Image Generation (AREA)
Abstract
本公开涉及计算机渲染领域,具体涉及扩散效果渲染方法、扩散效果渲染装置、存储介质及电子设备。该扩散效果渲染方法,包括:获取预烘焙的目标二维有向距离场灰度图;将所述目标二维有向距离场灰度图中的像素灰度信息投射至目标三维模型的目标扩散位置处得到投射结果;将所述投射结果烘焙至所述目标三维模型的纹理贴图中得到有向距离场区域图,以根据所述有向距离场区域图在所述目标三维模型的所述目标扩散位置处进行扩散效果渲染。该扩散效果渲染方法能够解决现有的扩散效果渲染计算量复杂且储存数据较大的问题。
Description
技术领域
本公开涉及计算机渲染领域,具体涉及扩散效果渲染方法、扩散效果渲染装置、存储介质及电子设备。
背景技术
SDF(Signed Distance Field,有向距离场)旨在用距离的方式来描述几何图形。2D SDF图是经常使用的一种记录方向的灰度数据图,这类贴图通常也用于制作字体渲染、图片渲染、几何图形渲染、形变动画、扩散特效渲染、纹理方向性流动、卡通渲染中面部的阴影解决方案等。
现有技术中在游戏引擎中渲染扩散效果都是使用传统制作出的SDF有向距离场,传统制作方法需要计算网格点到指定表面的距离、计算网格点到指定表面的法向量等,计算复杂度较高,并且生成的SDF文件需要存储大量的数据,占用存储空间较大,不利于数据传输和存储。同时还存在可控性差,绘制难度高等多种问题。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开提供一种扩散效果渲染方法、扩散效果渲染装置、存储介质及电子设备,旨在解决现有的扩散效果渲染计算量复杂且储存数据较大的问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开实施例的一方面,提供了一种扩散效果渲染方法,包括:
获取预烘焙的目标二维有向距离场灰度图;将所述目标二维有向距离场灰度图中的像素灰度信息投射至目标三维模型的目标扩散位置处得到投射结果;将所述投射结果烘焙至所述目标三维模型的纹理贴图中得到有向距离场区域图,以根据所述有向距离场区域图在所述目标三维模型的所述目标扩散位置处进行扩散效果渲染。
根据本公开实施例的第二方面,提供了一种扩散效果渲染装置,包括:获取模块,用于获取预烘焙的目标二维有向距离场灰度图;投射模块,用于将所述目标二维有向距离场灰度图中的像素灰度信息投射至目标三维模型的目标扩散位置处得到投射结果;烘焙模块,用于将所述投射结果烘焙至所述目标三维模型的纹理贴图中得到有向距离场区域图,以根据所述有向距离场区域图在所述目标三维模型的所述目标扩散位置处进行扩散效果渲染。
根据本公开实施例的第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述实施例中的扩散效果渲染方法。
根据本公开实施例的第四方面,提供了一种电子设备,其特征在于,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中的扩散效果渲染方法。
本公开示例性实施例可以具有以下部分或全部有益效果:
在本公开的一些实施例所提供的技术方案中,通过获取预烘焙的目标二维有向距离场(2D SDF)灰度图,然后将其投射至目标三维模型中生成带有目标扩散位置的有向距离场(SDF)区域图,作为预处理极坐标的扩散效果的有向距离场区域图,进而可以直接使用有向距离场区域图的预烘焙结果和目标扩散位置来进行扩散效果的渲染。基于上述方法,通过生成有向距离场区域图实现预处理极坐标的扩散效果,一方面将扩散效果转换为直角坐标系下的效果,能够减少计算量,降低计算复杂度;另一方面,通过预处理极坐标的扩散效果,可以提高扩散效果的精度和质量,使得渲染效果更加真实和细腻;再一方面,预处理极坐标的扩散效果可以在游戏引擎渲染扩散效果之前就进行处理,将处理结果保存在预处理数据中,可以避免在运行阶段频繁进行计算,从而降低系统资源的消耗,提高系统的性能和稳定性,同时将复杂的计算过程封装在预处理代码中,也提高了代码的可维护性和可读性,方便代码的修改和管理。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示意性示出本公开示例性实施例中一种扩散效果渲染方法的流程示意图;
图2(a)示意性示出本公开示例性实施例中一种初始二维有向距离场灰度图的示意图;
图2(b)示意性示出本公开示例性实施例中一种目标二维有向距离场灰度图的示意图;
图3示意性示出本公开示例性实施例中一种投射结果的示意图;
图4示意性示出本公开示例性实施例中一种灰度遮罩标识贴图的示意图;
图5示意性示出本公开示例性实施例中一种扩散效果渲染装置的组成示意图;
图6示意性示出本公开示例性实施例中一种计算机可读存储介质的示意图;
图7示意性示出本公开示例性实施例中一种电子设备的计算机系统的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本公开的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
首先,对本申请中的关键术语进行如下解释:
有向距离场:Signed Distance Field,简记为SDF。Signed,正负号;Distance,点到点的距离;Field,区域。有向距离场除了表示一个像素到几何边缘的距离,还可以判断该像素是在区域内还是在区域外,正号表示区域外,负号表示区域内。表示的是空间中的点距离最近的物体表面的距离,我们可以将其应用在二维字体(2D font)或是三维图像(3D)渲染之中。2D font中使用SDF,可以在字体缩放时,保持比较清晰锐利的边缘。在3D实时渲染中,主要使用SDF来加速光线追踪,使用离线渲染的手法来渲染阴影或是AO(AmbientOcclusion,环境光遮蔽)。
灰度图:Gray Scale Image或是Grey Scale Image,又称灰阶图。把白色与黑色之间按对数关系分为若干等级,称为灰度。灰度分为256阶,用于显示的灰度图像通常用每个采样像素8bits的非线性尺度来保存,这样可以有256种灰度(8bits就是2的8次方=256)。这种精度刚刚好能够避免可见的条带有损,并且非常易于编程。
UV:纹理坐标通常具有U和V两个坐标轴,因此称之为UV坐标。U代表横向坐标上的分布、V代表纵向坐标上的分布。
DCC:所谓DCC,就是Digital Content Creation的缩写,即数字内容创作。
Substance Designer:是一款材质编辑器软件,用于创建和编辑各种种类的材质,包括纹理、成像、阴影和其他效果。被广泛应用于游戏开发、虚拟现实、电影和电视特效等领域。
Blender:是一款免费开源的3D创作套件。
3D空间坐标:在计算机图形学中,3D空间最常使用Cartesian Coordinate System(笛卡尔坐标系)。在该坐标系中,三个轴X,Y和Z彼此垂直,决定了空间中每个点的坐标。
在相关技术中,对于2D平面,某一图形的有向距离场(SDF)通常指平面上每一个点沿各个方向逼近图形边缘的最小距离值。在游戏渲染效果中,2D SDF图(也叫2D有向距离场)是经常使用的一种记录方向的灰度数据图,这类贴图通常也用于制作字体渲染,图片渲染,几何图形渲染,形变动画,一些扩散特效、纹理方向性流动、卡通渲染中面部的阴影解决方案等。
这类贴图通常需要制作人员通过软件去绘制,耗时耗力,如果使用代码纯计算消耗也会很高。常见的极坐标也是我们所熟知的SDF距离场,纯粹通过引擎代码去计算极坐标需要用到三角函数、开根号等高消耗指令,降低性能,而且也很难控制具体的美术效果。
现有技术中生成SDF主要有两种方法:
方法1:代码生成SDF
原理是扫一遍源纹理中所有的像素,将像素分为in和out两种,对于目标纹理的每个像素,找到源纹理中对应的像素,对这个像素求最近的和自己不是同一种像素之间的距离。最后将所有结果clamp到0和1之间。
以绘制三角形SDF为例:绘制三角形的SDF函数需要输入四个参数,第一个是屏幕坐标,第二个参数为三角形左下角顶点坐标,第三个参数为三角形右下角顶点坐标,第四个参数表示三角形顶部顶点坐标。
方法2:Python工具生成SDF
前提是需要多张中间过程的图,中间图的格式为8bit的二值图,并且不适合太大的图片,最后通过运行工具生成最终的一张SDF图。实现原理是对每一张图片都生成单独的SDF图,然后合并在一起(利用SDF进行插值,得到最后的结果)。
例如首先需要一个固有色贴图;然后在固有色上面新建图层,根据原画所示的效果图,绘画面部阴影的mask贴图;最后用planeb将所绘制的图合并成一张。
因此,现有技术中传统的制作SDF有向距离场贴图的方法存在以下缺点:①传统制作SDF有向距离场需要进行大量的计算,需要计算网格点到指定表面的距离、计算网格点到指定表面的法向量等,计算复杂度较高,容易出现计算误差;②传统依靠纯计算的SDF多数是圆形/三角形等基础图形,并不能满足我们在研发过程中的多种需求.而复杂的图形往往需要多个基础图形去叠加、裁剪,也就意味着消耗量的急剧增加且修改麻烦;③传统制作SDF有向距离场的方法生成的SDF文件需要存储大量的数据,占用存储空间较大,不利于数据传输和存储;④通过多种软件绘制,耗时耗力,绘制难度高,难以控制具体的美术效果。
因此,为了解决现有技术中存在的一个或多个问题,本发明提供一种灵活且快速的解决方案,通过DCC软件预烘焙2D SDF灰度图并投射到模型具体的3D空间坐标,并将其烘焙成带有遮罩的SDF区域图。这样在游戏引擎中可直接采样预烘焙好的区域SDF图,将传统算法中的运算量大大降低,无需进行繁琐的计算,从而提高处理速度,同时结合代码算法能够让美术效果更加真实、自然地呈现多种扩散效果,提高游戏性能,并且更加适合游戏流程中的美术制作,提升游戏开发效率,简单高效。
以下对本公开实施例的技术方案的实现细节进行详细阐述。
图1示意性示出本公开示例性实施例中一种扩散效果渲染方法的流程示意图。如图1所示,该扩散效果渲染方法包括步骤S101至步骤S103:
步骤S101,获取预烘焙的目标二维有向距离场灰度图;
步骤S102,将所述目标二维有向距离场灰度图中的像素灰度信息投射至目标三维模型的目标扩散位置处得到投射结果;
步骤S103,将所述投射结果烘焙至所述目标三维模型的纹理贴图中得到有向距离场区域图,以根据所述有向距离场区域图在所述目标三维模型的所述目标扩散位置处进行扩散效果渲染。
在本公开的一些实施例所提供的技术方案中,通过获取预烘焙的目标二维有向距离场(2D SDF)灰度图,然后将其投射至目标三维模型中生成带有目标扩散位置的有向距离场(SDF)区域图,作为预处理极坐标的扩散效果的有向距离场区域图,进而可以直接使用有向距离场区域图的预烘焙结果和目标扩散位置来进行扩散效果的渲染。基于上述方法,通过生成有向距离场区域图实现预处理极坐标的扩散效果,一方面将扩散效果转换为直角坐标系下的效果,能够减少计算量,降低计算复杂度;另一方面,通过预处理极坐标的扩散效果,可以提高扩散效果的精度和质量,使得渲染效果更加真实和细腻;再一方面,预处理极坐标的扩散效果可以在游戏引擎渲染扩散效果之前就进行处理,将处理结果保存在预处理数据中,可以避免在运行阶段频繁进行计算,从而降低系统资源的消耗,提高系统的性能和稳定性,同时将复杂的计算过程封装在预处理代码中,也提高了代码的可维护性和可读性,方便代码的修改和管理。
下面,将结合附图及实施例对本示例实施方式中的扩散效果渲染方法的各个步骤进行更详细的说明。
在步骤S101中,获取预烘焙的目标二维有向距离场灰度图。
在本公开的一个实施例中,在所述获取预烘焙的目标二维有向距离场灰度图之前,需要预烘焙目标二维有向距离场灰度图。具体地,预烘焙目标二维有向距离场灰度图主要包括以下步骤:获取初始二维有向距离场灰度图;基于目标扩散效果对所述初始二维有向距离场灰度图的像素灰度信息进行调整,以得到所述目标二维有向距离场灰度图。
具体而言,可以在SubstanceDesigner(SD)中预烘焙目标二维有向距离场灰度图。设计好目标扩散效果后,利用SD内置的Distance节点,在初始二维有向距离场灰度图中配合美术调整即可得到调整后的目标二维有向距离场灰度图,即目标2D SDF灰度图。
其中,调整的对象是初始二维有向距离场灰度图的像素灰度信息,像素灰度信息例如灰度数据,方向信息等。
需要说明的是,本公开对配置包括目标扩散效果的目标二维有向距离场灰度图不做具体限定。
图2(a)示意性示出本公开示例性实施例中一种初始二维有向距离场灰度图的示意图,如图2(a)所示,为SubstanceDesigner中默认的初始二维有向距离场灰度图。图2(b)示意性示出本公开示例性实施例中一种目标二维有向距离场灰度图的示意图,如图2(b)所示,美术人员可以调整灰度图中的像素灰度信息进而得到预设的目标扩散效果。
在步骤S102中,将所述目标二维有向距离场灰度图中的像素灰度信息投射至目标三维模型的目标扩散位置处得到投射结果。
具体而言,可以通过Blender将2D SDF灰度图投射到3D空间中三维模型所需要渲染扩散效果的目标扩散位置处。
其中,投射的方式可以采用平面投射或者其他投射方式,本公开对此不做限定。
另外,投射时将2D SDF灰度图的像素内容映射至目标扩散位置处,并且还可以根据需求实时调整映射的大小和范围,将SDF图放大或缩小。
图3示意性示出本公开示例性实施例中一种投射结果的示意图。如图3所示,示出了通过Blender将预设好的包括目标扩散效果的SDF灰度图通过投射的方式将其映射到三维模型的目标扩散位置处,其中301为三维模型,302为投射结果。
在步骤S103中,将所述投射结果烘焙至所述三维模型的UV纹理贴图中得到有向距离场区域图,以根据所述有向距离场区域图进行所述三维模型的扩散效果渲染。
具体地,将投射结果烘焙至三维模型的UV纹理贴图中进而生成带有投射结果的有向距离场区域图(SDF区域图)。图3示意性示出本公开示例性实施例中一种SDF区域图的示意图。如图3所示,该有向距离场区域图(SDF区域图)中烘焙了投射结果,包括了目标扩散位置处的目标扩散效果对应的信息。
需要说明的是,在烘焙时投射的SDF图案显示为有颜色的通道,这是因为SDF只占一个RBG的一个通道,例如R通道,因此可以将将投射结果烘焙至三维模型的UV纹理贴图的第一颜色通道中。
在本公开的一个实施例中,根据目标扩散效果的不同,烘焙的方式也有所区别,如果是环形扩散,那么烘焙是是从一个点进行扩散的效果,如果是分布式扩散,则是以一个范围按照某个方向进行扩散就是分布式扩散。
在本公开的一个实施例中,在得到所述有向距离场区域图之后,所述方法还包括:为所述有向距离场区域图像素点配置灰度遮罩标识得到遮罩信息。
具体来说,为了能够增加扩散效果的可表现性,可以增加遮罩信息来控制SDF扩散效果的强弱。因此得到有向距离场区域图之后,还可以为其中各像素配置灰度遮罩标识,也可以根据预先配置好的灰度遮罩标识贴图确定各像素灰度遮罩标识。图4示意性示出本公开示例性实施例中一种灰度遮罩标识贴图的示意图。
当SDF区域图中增加了遮罩信息后,可以将遮罩信息烘焙至SDF区域图的第二颜色通道中,例如G通道,其中,SDF区域为白色,其余部分为黑色,这是为了方便后续我们在引擎中去区分不同的效果。
在本公开的一个实施例中,预处理极坐标的扩散效果后得到SDF区域图,之后在游戏引擎中就可以直接使用SDF区域图进行扩散效果的渲染。
具体地,所述方法还包括:根据所述有向距离场区域图进行所述三维模型的扩散效果渲染,具体包括以下步骤:基于所述有向距离场区域图的投射结果,定位所述目标扩散位置以及提取有向距离场灰度数据;根据所述有向距离场灰度数据在所述目标扩散位置处渲染扩散效果。
投射信息储存在SDF区域图的第一颜色通道,因此通过提取第一颜色通道的信息,可以定位到目标扩散位置,以及提取到有向距离场灰度数据。
然后在目标扩散位置渲染扩散效果,有向距离场灰度数据是记录-1到1数值范围的一个信息,我们可以通过-1到1的信息乘以时间获取一个逐渐变化的数值,这样的数值就可以用来做一些流动或者变化的特殊效果.例如:河流,流光,水波等作为扩散效果。
举例而言,可以结合shader代码定位三维模型中的目标扩散位置,以当前坐标点根据预烘焙的扩散效果进行扩散特效。
以环形扩散为例,参数如下:
SDFposition=TexCoord0-float2(SDFCirclePositionX,SDFCirclePositionY);
SDFScale=SDFposition*float2(SDFCircleScaleX,SDFCircleScaleY);
BaseSDF=SphereMask(SDFScale,float2(0,0),SDFCircleWidth,SDFCircleScale);
其中,SDFposition为SDF扩散位置;TexCoord0为第一套UV;SDFCirclePositionX为环形扩散X轴向位置;SDFCirclePositionY为环形扩散Y轴向位置;SDFScale为SDF效果范围;SDFCircleScalex为SDF效果范围X轴;SDFCircleScaleY为SDF效果范围Y轴;BaseSDF为基础SDF效果;SphereMask为遮罩大小;SDFCircleWidth为遮罩范围宽度调整。
以分布式扩散为例,参数如下:
DistributedSDF=SmoothStep(0,PolarTilingMax,PolarMap);
其中,DistributedSDF为分布式扩散SDF效果;PolarTilingMax为极坐标采样重复度,也可以理解为SDF重复度;PolarMap为极坐标图,也可以理解为SDF图,就是我们预先烘焙好的SDF区域图。
在本公开的一个实施例中,SDF区域图还可以包括遮罩信息,遮罩信息可以用来控制特殊区域出现SDF扩散效果,而其他不需要的地方均为黑色.这个遮罩图也存在了SDF的G通道.所以在我们最后输出阶段我们可以通过这个遮罩去控制想要的效果。
因此,在有向距离场区域图包括遮罩信息时,所述根据所述有向距离场区域图进行所述三维模型的扩散效果渲染,包括:基于所述有向距离场区域图的遮罩信息对所述像素点的颜色值进行调整以更新所述扩散效果。
具体而言,FinalColor=lerp(BaseSDF,PolarMap.g or basecolor,DistributedSDF.rgb)。即:最后颜色=基础SDF效果-配合-SDF图的绿通道控制或者基础颜色控-配合-分布式扩散效果,其中,BaseSDF为基础SDF效果,PolarMap.g为SDF图的绿通道控制,DistributedSDF.rgb为分布式扩散SDF效果。
在本公开的一个实施例中,为了使扩散效果更加多样性,我们可以增加本身法线的影响值,即法线的红绿通道*SDF法线强度。例如以环形扩散为例,参数如下:BaseSDF+Normal.RG*SDFNormalInt,其中,BaseSDF为基础SDF效果,Normal.RG为法线的红绿通道,SDFNormalInt为SDF法线强度;以分布式扩散为例,参数如下:DistributedSDF+Normal.RG*SDFNormalInt,其中,B DistributedSDF为分布式扩散SDF效果,Normal.RG与SDFNormalInt同上。
综上所述,直角坐标系下的扩散是指我们将需要数学代码计算去判断的效果可视化成了一张贴图,并且贴图是在直角坐标系下的可控范围,但用数学代码计算极坐标需要用到多个三角函数,并且需要将极坐标映射到三维空间中模型所在的位置。而在本申请中通过提前预处理极坐标的位置并将可预览的-1到1这样的直角坐标系下的范围可视化到模型上,辅助我们去定位和处理效果,进而实现预处理极坐标的扩散效果。具有以下的技术效果:
1.解决计算量复杂且储存数据较大的问题:预处理极坐标的扩散效果可以将扩散效果转换为直角坐标系下的效果,这样可以减少计算量,提高计算效率。同时,预处理也可以将计算结果缓存起来,方便在运行阶段快速查找并应用,避免重复计算。
2.提高了视觉效果结合算法可控多种美术效果:极坐标的扩散效果相比于直角坐标系下的效果更加自然、优美,可以带来更好的视觉体验。此外,通过预处理,还可以提高扩散效果的精度和质量,使得效果更加真实和细腻。
3.降低了系统资源消耗解决可控性差问题:预处理极坐标的扩散效果可以在运行之前就进行处理,将处理结果保存在预处理数据中,可以避免在运行阶段频繁进行计算,从而降低系统资源的消耗,提高系统的性能和稳定性。
4.提高了代码的可维护性:通过预处理极坐标的扩散效果,可以将复杂的计算过程封装在预处理代码中,提高了代码的可维护性和可读性,方便代码的修改和管理。降低系统资源消耗和提高代码的可维护性等方面,可以帮助开发者更加高效地开发游戏和应用程序。
图5示意性示出本公开示例性实施例中一种扩散效果渲染装置的组成示意图,如图5所示,该扩散效果渲染装置500可以包括获取模块501、投射模块502以及烘焙模块503。其中:
获取模块501,用于获取预烘焙的目标二维有向距离场灰度图;
投射模块502,用于将所述目标二维有向距离场灰度图中的像素灰度信息投射至目标三维模型的目标扩散位置处得到投射结果;
烘焙模块503,用于将所述投射结果烘焙至所述目标三维模型的纹理贴图中得到有向距离场区域图,以根据所述有向距离场区域图在所述目标三维模型的所述目标扩散位置处进行扩散效果渲染。
根据本公开的示例性实施例,所述扩散效果渲染装置500还包括预烘焙模块,用于获取初始二维有向距离场灰度图;基于目标扩散效果对所述初始二维有向距离场灰度图的像素灰度信息进行调整,以得到所述目标二维有向距离场灰度图。
根据本公开的示例性实施例,所述投射模块502用于将所述投射结果烘焙至所述目标三维模型的纹理贴图的第一颜色通道中得到所述有向距离场区域图。
根据本公开的示例性实施例,所述扩散效果渲染装置500还包括渲染模块,用于基于所述有向距离场区域图的投射结果,定位所述目标扩散位置以及提取有向距离场灰度数据;根据所述有向距离场灰度数据在所述目标扩散位置处渲染扩散效果。
根据本公开的示例性实施例,所述扩散效果渲染装置500还包括遮罩模块,用于在得到所述有向距离场区域图之后,为所述有向距离场区域图像素点配置灰度遮罩标识得到遮罩信息。
根据本公开的示例性实施例,所述遮罩模块还用于将所述遮罩信息烘焙至所述有向距离场区域图的第二颜色通道中。
根据本公开的示例性实施例,所述遮罩模块还用于在所述根据所述有向距离场区域图在所述目标三维模型的所述目标扩散位置处进行扩散效果渲染之后,基于所述有向距离场区域图的遮罩信息对所述像素点的颜色值进行调整以更新所述扩散效果。
上述的扩散效果渲染装置500中各模块的具体细节已经在对应的扩散效果渲染方法中进行了详细的描述,因此此处不再赘述。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
在本公开的示例性实施例中,还提供了一种能够实现上述方法的存储介质。图6示意性示出本公开示例性实施例中一种计算机可读存储介质的示意图,如图6所示,描述了根据本公开的实施方式的用于实现上述方法的程序产品600,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如手机上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。图7示意性示出本公开示例性实施例中一种电子设备的计算机系统的结构示意图。
需要说明的是,图7示出的电子设备的计算机系统700仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图7所示,计算机系统700包括中央处理单元(Central Processing Unit,CPU)701,其可以根据存储在只读存储器(Read-Only Memory,ROM)702中的程序或者从存储部分708加载到随机访问存储器(Random Access Memory,RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有系统操作所需的各种程序和数据。CPU 701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(Input/Output,I/O)接口705也连接至总线704。
以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN(Local Area Network,局域网)卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
其中,中央处理单元701可以执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施例的步骤。例如,中央处理单元701可以执行如图1所示的步骤S101,获取预烘焙的目标二维有向距离场灰度图;步骤S102,将所述目标二维有向距离场灰度图中的像素灰度信息投射至目标三维模型的目标扩散位置处得到投射结果;步骤S103,将所述投射结果烘焙至所述目标三维模型的纹理贴图中得到有向距离场区域图,以根据所述有向距离场区域图在所述目标三维模型的所述目标扩散位置处进行扩散效果渲染。
在本公开的一种示例性实施例中,基于前述方案,服务器执行获取初始二维有向距离场灰度图;基于目标扩散效果对所述初始二维有向距离场灰度图的像素灰度信息进行调整,以得到所述目标二维有向距离场灰度图。
在本公开的一种示例性实施例中,基于前述方案,服务器执行将所述投射结果烘焙至所述目标三维模型的纹理贴图的第一颜色通道中得到所述有向距离场区域图。
在本公开的一种示例性实施例中,基于前述方案,服务器执行基于所述有向距离场区域图的投射结果,定位所述目标扩散位置以及提取有向距离场灰度数据;根据所述有向距离场灰度数据在所述目标扩散位置处渲染扩散效果。
在本公开的一种示例性实施例中,基于前述方案,服务器执行为所述有向距离场区域图像素点配置灰度遮罩标识得到遮罩信息。
在本公开的一种示例性实施例中,基于前述方案,服务器执行将所述遮罩信息烘焙至所述有向距离场区域图的第二颜色通道中。
在本公开的一种示例性实施例中,基于前述方案,服务器执行在所述根据所述有向距离场区域图在所述目标三维模型的所述目标扩散位置处进行扩散效果渲染之后,基于所述有向距离场区域图的遮罩信息对所述像素点的颜色值进行调整以更新所述扩散效果。
特别地,根据本公开的实施例,下文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元(CPU)701执行时,执行本公开的系统中限定的各种功能。
需要说明的是,本公开实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为另一方面,本公开还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本公开实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种扩散效果渲染方法,其特征在于,包括:
获取预烘焙的目标二维有向距离场灰度图;
将所述目标二维有向距离场灰度图中的像素灰度信息投射至目标三维模型的目标扩散位置处得到投射结果;
将所述投射结果烘焙至所述目标三维模型的纹理贴图中得到有向距离场区域图,以根据所述有向距离场区域图在所述目标三维模型的所述目标扩散位置处进行扩散效果渲染。
2.根据权利要求1所述的扩散效果渲染方法,其特征在于,在所述获取预烘焙的目标二维有向距离场灰度图之前,所述方法还包括:
获取初始二维有向距离场灰度图;
基于目标扩散效果对所述初始二维有向距离场灰度图的像素灰度信息进行调整,以得到所述目标二维有向距离场灰度图。
3.根据权利要求1所述的扩散效果渲染方法,其特征在于,所述将所述投射结果烘焙至所述目标三维模型的纹理贴图中得到有向距离场区域图,包括:
将所述投射结果烘焙至所述目标三维模型的纹理贴图的第一颜色通道中得到所述有向距离场区域图。
4.根据权利要求1所述的扩散效果渲染方法,其特征在于,所述根据所述有向距离场区域图在所述目标三维模型的所述目标扩散位置处进行扩散效果渲染,包括:
基于所述有向距离场区域图的投射结果,定位所述目标扩散位置以及提取有向距离场灰度数据;
根据所述有向距离场灰度数据在所述目标扩散位置处渲染扩散效果。
5.根据权利要求1所述的扩散效果渲染方法,其特征在于,在所述将所述投射结果烘焙至所述目标三维模型的纹理贴图中得到有向距离场区域图之后,所述方法还包括:
为所述有向距离场区域图像素点配置灰度遮罩标识得到遮罩信息。
6.根据权利要求5所述的扩散效果渲染方法,其特征在于,所述方法还包括:
将所述遮罩信息烘焙至所述有向距离场区域图的第二颜色通道中。
7.根据权利要求5所述的扩散效果渲染方法,其特征在于,在所述根据所述有向距离场区域图在所述目标三维模型的所述目标扩散位置处进行扩散效果渲染之后,所述方法还包括:
基于所述有向距离场区域图的遮罩信息对所述像素点的颜色值进行调整以更新所述扩散效果。
8.一种扩散效果渲染装置,其特征在于,包括:
获取模块,用于获取预烘焙的目标二维有向距离场灰度图;
投射模块,用于将所述目标二维有向距离场灰度图中的像素灰度信息投射至目标三维模型的目标扩散位置处得到投射结果;
烘焙模块,用于将所述投射结果烘焙至所述目标三维模型的纹理贴图中得到有向距离场区域图,以根据所述有向距离场区域图在所述目标三维模型的所述目标扩散位置处进行扩散效果渲染。
9.一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如权利要求1至7任一项所述的扩散效果渲染方法。
10.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至7任一项所述的扩散效果渲染方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310595090.2A CN116797701A (zh) | 2023-05-23 | 2023-05-23 | 扩散效果渲染方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310595090.2A CN116797701A (zh) | 2023-05-23 | 2023-05-23 | 扩散效果渲染方法、装置、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116797701A true CN116797701A (zh) | 2023-09-22 |
Family
ID=88033586
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310595090.2A Pending CN116797701A (zh) | 2023-05-23 | 2023-05-23 | 扩散效果渲染方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116797701A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117112950A (zh) * | 2023-10-19 | 2023-11-24 | 腾讯科技(深圳)有限公司 | 电子地图中对象的渲染方法、装置、终端及存储介质 |
-
2023
- 2023-05-23 CN CN202310595090.2A patent/CN116797701A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117112950A (zh) * | 2023-10-19 | 2023-11-24 | 腾讯科技(深圳)有限公司 | 电子地图中对象的渲染方法、装置、终端及存储介质 |
CN117112950B (zh) * | 2023-10-19 | 2024-02-02 | 腾讯科技(深圳)有限公司 | 电子地图中对象的渲染方法、装置、终端及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11257286B2 (en) | Method for rendering of simulating illumination and terminal | |
CN109685869B (zh) | 虚拟模型渲染方法与装置、存储介质、电子设备 | |
CN107358643B (zh) | 图像处理方法、装置、电子设备及存储介质 | |
CN112316420B (zh) | 模型渲染方法、装置、设备及存储介质 | |
CN109448137B (zh) | 交互方法、交互装置、电子设备及存储介质 | |
CN112734896B (zh) | 环境遮蔽渲染方法、装置、存储介质及电子设备 | |
CN112233215A (zh) | 轮廓渲染方法、装置、设备及存储介质 | |
CN111583379B (zh) | 虚拟模型的渲染方法、装置、存储介质与电子设备 | |
US9928621B2 (en) | Line stylization through graphics processor unit (GPU) textures | |
CN113240783B (zh) | 风格化渲染方法和装置、可读存储介质、电子设备 | |
CN116797701A (zh) | 扩散效果渲染方法、装置、存储介质及电子设备 | |
KR20230012078A (ko) | 가상 형상 생성 방법, 장치, 전자 기기 및 판독 가능 저장 매체 | |
US11087511B1 (en) | Automated vectorization of a raster image using a gradient mesh with arbitrary topology | |
CN111383311B (zh) | 法线贴图生成方法、装置、设备及存储介质 | |
CN111754431A (zh) | 一种图像区域替换方法、装置、设备及存储介质 | |
CN114742931A (zh) | 渲染图像的方法、装置、电子设备及存储介质 | |
CN110502305B (zh) | 一种动态界面的实现方法、装置及相关设备 | |
KR100305461B1 (ko) | 그래픽처리장치 | |
CN113409465A (zh) | 毛发模型的生成方法、装置、存储介质与电子设备 | |
CN117611703A (zh) | 弹幕字符的渲染方法、装置、设备、存储介质及程序产品 | |
JP2015158737A (ja) | 画像処理装置及び画像処理方法 | |
CN114549732A (zh) | 模型的渲染方法、装置及电子设备 | |
CN113936080A (zh) | 虚拟模型的渲染方法和装置、存储介质及电子设备 | |
CN113160379A (zh) | 材质渲染方法、装置、存储介质及电子设备 | |
CN111739074A (zh) | 一种场景多点光源渲染方法及装置 |
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 |