CN113808243A - 一种可形变雪地网格的绘制方法和装置 - Google Patents
一种可形变雪地网格的绘制方法和装置 Download PDFInfo
- Publication number
- CN113808243A CN113808243A CN202111113396.7A CN202111113396A CN113808243A CN 113808243 A CN113808243 A CN 113808243A CN 202111113396 A CN202111113396 A CN 202111113396A CN 113808243 A CN113808243 A CN 113808243A
- Authority
- CN
- China
- Prior art keywords
- snow
- grid
- map
- deformation
- normal direction
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/02—Non-photorealistic rendering
-
- 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
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
- G06T17/205—Re-meshing
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
Abstract
本发明公开了一种可形变雪地网格的绘制方法和装置,包括:计算初始雪地网格和静态物体网格之间的距离场纹理图;对动态物体网格的顶点进行聚类以确定每个顶点簇的包围球,所有簇的包围球构成动态物体网格的包围体;预绘制当前雪地网格,得到维度相同的深度图和几何法线图;依据当前雪地网格对应的深度图和几何法线图、动态物体网格的包围体以及动态物体变换矩阵,计算雪地形变并更新形变贴图;通过对形变贴图进行多次下采样得到不同等级的标记形变区域图,计算当前雪地网格的三角面片的任意边与标记形变区域图相交时,对三角面片进行细分;依据形变贴图或距离场纹理图对雪地片元进行法线方向的位移调整,以实现对当前雪地网格的形变。
Description
技术领域
本发明属于计算机图形学领域,具体涉及一种可形变雪地网格的绘制方法和装置。
背景技术
近年来,许多游戏、仿真***中集成了多样的天气效果,包括雨、雪、雾等。其中,雪是一种较为复杂的天气效果,对场景影响较大,雪天场景往往需要特殊的制作流程。许多游戏等应用通过简单地修改贴图、材质的方法模拟积雪。在现实的雪地场景中,积雪还会响应行人、汽车等动态物体的移动、旋转等动作,产生挤压、凹陷、凸起等形变效果;同时,积雪在静态物体和地面的交界处产生堆积,但上述效果在实时交互中的应用并不广泛,且无法通过简单修改贴图、材质的方法实现。
公开号为CN105389847A的专利申请公开了一种3D场景的绘制***及方法、终端,包括虚拟摄像机单元,用于基于设定的视角获取3D场景的待绘制区域;相交检测单元,用于在检测到预置于所述3D场景中的3D模型与待绘制区域的任一个边缘面发生相交时,确认3D模型与待绘制区域相交,生成发送至透明度处理单元的处理请求;透明度处理单元,用于响应处理请求,获取3D模型的透明度,并在3D模型的当前透明度大于预设的目标透明度时,减小3D模型的透明度;绘制单元,用于对虚拟摄像机单元获取的待绘制区域进行绘制,生成相应的画面帧。该方法不能够实现对雪地的变形绘制。
公开号为CN106709974A的专利申请公开了一种游戏场景绘制方法及装置,包括:获取用于编辑游戏场景的描述信息;从描述信息中提取游戏场景中的路线和所有功能节点,其中,路线为供游戏场景中的角色进行行走的路线;获取预先配置的路线和每个功能节点在游戏场景中占的面积信息;根据路线和每个功能节点的位置信息以及在游戏场景中占的面积信息绘制游戏场景。该方法同样不能够实现对雪地的变形绘制。
发明内容
鉴于上述,本发明的目的是提供一种可形变雪地网格的绘制方法和装置,实现对雪地网格的可形变绘制,且需要较少的内存和计算开销。
第一方面,实施例提供了一种可形变雪地网格的绘制方法,包括以下步骤:
计算初始雪地网格和静态物体网格之间的距离场纹理图;
对动态物体网格的顶点进行聚类以确定每个顶点簇的包围球,所有顶点簇的包围球构成动态物体网格的包围体;
以俯视正交视角预绘制当前雪地网格,得到维度相同的深度图和几何法线图;
依据当前雪地网格对应的深度图和几何法线图、动态物体网格的包围体以及动态物体变换矩阵,计算雪地形变并更新形变贴图;
通过对形变贴图进行多次下采样得到不同等级的标记形变区域图,计算当前雪地网格的三角面片的任意边与标记形变区域图相交时,对三角面片进行细分;
依据形变贴图或距离场纹理图对雪地片元进行法线方向的位移调整,以实现对当前雪地网格的再次形变。
第二方面,实施例提供了一种可形变雪地网格的绘制装置,包括:
距离场纹理图生成模块,计算初始雪地网格和静态物体网格之间的距离场纹理图;
包围体构建模块,对动态物体网格的顶点进行聚类以确定每个顶点簇的包围球,所有顶点簇的包围球构成动态物体网格的包围体;
预绘制模块,以俯视正交视角绘制当前雪地网格,得到维度相同的深度图和几何法线图;
形变贴图生成模块,依据当前雪地网格对应的深度图和几何法线图、动态物体网格的包围体以及动态物体变换矩阵,计算雪地形变并更新形变贴图;
细分模块,通过对形变贴图进行多次下采样得到不同等级的标记形变区域图,计算当前雪地网格的三角面片的任意边与标记形变区域图相交时,对三角面片进行细分;
形变模块,依据形变贴图或距离场纹理图对雪地片元进行法线方向的位移调整,以实现对当前雪地网格的再次形变。
上述实施例提供的技术方案,具有的有益效果至少包括:
通过计算初始雪地网格和静态物体网格之间的距离场纹理图和动态物体网格的包围体做好雪地网格变形的准备;利用正交相机绘制当前雪地网格来得到维度相同的深度图和几何法线图;然后依据深度图和几何法线图以及动态物体网格的包围体来计算雪地形变并更新形变贴图,最后,通对形变贴图进行多次下采样得到不同等级的标记形变区域图来判断三角面片是否进行细分,当前雪地网格的三角面片的任意边与标记形变区域图相交时,对三角面片进行细分;同时依据形变贴图或距离场纹理图对雪地片元进行法线方向的位移调整;这样的形变雪地网格的绘制过程需要较少的性能开销,且实现了对雪地网格的可形变绘制,满足实际的场景需求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动前提下,还可以根据这些附图获得其他附图。
图1是一实施例提供的可形变雪地网格的绘制方法的流程图;
图2是一实施例提供的可形变雪地网格的绘制方法的流程框图;
图3是一实施例提供的可形变雪地网格的绘制装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不限定本发明的保护范围。
图1是一实施例提供的可形变雪地网格的绘制方法的流程图。图2是一实施例提供的可形变雪地网格的绘制方法的流程框图。如图1和图2所示,实施例提供的可形变雪地网格的绘制方法,包括以下步骤:
步骤1,计算初始雪地网格和静态物体网格之间的距离场纹理图。
初始雪地网格是没有经过变形的雪地网格。静态物体是场景中不移动的物体。计算距离场纹理图的过程可以离线处理,作为预处理步骤,因此,为了提升距离场纹理图的精度,静态物体网格可以为最高LOD等级的网格数据,即采用最高LOD等级的网格数据计算距离场纹理图。
实施例中,计算初始雪地网格和静态物体网格之间的距离场纹理图,包括:
利用顶点着色器对初始雪地网格进行顶点变换处理,得到归一化的顶点纹理坐标和顶点世界坐标。具体将初始雪地网格输入顶点着色器中,顶点着色器对雪地网格的顶点进行坐标变换,将顶点由三维坐标变换为二维纹理坐标后再进行归一化,得到归一化的顶点纹理坐标(uv.x*2-1,uv.y*2-1),其中u,v为顶点的二维纹理坐标,uv.x表示uv形成的二维向量中的第一维,uv.y表示uv形成的二维向量中的第二维。实施例中,顶点着色器输出的纹理坐标可以采用单通道半精度格式。顶点着色器将顶点由三维坐标变换成二维纹理坐标的同时,还对顶点在局域坐标下的三维坐标变换成世界坐标下的顶点世界坐标并输出传递到片元着色器。
依据静态物体网格、模型变化矩阵以及初始雪地网格的顶点世界坐标对应的雪地片元的第一世界坐标,利用片元着色器计算雪地片元的第一世界坐标与静态物体网格的每个三角面片的最短无向距离,将每个雪地片元对应的所有最短无向距离中的最小值组成距离场纹理图。
在图像绘制领域中,当得到模型网格的顶点坐标后,即可以得到顶点坐标绘制时对应片元的坐标,实施例中,在获得初始雪地网格的顶点世界坐标后,即可以得到初始雪地网格的顶点世界坐标对应的雪地片元的第一世界坐标。利用片元着色器计算最短无向距离时,将静态物体最高LOD等级的网格数据、模型变化矩阵作为片元着色器的输入,其中,模型变化矩阵指静态物体从物体局部坐标系变换到世界坐标系的变换矩阵,然后利用片元着色器计算计算雪地片元的第一世界坐标与静态物体网格的每个三角面片的最短无向距离,具体计算方式可以为:
在获得每个雪地片元对的所有三角面片的所有最短无向距离后,筛选每个雪地片元对应的所有最短无向距离中的最小值来组成距离场纹理图。
步骤2,对动态物体网格的顶点进行聚类以确定每个顶点簇的包围球,所有顶点簇的包围球构成动态物体网格的包围体。
构建动态物体网格的包围体的步骤仍然可以看成是预处理步骤,可以进行离线处理,由于动态物体网格的包围体的要求是能够包裹动态物体网格,因此,为了减少计算量,提升计算效率,在CPU段采用动态物体网格的最低LOD等级的网格数据来计算包围体。
实施例中,对动态物体网格的顶点进行聚类以确定每个顶点簇的包围球,包括:
首先,计算动态物体网格的轴对齐第一包围盒,在第一包围盒内,采用聚类算法将动态物体网格的顶点聚成多个顶点簇。可以采用k-means聚类将顶点聚类成k个顶点簇,k值视模型复杂程度设置。具体聚类过程:在第一包围盒内,随机生成k个簇的中心,由顶点与中心的欧几里得距离将顶点分配至最近的一个顶点簇,并更新每个顶点簇的中心为顶点簇中所有顶点的中心位置,经过多次迭代聚类后,将每个顶点簇视为一个包围球。
然后,计算每个顶点簇的第二包围盒,以第二包围盒的对角线长度和中心分别为直径和球心,构建每个顶点簇的包围球。
在获得每个顶点簇的包围球之后,将所有顶点簇的包围球组成动态物体网格的包围体,用于雪地变形的计算。
步骤3,预绘制当前雪地网格,得到维度相同的深度图和几何法线图。
实施例中,采用俯视角的正交相机来实时绘制雪地网格,视角方向竖直向下,可视范围为V×V×(F-N),其中V×V为正交相机的视口大小,N和F为正交相机的***面与远平面距离,实施例中可以设置V=50,N=0.1,F=100,缓冲帧大小为1024*1024。在绘制当前雪地网格时,进行深度缓冲和颜色缓冲,以得到维度均为1024*1024的深度图和几何法线图。其中,几何法线图也即是颜色缓冲得到的颜色图,颜色缓冲格式可以为双通道(RG两通道)半精度,存储的第一世界下坐标的归一法向方向的(x,y)坐标,该(x,y)坐标作为颜色值存储到颜色图中,用于雪地形变的计算。
步骤4,依据当前雪地网格对应的深度图和几何法线图、动态物体网格的包围体以及动态物体变换矩阵,计算雪地形变并更新形变贴图。
当雪地遇到场景中的物体时会产生形变,实施例中,依据当前雪地网格对应的深度图和几何法线图、动态物体网格的包围体以及动态物体变换矩阵,计算雪地形变并更新形变贴图,包括:
(a)初始化形变贴图,形变贴图存储雪地表面沿着原始法线方向的位移以及位移后的法线,维度与绘制当前雪地网格得到的深度图相同。
实施例中,采用一个计算着色器(compute shader)读写一张尺寸为1024×1024的ARGB四通道半精度纹理图,其中A通道用来存储雪地表面沿着原始法线方向的位移,RGB通道用来存储位移后的法线,ARGB四通道半精度纹理图称为形变贴图。在初始时,使用默认值填充形变贴图。
(b)利用动态物体变换矩阵对每个顶点簇的包围球进行变换得到变换后的包围球。
因为做渲染时,物体从物体本身的局部坐标系变换到世界坐标系,需要施加一个动态物体变换矩阵;上述的包围球是在物体局部坐标系下计算得到的,所以也需要施加动态物体变换矩阵。
(c)针对形变贴图的每个像素,从深度图和几何法线图中相同位置采样深度数据和法线方向,通过对深度数据进行逆变换得到像素对应的雪地片元的第二世界坐标,依据第二世界坐标计算雪地片元到对应的变换后的包围球的距离。
实施例中,采用计算着色器计算雪地片元到对应的变换后的包围球的距离。具体地,将动态物体网格的包围球中心坐标、半径以及动态物体变换矩阵输入至计算着色器,由于深度图、几何法线图以及形变贴图的维度相同,对于形变贴图中的每个像素,采样深度图和几何法线图中的相同位置,得到雪地片元的深度数据和法线方向然后,通过逆变换矩阵从深度得到雪地片元的第二世界坐标O,最后计算雪地片元到对应的变换后的包围球的距离其中,P为利用动态物体变换矩阵对每个顶点簇的包围球进行变换得到变换后的包围球的第一世界坐标,逆变换矩阵是俯视角正交相机投影矩阵的逆变换矩阵,可用于从深度值还原得到世界坐标。
需要说明的是,雪地片元是与雪地网格的顶点存在第一映射关系,雪地网格的顶点与包围球存在第二映射关系,因此在计算距离d时,通过第一映射关系和第二映射关系找到与雪地片元对应的顶点簇的包围球,来计算距离d。得到的距离d用于作为雪地片元在场景中所处的区域的判断依据,来判断雪地片元处于场景中的凹陷区域还是凸起区域,再或者不受影响,即不发生形变,针对不受影响的雪地片元不做处理。
(d)依据距离判断雪地片元处于凹陷区域或凸起区域后,依据距离、包围球的半径以及雪地片元的法线方向,计算原始法线方向的位移和位移后的法线,并更新形变贴图。
实施例中,依据距离d判断雪地片元处于凹陷区域或凸起区域包括:
当雪地片元到对应的变换后的包围球的距离d小于等于对应的包围球的半径r时,即d≤r,则认为雪地片元处于凹陷区域,凹陷中心的深度为r-dcosθ,凹陷边沿的深度为0,凹陷区域在雪地表面的半径为其中O为包围球的中心,P为雪地片元的第二世界坐标,N表示雪地片元的法线方向。
实施例还认为凹陷区域的边缘应产生由于物体排挤而凸起部分为凸起区域,设定凸起宽度w,即判断当雪地片元到对应的变换后的包围球的距离大于对应的包围球的半径,即d<r,且d|cosθ|<r,且 时,则认为雪地片元处于凸起区域。
在依据距离判断雪地片元处于凹陷区域或凸起区域后,依据距离、包围球的半径以及雪地片元的法线方向,计算原始法线方向的位移和位移后的法线,包括:
针对凹陷区域,以雪地片元为原点,雪地片元的法线方向为y轴,雪地片元的切线方向为x轴建立凹陷局部坐标系,依据凹陷局部坐标系下,凹陷中心坐标、凹陷边缘坐标,以及随机选择的2个坐标,构造表达凹陷剖面形状的凹陷贝塞尔曲线。实施例中,可以将凹陷中心坐标(0,dcosθ-r),凹陷边沿坐标分别设为点P0和点P3,选择视觉效果比较好的两个点进行自定义,优选可以自定义设置点然后依据点P0、P1、P2、P3构造三次贝塞尔曲线表达凹陷剖面的形状,即凹陷深度的表达式为:
y(t)=YP0(1-t)3+3YP1t(1-t)2+3YP2t2(1-t)+YP3t3
针对凸起区域,以沿雪地片元的切线方向距雪地片元处为原点,雪地片元的法线方向为y轴,雪地片元的切向方向为x轴建立凸起局部坐标系,依据凸起局部坐标系下,依据凸起局部坐标系下随机选择的4个点构建表达凸起剖面形状的凹陷贝塞尔曲线。实施例中,以点P0(0,0),P2(0.4w,0),P3(w,0)构建三次贝塞尔曲线表达凸起剖面的形状,即凸起高度的表达式为:
y(t)=YP0(1-t)3+3YP1t(1-t)2+3YP2t2(1-t)+YP3t3
其中,t=x/w,其中,P1、P2以及P3是自定义选择,以视角效果比较好为选择目标。
当雪地片元处于凹陷区域或凸起区域时,通过求凹陷贝塞尔曲线或凹陷贝塞尔曲线的斜率来得到雪地片元的切线方向和法线方向,并将法线方向后处理后得到新法线方向作为位移后的法线,将通过求凹陷贝塞尔曲线或凹陷贝塞尔曲线的在原点处的函数值得到凹陷深度或凸起高度,作为原始法线方向的位移。
实施例中,当雪地片元处于凹陷区域或凸起区域时,求对应三次贝塞尔曲线上一点斜率:y′(t)=dy/dt,由t=x/XP3,得y′(x)=y′(t)/XP3,其中,XP3表示点P3的横坐标,顾t对应的切线方向为(1,y′(x)),法线方向为(-y′(x),1)。在此基础上,将法线方向后处理后得到新法线方向作为位移后的法线,具体包括:将法线方向归一化后得到(Nx,Ny),通过公式得到新法线方向(x,y),并将新法线方向变换到第二世界坐标下后再归一化后,将归一化的(x,y)、凹陷局部坐标系或凸起局部坐标系下的x作为位移后的法线,即将归一化的(x,y)写入形变贴图的RG通道,将凹陷局部坐标系或凸起局部坐标系下的x写入形变贴图的B通道,同时将通过三次贝塞尔曲线计算的凹陷深度(负值)或凸起高度(正值)写入形变贴图的A通道。
在获得原始法线方向的位移和位移后的法线后,依据原始法线方向的位移和位移后的法线更新形变贴图,包括:
针对每一帧都调用计算着色器,读取形变贴图中的历史值和就算当前值,也就是当前时刻的原始法线方向的位移和位移后的法线,若当前雪地片元位于凹陷区域且作为原始法线方向的位移的凹陷深度绝对值大于历史绝对值,或历史值为初始默认值,则更新沿原始法线方向的位移以及位移后的法线;若当前片元位于凸起区域且凸起局部坐标系下的x值小于历史值,或历史值为初始默认值,则更新沿原始法线方向的位移以及位移后的法线。其中历史值为上一时刻形变贴图中存储的原始法线方向的位移和位移后的法线。
步骤5,通过对形变贴图进行多次下采样得到不同等级的标记形变区域图,计算当前雪地网格的三角面片的任意边与标记形变区域图相交时,对三角面片进行细分。
实施例中,采用一张分辨率为512×512的单通道8位纹理图用于标记形变区域图。标记形变区域图通过对步骤4中的形变贴图进行下采样得到:从1024*1024的高分辨率的形变贴图中采样四个像素(2i,2j)、(2i+1,2j),(2i+1,2j+1),(2i,2j+1),当其中存在非默认值时,下采样值为1,否则为0,依此得到512×512低分辨的标记形变区域图中像素(i,j)值。采用同样的方式对512×512的标记形变区域图再进行采样,依此类推,得到从512×512到2×2共9层标记形变区域图mipmap的。每一帧实时进行mipmap的构建。
实施例中,采用曲面细分控制着色器(tessellation control shader)计算当前雪地网格的三角面片的任意边与标记形变区域图的相交情况,过程为:在雪地网格的tessellation control shader,首先,将雪地网格的三角面片的三个顶点变换到步骤3所用正交相机的投影空间,得到对应步骤4所得形变贴图中的纹理坐标;然后对于三角面片的每条边,依据得到的纹理坐标求每条边与标记形变区域图是否相交:使用mipmap等级为0的标记形变区域图,从一个端点开始向另一端点步进,每次从该mipmap等级下的当前像素步进至下一个像素,并采样当前像素值,若不为1(即表示不在标记形变区域图),则增大mipmap等级,继续步进,否则减小mipmap等级。若已步进至另一端点,或当前mipmap等级小于0,或到达最大步数(设置为30步),则停止步进。若最后一次采样值为1且最终步进数小于最大步进数,则认为边与标记形变区域图存在交集,其中,端点表示为雪地网格的顶点对应的标记形变区域图的位置,也即是纹理坐标。
当三角片面的任意一边与标记形变区域图存在交集,则对三角面片进行细分,细分等级视原始网格密度进行设置,否则将细分等级设置为1。
步骤6,依据形变贴图或距离场纹理图对雪地片元进行法线方向的位移调整,以实现对当前雪地网格的形变。
实施例中,采用曲面细分评估着色器(tessellation evaluation shader)依据形变贴图或距离场纹理图对雪地片元进行原始法线方向的位移,并更新法线方向,包括:
对形变贴图进行像素点采样,若采样值不为默认值,则依据像素点存储的原始法线方向的位移值对雪地片元进行位移调整;若采样值为默认值,则采样距离场纹理图中最短无向距离d1,且设置影响范围k和位移高度h,当满足d1≤k时,依据最短无向距离d1和设置影响范围k确定位移调整比例,以位移高度h和位移调整比例的乘积作为位移值,按照该位移值对雪地片元在原始法线方向进行位移调整。距离场纹理图的尺寸只要合适即可,可以是1024x1024,或者取与雪地基础贴图同样的尺寸。
在以上的可形变雪地网格的绘制方法的基础上,实施例提供的可形变雪地网格的绘制方法,还包括:
步骤7,在绘制过程中,维护绘制当前雪地网格的正交相机的位置,随着场景主相机移动:并将形变贴图中信息拷贝到当前正交相机对应的新形变贴图中。
实施例中,维护步骤3中对雪地网格进行预绘制采用的正交相机的位置,使正交位置跟随正式绘制采用的场景主相机移动。将场景沿第一世界坐标系下的xz平面按正方形网格划分,正方形边长为正交相机视口宽度的三分之一,即V/3。当正交相机从一个网格(N,N)移动到另一网格(N+i,N+j)时,立即将正交相机的xz坐标修改为当前网格中心的xz坐标,同时对步骤4所得的形变贴图中纹理进行一次拷贝:纹理的分辨率为R×R,新纹理设置为初始默认值,然后将原纹理(I,J)像素的值拷贝至新纹理的(I-iR/3,J-jR/3)位置。
图3是一实施例提供的可形变雪地网格的绘制装置的结构示意图。如图3所示,实施例提供的可形变雪地网格的绘制装置300,包括:
距离场纹理图生成模块310,计算初始雪地网格和静态物体网格之间的距离场纹理图;
包围体构建模块320,对动态物体网格的顶点进行聚类以确定每个顶点簇的包围球,所有顶点簇的包围球构成动态物体网格的包围体;
预绘制模块330,绘制当前雪地网格,得到维度相同的深度图和几何法线图;
形变贴图生成模块340,依据当前雪地网格对应的深度图和几何法线图、动态物体网格的包围体以及动态物体变换矩阵,计算雪地形变并更新形变贴图;
细分模块350,通过对形变贴图进行多次下采样得到不同等级的标记形变区域图,计算当前雪地网格的三角面片的任意边与标记形变区域图相交时,对三角面片进行细分;
形变模块360,依据形变贴图或距离场纹理图对雪地片元进行法线方向的位移调整,以实现对当前雪地网格的再次形变;
维护模块370,用于在绘制过程中,维护绘制当前雪地网格的正交相机的位置,随着场景主相机移动:并将形变贴图中信息拷贝到当前正交相机对应的新形变贴图中。
需要说明的是,上述实施例提供的可形变雪地网格的绘制装置在进行可形变雪地网格的绘制时,应以上述各功能模块的划分进行举例说明,可以根据需要将上述功能分配由不同的功能模块完成,即在终端或服务器的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的可形变雪地网格的绘制装置与可形变雪地网格的绘制方法实施例属于同一构思,其具体实现过程详见可形变雪地网格的绘制方法实施例,这里不再赘述。
上述实施例提供的可形变雪地网格的绘制方法和装置,通过计算初始雪地网格和静态物体网格之间的距离场纹理图和动态物体网格的包围体做好雪地网格变形的准备;利用正交相机绘制当前雪地网格来得到维度相同的深度图和几何法线图;然后依据深度图和几何法线图以及动态物体网格的包围体来计算雪地形变并更新形变贴图,最后,通对形变贴图进行多次下采样得到不同等级的标记形变区域图来判断三角面片是否进行细分,当前雪地网格的三角面片的任意边与标记形变区域图相交时,对三角面片进行细分;同时依据形变贴图或距离场纹理图对雪地片元进行法线方向的位移调整;这样的形变雪地网格的绘制过程需要较少的性能开销,且实现了对雪地网格的可形变绘制,满足实际的场景需求。
以上所述的具体实施方式对本发明的技术方案和有益效果进行了详细说明,应理解的是以上所述仅为本发明的最优选实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种可形变雪地网格的绘制方法,其特征在于,包括以下步骤:
计算初始雪地网格和静态物体网格之间的距离场纹理图;
对动态物体网格的顶点进行聚类以确定每个顶点簇的包围球,所有顶点簇的包围球构成动态物体网格的包围体;
以俯视正交视角预绘制当前雪地网格,得到维度相同的深度图和几何法线图;
依据当前雪地网格对应的深度图和几何法线图、动态物体网格的包围体以及动态物体变换矩阵,计算雪地形变并更新形变贴图;
通过对形变贴图进行多次下采样得到不同等级的标记形变区域图,计算当前雪地网格的三角面片的任意边与标记形变区域图相交时,对三角面片进行细分;
依据形变贴图或距离场纹理图对雪地片元进行原始法线方向的位移,并更新法线方向,以实现对当前雪地网格的形变。
2.根据权利要求1所述的可形变雪地网格的绘制方法,其特征在于,所述计算初始雪地网格和静态物体网格之间的距离场纹理图,包括:
利用顶点着色器对初始雪地网格进行顶点变换处理,得到归一化的顶点纹理坐标和顶点世界坐标;
依据静态物体网格、模型变化矩阵以及初始雪地网格的顶点世界坐标对应的雪地片元的第一世界坐标,利用片元着色器计算雪地片元的第一世界坐标与静态物体网格的每个三角面片的最短无向距离,将每个雪地片元对应的所有最短无向距离中的最小值组成距离场纹理图。
3.根据权利要求1所述的可形变雪地网格的绘制方法,其特征在于,所述对动态物体网格的顶点进行聚类以确定每个顶点簇的包围球,包括:
计算动态物体网格的轴对齐第一包围盒,在第一包围盒内,采用聚类算法将动态物体网格的顶点聚成多个顶点簇;
计算每个顶点簇的第二包围盒,以第二包围盒的最大对角线长度和中心分别为直径和球心,构建每个顶点簇的包围球。
4.根据权利要求1所述的可形变雪地网格的绘制方法,其特征在于,所述依据当前雪地网格对应的深度图和几何法线图、动态物体网格的包围体以及动态物体变换矩阵,计算雪地形变并更新形变贴图,包括:
初始化形变贴图,形变贴图存储雪地表面沿着原始法线方向的位移以及位移后的法线,维度与绘制当前雪地网格得到的深度图相同;
利用动态物体变换矩阵对每个顶点簇的包围球进行变换得到变换后的包围球;
针对形变贴图的每个像素,从深度图和几何法线图中相同位置采样深度数据和法线方向,通过对深度数据进行逆变换得到像素对应的雪地片元的第二世界坐标,依据第二世界坐标计算雪地片元到对应的变换后的包围球的距离;
依据距离判断雪地片元处于凹陷区域或凸起区域后,依据距离、包围球的半径以及雪地片元的法线方向,计算原始法线方向的位移和位移后的法线,并更新形变贴图。
6.根据权利要求4或5所述的可形变雪地网格的绘制方法,其特征在于,所述依据距离、包围球的半径以及雪地片元的法线方向,计算原始法线方向的位移和位移后的法线,包括:
针对凹陷区域,以雪地片元为原点,雪地片元的法线方向为y轴,雪地片元的切线方向为x轴建立凹陷局部坐标系,依据凹陷局部坐标系下,凹陷中心坐标、凹陷边缘坐标,以及随机选择的2个坐标,构造表达凹陷剖面形状的凹陷贝塞尔曲线;
针对凸起区域,以沿雪地片元的切线方向距雪地片元处为原点,雪地片元的法线方向为y轴,雪地片元的切向方向为x轴建立凸起局部坐标系,依据凸起局部坐标系下,依据凸起局部坐标系下随机选择的4个点构建表达凸起剖面形状的凹陷贝塞尔曲线;
当雪地片元处于凹陷区域或凸起区域时,通过求凹陷贝塞尔曲线或凹陷贝塞尔曲线的斜率来得到雪地片元的切线方向和法线方向,并将法线方向后处理后得到新法线方向作为位移后的法线,将通过求凹陷贝塞尔曲线或凹陷贝塞尔曲线的在原点处的函数值得到凹陷深度或凸起高度,作为原始法线方向的位移;
7.根据权利要求6所述的可形变雪地网格的绘制方法,其特征在于,依据原始法线方向的位移和位移后的法线更新形变贴图,包括:
若当前雪地片元位于凹陷区域且作为原始法线方向的位移的凹陷深度绝对值大于历史绝对值,或历史值为初始默认值,则更新沿原始法线方向的位移以及位移后的法线;
若当前片元位于凸起区域且凸起局部坐标系下的x值小于历史值,或历史值为初始默认值,则更新沿原始法线方向的位移以及位移后的法线。
9.根据权利要求1-8任一项所述的可形变雪地网格的绘制方法,其特征在于,在绘制过程中,维护绘制当前雪地网格的正交相机的位置,随着场景主相机移动:并将形变贴图中信息拷贝到当前正交相机对应的新形变贴图中。
10.一种可形变雪地网格的绘制装置,其特征在于,包括:
距离场纹理图生成模块,计算初始雪地网格和静态物体网格之间的距离场纹理图;
包围体构建模块,对动态物体网格的顶点进行聚类以确定每个顶点簇的包围球,所有顶点簇的包围球构成动态物体网格的包围体;
预绘制模块,以俯视正交视角绘制当前雪地网格,得到维度相同的深度图和几何法线图;
形变贴图生成模块,依据当前雪地网格对应的深度图和几何法线图、动态物体网格的包围体以及动态物体变换矩阵,计算雪地形变并更新形变贴图;
细分模块,通过对形变贴图进行多次下采样得到不同等级的标记形变区域图,计算当前雪地网格的三角面片的任意边与标记形变区域图相交时,对三角面片进行细分;
形变模块,依据形变贴图或距离场纹理图对雪地片元进行法线方向的位移调整,以实现对当前雪地网格的再次形变。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111113396.7A CN113808243B (zh) | 2021-09-23 | 2021-09-23 | 一种可形变雪地网格的绘制方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111113396.7A CN113808243B (zh) | 2021-09-23 | 2021-09-23 | 一种可形变雪地网格的绘制方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113808243A true CN113808243A (zh) | 2021-12-17 |
CN113808243B CN113808243B (zh) | 2023-09-15 |
Family
ID=78896349
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111113396.7A Active CN113808243B (zh) | 2021-09-23 | 2021-09-23 | 一种可形变雪地网格的绘制方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113808243B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114241114A (zh) * | 2021-12-22 | 2022-03-25 | 上海完美时空软件有限公司 | 材质的渲染方法及装置、存储介质、电子装置 |
CN115830201A (zh) * | 2022-11-22 | 2023-03-21 | 光线云(杭州)科技有限公司 | 一种基于聚簇的粒子***优化渲染方法和装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090092473A (ko) * | 2008-02-27 | 2009-09-01 | 오리엔탈종합전자(주) | 3차원 변형 가능 형상 모델에 기반한 3차원 얼굴 모델링방법 |
CN102752549A (zh) * | 2011-05-17 | 2012-10-24 | 新奥特(北京)视频技术有限公司 | 一种基于网格形变的特效的实现方法 |
CN104091359A (zh) * | 2014-07-23 | 2014-10-08 | Tcl集团股份有限公司 | 对位图格式的纹理贴图模拟矢量形变动画的方法和装置 |
CN111773699A (zh) * | 2020-07-20 | 2020-10-16 | 网易(杭州)网络有限公司 | 一种地形形变方法和装置 |
US20200349306A1 (en) * | 2018-09-24 | 2020-11-05 | Oscar Pablo Bruno | General Scattered Field Simulator |
CN112569602A (zh) * | 2020-12-25 | 2021-03-30 | 珠海金山网络游戏科技有限公司 | 在虚拟场景中构建地形的方法及装置 |
-
2021
- 2021-09-23 CN CN202111113396.7A patent/CN113808243B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090092473A (ko) * | 2008-02-27 | 2009-09-01 | 오리엔탈종합전자(주) | 3차원 변형 가능 형상 모델에 기반한 3차원 얼굴 모델링방법 |
CN102752549A (zh) * | 2011-05-17 | 2012-10-24 | 新奥特(北京)视频技术有限公司 | 一种基于网格形变的特效的实现方法 |
CN104091359A (zh) * | 2014-07-23 | 2014-10-08 | Tcl集团股份有限公司 | 对位图格式的纹理贴图模拟矢量形变动画的方法和装置 |
US20200349306A1 (en) * | 2018-09-24 | 2020-11-05 | Oscar Pablo Bruno | General Scattered Field Simulator |
CN111773699A (zh) * | 2020-07-20 | 2020-10-16 | 网易(杭州)网络有限公司 | 一种地形形变方法和装置 |
CN112569602A (zh) * | 2020-12-25 | 2021-03-30 | 珠海金山网络游戏科技有限公司 | 在虚拟场景中构建地形的方法及装置 |
Non-Patent Citations (2)
Title |
---|
A. DE BOER等: "Mesh deformation based on radial basis function interpolation", 《COMPUTERS AND STRUCTURES》 * |
施晓晗: "高质量大规模网格形变技术", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114241114A (zh) * | 2021-12-22 | 2022-03-25 | 上海完美时空软件有限公司 | 材质的渲染方法及装置、存储介质、电子装置 |
CN115830201A (zh) * | 2022-11-22 | 2023-03-21 | 光线云(杭州)科技有限公司 | 一种基于聚簇的粒子***优化渲染方法和装置 |
CN115830201B (zh) * | 2022-11-22 | 2024-05-24 | 光线云(杭州)科技有限公司 | 一种基于聚簇的粒子***优化渲染方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113808243B (zh) | 2023-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100738500B1 (ko) | 영상 기반 돌출 변위 매핑 방법과, 이를 이용한 이중 변위매핑 방법 | |
CN113516769B (zh) | 虚拟现实三维场景加载与渲染方法、装置和终端设备 | |
JP5032282B2 (ja) | 湾曲した表面エリアに基づく地形モデリング | |
CN113808243B (zh) | 一种可形变雪地网格的绘制方法和装置 | |
US20080238919A1 (en) | System and method for rendering of texel imagery | |
CN107895048B (zh) | 一种基于实景三维的快速出图方法 | |
CN105046735B (zh) | 一种基于基元分布的三维表面纹理合成方法 | |
CN115372989A (zh) | 基于激光雷达的越野自动小车长距离实时定位***及方法 | |
WO2014143689A1 (en) | Overlaying two-dimensional map elements over terrain geometry | |
CN114219902A (zh) | 气象数据的体绘制渲染方法、装置和计算机设备 | |
CN111047682B (zh) | 一种三维车道模型生成方法及*** | |
CN111581776A (zh) | 一种基于几何重建模型的等几何分析方法 | |
CN113643414B (zh) | 一种三维图像生成方法、装置、电子设备及存储介质 | |
CN115409957A (zh) | 基于虚幻引擎的地图构建方法、电子设备和存储介质 | |
CN115661374A (zh) | 一种基于空间划分和模型体素化的快速检索方法 | |
CN116363290A (zh) | 一种用于大规模场景三维重建的纹理贴图生成方法 | |
CN115409962A (zh) | 虚幻引擎内构建坐标***的方法、电子设备和存储介质 | |
CN114998496A (zh) | 一种基于场景航拍图及稀疏点云的正射影像快速生成方法 | |
CN115409960A (zh) | 基于虚幻引擎的模型构建方法、电子设备和存储介质 | |
CN111260780B (zh) | 基于高度图高程的实时地形修改方法 | |
CN114049423A (zh) | 一种自动的真实感三维模型纹理映射方法 | |
CN113487741A (zh) | 稠密三维地图更新方法及装置 | |
CN113284211A (zh) | 一种正射影像生成的方法以及*** | |
JP3149389B2 (ja) | ビットマップ・イメージを環境マップにオーバレイする方法および装置 | |
Poux | How to represent 3D Data? |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |