CN104346825B - 一种非线性深度转化为线性深度的处理方法和装置 - Google Patents
一种非线性深度转化为线性深度的处理方法和装置 Download PDFInfo
- Publication number
- CN104346825B CN104346825B CN201410604780.0A CN201410604780A CN104346825B CN 104346825 B CN104346825 B CN 104346825B CN 201410604780 A CN201410604780 A CN 201410604780A CN 104346825 B CN104346825 B CN 104346825B
- Authority
- CN
- China
- Prior art keywords
- camera
- coordinate
- model
- linear
- depth
- 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.)
- Active
Links
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 39
- 238000000034 method Methods 0.000 title abstract description 16
- 230000009466 transformation Effects 0.000 claims abstract description 36
- 238000003672 processing method Methods 0.000 claims abstract description 10
- 238000012545 processing Methods 0.000 claims description 14
- 238000013519 translation Methods 0.000 claims description 7
- 230000000007 visual effect Effects 0.000 claims description 7
- 239000011159 matrix material Substances 0.000 claims 2
- 230000000694 effects Effects 0.000 abstract description 9
- 239000002245 particle Substances 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 9
- 238000010276 construction Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000000205 computational method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/16—Spatio-temporal transformations, e.g. video cubism
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/06—Topological mapping of higher dimensional structures onto lower dimensional surfaces
- G06T3/067—Reshaping or unfolding 3D tree structures onto 2D planes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/20—Linear translation of whole images or parts thereof, e.g. panning
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Abstract
本发明公开了一种非线性深度转化为线性深度的处理方法和装置。该处理方法包括:将模型放入世界坐标系然后经过模型变换到相机坐标系中;将相机坐标系的坐标转化为投影空间中的坐标并予以光栅化,在光栅化时根据投影空间剔除不被渲染的像素;在光栅化时对模型的可见像素的图像驱动层进行非线性化;将非线性深度转化为基于相机空间下的线性深度。通过将模型的坐标依次转换到相机空间和投影空间,在投影空间中剔除不被渲染的像素,在投影空间获取可见像素的非线性深度,再转为相机空间下的线性深度,将场景中需要线性化的物体进行转化,例如在模拟特效或者离屏粒子的绘制时,呈现更逼真的画面效果,在涉及深度线性化操作时均可实施本方案。
Description
技术领域
本发明涉及计算机图形学领域,尤其涉及一种非线性深度转化为线性深度的处理方法和装置。
背景技术
随着计算机图形学的发展,使得三维物体表现在三维的世界表示复杂而又真实的信息,现在越来越多的三维模型在模仿着现实中真实的物体,目前对于图像处理的方法研究有很多,通过调用硬件图形的接口也可以实现内部的机制,这样的实现方法不能够满足实际的需求,需要对接口应用程序进行变换得到比较真实的效果目前一般采用都是系统自身的线性计算方法,这样的处理方法的处理结果有画面效果单一,图形粗糙等问题。
发明内容
本发明提出了一种非线性深度转化为线性深度的处理方法和装置,其通过将模型的坐标依次变换到相机空间和投影空间,在投影空间中剔除不被渲染的像素,在投影空间获取剩余像素的非线性深度,再转为相机空间下的线性深度,将场景中需要线性化的物体进行转化,其用途为:模拟特效或者离屏粒子的绘制,在场景中呈现更逼真的画面效果,而且凡涉及到深度线性化操作的时都离不开线性深度计算。
为实现上述设计,本发明采用以下技术方案:
一方面采用一种非线性深度转化为线性深度的处理方法,包括:
将模型放入世界坐标系然后经过模型变换到相机坐标系中;
将相机坐标系的坐标转化为投影空间中的坐标并予以光栅化,在光栅化时根据投影空间剔除不被渲染的像素;
在光栅化时对模型的可见像素的图像驱动层进行非线性化;
将非线性化的深度转化为基于相机空间下的线性深度值。
其中,所述将模型放入世界坐标系然后经过模型变换到相机坐标系中,具体为:
将模型的坐标从建模坐标系放入世界坐标系然后经过模型变换到相机坐标系。
其中,所述模型的坐标从建模坐标系转为世界坐标系,具体为:
[Lx,Ly,Lz,1]*scale*rotate*translate=[Wx,Wy,Wz,1];
其中,[Lx,Ly,Lz,1]为模型在建模坐标系中的坐标;scale为模型的缩放变换,rotate为模型的旋转变换,translate为模型的平移变换,[Wx,Wy,Wz,1]为模型在世界坐标系中的坐标;
所述模型的坐标从世界空间坐标系转为相机坐标系,具体为:
其中,xaxis.x,xaxis.y,xaxis.z为相机坐标系的x轴;yaxis.x,yaxis.y,yaxis.z为相机坐标系的y轴;zaxis,zaxis.y,zaxis.z为相机坐标系的z轴,eye为相机在世界空间坐标系的位置;[Vx,Vy,Vz,1]为相机坐标系的坐标。
其中,所述将相机坐标系的坐标转化为投影空间中的坐标并予以光栅化,在光栅化时根据投影空间剔除不被渲染的像素,具体为:
X(Vx,Vy,Vz)=Vx*xAspect/Vz;
Y(Vx,Vy,Vz)=Vx*yAspect/Vz;
Z(Vx,Vy,Vz)=(Vz-ZN)*ZF/(ZF-ZN);
其中,-1<=Vx*xAspect/Vz<=1;-1<=Vy*yAspect/Vz<=1;
其中,X(Vx,Vy,Vz)、Y(Vx,Vy,Vz)、Z(Vx,Vy,Vz)分别为投影空间中的坐标值;xAspect、yAspect分别为相机水平视角一半的余切值、相机竖直视角一半的余切值;ZN、ZF分别为相机到近裁剪面、远裁剪面的距离;Vx、Vy、Vz为相机坐标系中的坐标值。
其中,所述在投影空间获取模型的剩余像素的图像驱动层的非线性深度,具体为:
其中,Z为相机深度Vz,F(z)为投影空间中像素的深度值;所述将非线性深度转化为基于相机空间下的线性深度值,具体为:
其中,Q(Z)为关于相机深度Vz的线性关系,ZN为相机到近裁剪面的距离;ZF为相机到远裁剪面的距离。
另一方面采用一种非线性深度转化为线性深度的处理装置,包括:
坐标转换单元,用于将模型放入世界坐标系然后经过模型变换到相机坐标系中;
像素剔除单元,用于将相机坐标系的坐标转化为投影空间中的坐标并予以光栅化,在光栅化时根据投影空间剔除不被渲染的像素;
非线性深度获取单元,用于在光栅化时对模型的可见像素的图像驱动层进行非线性化;
线性深度转化单元,用于将非线性化的深度转化为基于相机空间下的线性深度值。
其中,所述坐标转换单元,具体用于:
将模型的坐标从建模坐标系放入世界坐标系然后经过模型变换到相机坐标系。
其中,所述模型的坐标从建模坐标系转为世界坐标系,具体为:
[Lx,Ly,Lz,1]*scale*rotate*translate=[Wx,Wy,Wz,1];
其中,[Lx,Ly,Lz,1]为模型在建模坐标系中的坐标;scale为模型的缩放变换,rotate为模型的旋转变换,translate为模型的平移变换,[Wx,Wy,Wz,1]为模型在世界坐标系中的坐标;
所述模型的坐标从世界空间坐标系转为相机坐标系,具体为:
其中,xaxis.x,xaxis.y,xaxis.z为相机坐标系的x轴;yaxis.x,yaxis.y,yaxis.z为相机坐标系的y轴;zaxis,zaxis.y,zaxis.z为相机坐标系的z轴,eye为相机在世界空间坐标系的位置;[Vx,Vy,Vz,1]为相机坐标系的坐标。
其中,所述像素剔除单元,具体用于:
X(Vx,Vy,Vz)=Vx*xAspect/Vz;
Y(Vx,Vy,Vz)=Vx*yAspect/Vz;
Z(Vx,Vy,Vz)=(Vz-ZN)*ZF/(ZF-ZN);
其中,-1<=Vx*xAspect/Vz<=1;-1<=Vy*yAspect/Vz<=1;
其中,X(Vx,Vy,Vz)、Y(Vx,Vy,Vz)、Z(Vx,Vy,Vz)分别为投影空间中的坐标值;xAspect、yAspect分别为相机水平视角一半的余切值、相机竖直视角一半的余切值;ZN、ZF分别为相机到近裁剪面ZN、远裁剪面ZF的距离;Vx、Vy、Vz为相机坐标系中的坐标值。
其中,所述非线性深度获取单元,具体用于:
其中,Z为相机深度Vz,F(z)为投影空间中像素的深度值;
所述线性深度转化单元,具体用于:
其中,Q(Z)为关于相机深度Vz的线性关系,ZN为相机到近裁剪面的距离;ZF为相机到远裁剪面的距离。
本发明的有益效果在于:通过将模型的坐标依次转换到相机空间和投影空间,在投影空间中剔除不被渲染的像素,在投影空间获取剩余像素的非线性深度,再转为相机空间下的线性深度,将场景中需要线性化的物体进行转化,模拟特效或者离屏粒子的绘制,在场景中呈现更逼真的画面效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据本发明实施例的内容和这些附图获得其他的附图。
图1是本发明实施例提供的一种非线性深度转化为线性深度的处理方法的第一实施例的方法流程图。
图2是左手坐标系和右手坐标系的示意图。
图3是建模空间、世界空间和相机空间的示意图。
图4是相机空间中的视锥体的示意图。
图5是本发明实施例提供的一种非线性深度转化为线性深度的处理装置的第一实施例的结构方框图。
图6是本发明实施例提供的坐标变换的数序关系示意图。
具体实施方式
为使本发明解决的技术问题、采用的技术方案和达到的技术效果更加清楚,下面将结合附图对本发明实施例的技术方案作进一步的详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,其是本发明实施例提供的一种非线性深度转化为线性深度的处理方法的第一实施例的方法流程图。本实施例中的非线性深度转化为线性深度的处理方法主要用于在三维空间中图像的图形学处理。如图所示,该方法包括:
步骤S101:将模型放入世界坐标系然后经过模型变换到相机坐标系中。
在场景构造完成后,把三维制作的模型变换到相机空间,也就是观察空间,然后再进过投影变换将三维物体投射到投影面上得到二维平面图形。
步骤S102:将相机坐标系的坐标转化为投影空间中的坐标并予以光栅化,在光栅化时根据投影空间剔除不被渲染的像素。
目前的图形软件一般支持平行投影和透视投影两种方式,而透视投影基本符合人类视觉的习惯,物体经过投影映射会出现近大远小的现象,距离相机远的地方物体小,远到极点就认为是消失,它的观察空间是一个顶部和底部都被切除的棱锥,在图形学中这个棱锥称为视椎体。
当相机空间转换为投影空间过程中产生非线性深度信息,以及投影空间下的x,y,z的坐标值。在产生非线性深度信息时,会将不被渲染的像素在光栅化时裁剪掉。
步骤S103:在光栅化时对模型的可见像素的图像驱动层进行非线性化。
对于非线性深度是在投影空间下计算的,基于上述的视椎体的近裁剪面和远裁剪面,它与投影平面平行,基于相机空间坐标空间,视角方向垂直于裁剪面方向为Z方向,相机竖直向上的方向为Y方向,而Z和Y方向叉乘得到X方向,剔除视椎体以外的看不到的像素,那么显卡里保存的非线性深度转化到线性。
步骤S104:将非线性化的深度转化为基于相机空间下的线性深度。
数学线性的表达式为:y=kx+b(k≠0),将上一步骤中获得的非线性深度以这种线性表达式来描述相机深度。
在现实中,所有的三位物体都具有三维特性,但是计算机只能处理数字,显示二维图形,将三维物体和二维图像联系到一起就是坐标。为了显示物体数字化,要在显示的物体所在的空间中定义一个坐标系。显卡驱动可以使三维模型经过各种坐标变换得到二维图像输出到屏幕上,图形硬件显卡一般为Direct3D和OpenGL,而Direct3D使用的是左手坐标系,OpenGL使用的是右手坐标系。两种坐标系如图2所示。在三维空间,首先说明一下两种坐标系:左手坐标系和右手坐标系,在计算机图形学中两种坐标系都是可以使用的。
以下将基于Direct3D图形显卡详细说明转化的具体过程和原理。Direct3D图形显卡是使用的是左手坐标系,把左手坐标系的XY坐标平面看成是屏幕显示器或观察的平面,那么物体时位于观察平面的后边,当Z值大时,物体离观察平面越远,当Z值越小,物体离观察平面越近。
当构建一个或者多个三维物体时,物体的表示可是极其复杂的,它的各个顶点不易计算出来,将物体定义在一个局部坐标系中,通常在三维软件(Maya、3DMAX)中对物体进行勾勒,这个局部坐标系又称建模坐标系;在模型的实际运用。例如游戏中,需要把制作好的模型摆放在游戏场景中合适的位置,而此时这个游戏场景别定义为世界坐标,该坐标系是固定不变的。它用来描述这个坐标系中模型以及光源位置。在世界坐标系中,为了获得物体某个角度的投影,所以可以通过投影平面建立一个三维的坐标系,当场景构造完成后,就是把对象描述变换到相机空间(观察空间),然后再经过投影变换将三维物体投射到投影面上得到二维平面图形。从建模空间到世界空间到相机空间的示意图如图3所示;相机空间中的视锥体如图4所示。模型的坐标从建模坐标系转为世界坐标系,具体为:
[Lx,Ly,Lz,1]*scale*rotate*translate=[Wx,Wy,Wz,1];
其中,[Lx,Ly,Lz,1]为模型在建模坐标系中的坐标;scale为模型的缩放变换,rotate为模型的旋转变换,translate为模型的平移变换,[Wx,Wy,Wz,1]为模型在世界坐标系中的坐标;
所述模型的坐标从世界空间坐标系转为相机坐标系,具体为:
其中,xaxis.x,xaxis.y,xaxis.z为相机坐标系的x轴;yaxis.x,yaxis.y,yaxis.z为相机坐标系的y轴;zaxis,zaxis.y,zaxis.z为相机坐标系的z轴,eye为相机在世界空间坐标系的位置;[Vx,Vy,Vz,1]为相机坐标系的坐标。
其中,所述将相机坐标系的坐标转化为投影空间中的坐标,在投影空间中剔除不被渲染的像素,具体为:
X(Vx,Vy,Vz)=Vx*xAspect/Vz;
Y(Vx,Vy,Vz)=Vx*yAspect/Vz;
Z(Vx,Vy,Vz)=(Vz-ZN)*ZF/(ZF-ZN);
其中,-1<=Vx*xAspect/Vz<=1;-1<=Vy*yAspect/Vz<=1;
其中,X(Vx,Vy,Vz)、Y(Vx,Vy,Vz)、Z(Vx,Vy,Vz)分别为投影空间中的坐标值;xAspect、yAspect分别为相机水平视角一半的余切值、相机竖直视角一半的余切值;ZN、ZN分别为相机到近裁剪面ZN、远裁剪面ZF的距离;Vx、Vy、Vz为相机坐标系中的坐标值。
这里的-1<=Vx*xAspect/Vz<=1;-1<=Vy*yAspect/Vz<=1表示只对这个范围内的像素通过渲染,其余的在光栅化时会被裁剪,也就是步骤S202中所说的剔除掉。
在目前D3d和OpenGL两大显卡中,保存的是表示经过投影后的非线性的深度值,对于非线性深度是在投影空间下计算的,基于上述的视椎体的近裁剪面和远裁剪面,它与投影平面平行,基于相机空间坐标空间,视角方向垂直于裁剪面方向为Z方向,相机竖直向上的方向为Y方向,而Z和Y方向叉乘得到X方向,剔除视椎体以外的看不到的像素,那么显卡里保存的非线性深度转化到线性,其计算过程如下:
首先相机到远裁剪面的距离为ZF,也就是图4中的ZFar,到近裁剪面的距离为ZN,也就是图4中的ZNear。远近裁剪面是自定义的,参数的视角的范围FOVX,FOVY;FOVX是以相机为参考点垂直于水平方向可见区域角度[0,180],FOVY是以相机参考点竖直方向可见区域角度范围[0,180];而上述的等式Z(Vx,Vy,Vz)=(Vz-ZN)*ZF/(ZF-ZN)就是投影空间下的深度值,可以下面的表达式表示这个数值:
其中,Z为相机深度Vz,是一个变化的量,F(z)为投影空间中模型的像素的深度值。F(z)可以通过图形驱动层得到数值,即深度Buffer缓存可以获得,这样可以转化为已知因变量来球自变量关的数学关系而显卡中投影像素的深度值可以变形为:
已知ZF、ZN,那么F(z)可以看成F(z)=(1-k/x)*b的形式,(k,b为实数且k≠0)即可以看出相机的深度值与投影空间下像素的深度是非线性关系,同时用到了逆推的方法,已知因变量而推导出自变量的值,得到相机空间深度Z为:
而数学线性的表达式为:y=kx+b(k≠0),那么以这种线性表达式来描述相机深度的线性表达式为:Q(Z)线性表达式为:
即是关于投影深度Z的线性表达式,从而可以变形为Q(z)=kx*b(k,b为实数且k≠0),把上步得到的F(z)代入到Q(Z)中的Z变量中得到线性深度和相机深度Vz是线性关系,那么得到F(z)的表达式为:
其中,从此公式可以计算Q(Z)是线性深度,它和相机深度Vz之间是线性关系。具体的数学关系,请参考图6。
综上所述,通过将模型的坐标依次变换到相机空间和投影空间,在投影空间中剔除不被渲染的像素,在投影空间获取剩余像素的非线性深度,再转为相机空间下的线性深度,将场景中需要线性化的物体进行转化,其用途:模拟特效或者离屏粒子的绘制,在场景中呈现更逼真的画面效果,而且凡涉及到深度线性化操作的时候都离不开线性深度计算。
以下为本发明一种非线性深度转化为线性深度的处理装置的实施例。处理装置的实施例基于处理方法的实施例实现,在处理装置的实施例中未尽的说明,请参考前述处理方法的实施例。
请参考图5,其是本发明一种非线性深度转化为线性深度的处理装置的第一实施例的结构方框图,如图所示,该处理装置包括:
坐标转换单元610,用于将模型放入世界坐标系然后经过模型变换到相机坐标系中;
像素剔除单元620,用于将相机坐标系的坐标转化为投影空间中的坐标并予以光栅化,在光栅化时根据投影空间剔除不被渲染的像素;
非线性深度获取单元630,用于在光栅化时对模型的可见像素的图像驱动层进行非线性化;
线性深度转化单元640,用于将非线性化的深度转化为基于相机空间下的线性深度。
其中,所述坐标转换单元610,具体用于:
将模型的坐标从建模坐标系放入世界坐标系然后经过模型变换到相机坐标系。
其中,所述模型的坐标从建模坐标系转为世界坐标系,具体为:
[Lx,Ly,Lz,1]*scale*rotate*translate=[Wx,Wy,Wz,1];
其中,[Lx,Ly,Lz,1]为模型在建模坐标系中的坐标;scale为模型的缩放变换,rotate为模型的旋转变换,translate为模型的平移变换,[Wx,Wy,Wz,1]为模型在世界坐标系中的坐标;
所述模型的坐标从世界空间坐标系转为相机坐标系,具体为:
其中,xaxis.x,xaxis.y,xaxis.z为相机坐标系的x轴;yaxis.x,yaxis.y,yaxis.z为相机坐标系的y轴;zaxis,zaxis.y,zaxis.z为相机坐标系的z轴,eye为相机在世界空间坐标系的位置;[Vx,Vy,Vz,1]为相机坐标系的坐标。
其中,所述像素剔除单元620,具体用于:
X(Vx,Vy,Vz)=Vx*xAspect/Vz;
Y(Vx,Vy,Vz)=Vx*yAspect/Vz;
Z(Vx,Vy,Vz)=(Vz-ZN)*ZN/(ZN-ZN);
其中,-1<=Vx*xAspect/Vz<=1;-1<=Vy*yAspect/Vz<=1;
其中,X(Vx,Vy,Vz)、Y(Vx,Vy,Vz)、Z(Vx,Vy,Vz)分别为投影空间中的坐标值;xAspect、yAspect分别为相机水平视角一半的余切值、相机竖直视角一半的余切值;ZN、ZN分别为相机到近裁剪面ZN、远裁剪面ZF的距离;Vx、Vy、Vz为相机坐标系中的坐标值。
其中,所述非线性深度获取单元630,具体用于:
其中,Z为相机的深度;ZN、ZF分别为相机到近裁剪面、远裁剪面的距离;F(z)为投影空间中模型的像素的深度值;
而数学线性的表达式为:y=kx+b(k≠0),那么以这种线性表达式来描述相机深度的线性表达式为:Q(Z)线性表达式为:
即是关于相机深度Z的线性表达式,从而可以变形为Q(z)=kx*b(k,b为实数且k≠0,把上步得到的F(z)代入到Q(Z)中的Z变量中得到线性深度和相机深度Vz是线性关系,
所述线性深度转化单元640,具体用于:
Q(Z)的值就是线性深度和投影深度Vz是线性关系。
综上所述,在上述几个单元的协同运转下,通过将模型的坐标变换到世界坐标在变换到相机空间,在光栅化的时候会根据投影空间进行剔除不被渲染的像素,在投影空间获取剩余像素的非线性深度,再转为相机空间下的线性深度,将场景中需要线性化的物体进行转化,模拟特效或者离屏粒子的绘制,在场景中呈现更逼真的画面效果。实现了线性深度层次更加多样化,同时效果也比较柔和,设计到深度进行计算的问题,都可以采用此算法,适用性强,应用范围广。
以上内容仅为本发明的较佳实施例,对于本领域的普通技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种非线性深度转化为线性深度的处理方法,其特征在于,包括:
将模型放入世界坐标系然后经过模型变换到相机坐标系中;
将相机坐标系的坐标转化为投影空间中的坐标并予以光栅化,在光栅化时根据投影空间剔除不被渲染的像素;
在光栅化时对模型的可见像素的图像驱动层中的深度值进行非线性化;
将非线性化的深度转化为基于相机空间下的线性深度值;
所述在光栅化时对模型的可见像素的图像驱动层中的深度值进行非线性化,具体为:
其中,Z为相机深度Vz,F(z)为投影空间中像素的深度值,ZN为相机到近裁剪面的距离;ZF为相机到远裁剪面的距离;式子可变形为:
其中,将非线性化的深度转化为基于相机空间下的线性深度值,具体为:
其中,Q(Z)为关于相机深度Vz的线性关系,ZN为相机到近裁剪面的距离;ZF为相机到远裁剪面的距离。
2.根据权利要求1所述的一种非线性深度转化为线性深度的处理方法,其特征在于,所述将模型放入世界坐标系然后经过模型变换到相机坐标系中,具体为:
将模型的坐标从建模坐标系放入世界坐标系然后经过模型变换到相机坐标系。
3.根据权利要求2所述的一种非线性深度转化为线性深度的处理方法,其特征在于,所述模型的坐标从建模坐标系转为世界坐标系,具体为:
[Lx,Ly,Lz,1]*scale*rotate*translate=[Wx,Wy,Wz,1];
其中,[Lx,Ly,Lz,1]为模型在建模坐标系中的坐标;scale为模型的缩放变换,rotate为模型的旋转变换,translate为模型的平移变换,[Wx,Wy,Wz,1]为模型在世界坐标系中的坐标;
所述模型的坐标从世界空间坐标系转为相机坐标系,具体为:
其中,xaxis.x,xaxis.y,xaxis.z为相机坐标系的x轴;yaxis.x,yaxis.y,yaxis.z为相机坐标系的y轴;zaxis,zaxis.y,zaxis.z为相机坐标系的z轴,eye为相机在世界空间坐标系的位置;[Vx,Vy,Vz,1]为相机坐标系的坐标,dot()为矩阵相乘函数。
4.根据权利要求1所述的一种非线性深度转化为线性深度的处理方法,其特征在于,所述将相机坐标系的坐标转化为投影空间中的坐标并予以光栅化,在光栅化时根据投影空间剔除不被渲染的像素,具体为:
X(Vx,Vy,Vz)=Vx*xAspect/Vz;
Y(Vx,Vy,Vz)=Vx*yAspect/Vz;
Z(Vx,Vy,Vz)=(Vz-ZN)*ZF/(ZF-ZN);
其中,-1<=Vx*xAspect/Vz<=1;-1<=Vy*yAspect/Vz<=1;
其中,X(Vx,Vy,Vz)、Y(Vx,Vy,Vz)、Z(Vx,Vy,Vz)分别为投影空间中的坐标 值;xAspect、yAspect分别为相机水平视角一半的余切值、相机竖直视角一半的余切值;ZN、ZF分别为相机到近裁剪面、远裁剪面的距离;Vx、Vy、Vz为相机坐标系中的坐标值。
5.一种非线性深度转化为线性深度的处理装置,其特征在于,包括:
坐标转换单元,用于将模型放入世界坐标系然后经过模型变换到相机坐标系中;
像素剔除单元,用于将相机坐标系的坐标转化为投影空间中的坐标并予以光栅化,在光栅化时根据投影空间剔除不被渲染的像素;
非线性深度获取单元,用于在光栅化时对模型的可见像素的图像驱动层中的深度值进行非线性化;
线性深度转化单元,用于将非线性化的深度转化为基于相机空间下的线性深度值;
所述非线性深度获取单元,具体用于:
其中,Z为相机深度Vz,F(z)为投影空间中像素的深度值,ZN为相机到近裁剪面的距离;ZF为相机到远裁剪面的距离;
式子可变形为:
所述线性深度转化单元,具体用于:
其中,Q(Z)为关于相机深度Vz的线性关系,ZN为相机到近裁剪面的距离; ZF为相机到远裁剪面的距离 。
6.根据权利要求5所述的一种非线性深度转化为线性深度的处理装置,其特征在于,所述坐标转换单元,具体用于:
将模型的坐标从建模坐标系放入世界坐标系然后经过模型变换到相机坐标系。
7.根据权利要求6所述的一种非线性深度转化为线性深度的处理装置,其特征在于,所述模型的坐标从建模坐标系转为世界坐标系,具体为:
[Lx,Ly,Lz,1]*scale*rotate*translate=[Wx,Wy,Wz,1];
其中,[Lx,Ly,Lz,1]为模型在建模坐标系中的坐标;scale为模型的缩放变换,rotate为模型的旋转变换,translate为模型的平移变换,[Wx,Wy,Wz,1]为模型在世界坐标系中的坐标;
所述模型的坐标从世界空间坐标系转为相机坐标系,具体为:
其中,xaxis.x,xaxis.y,xaxis.z为相机坐标系的x轴;yaxis.x,yaxis.y,yaxis.z为相机坐标系的y轴;zaxis,zaxis.y,zaxis.z为相机坐标系的z轴,eye为相机在世界空间坐标系的位置;[Vx,Vy,Vz,1]为相机坐标系的坐标,dot()为矩阵相乘函数。
8.根据权利要求5所述的一种非线性深度转化为线性深度的处理装置,其特征在于,所述像素剔除单元,具体用于:
X(Vx,Vy,Vz)=Vx*xAspect/Vz;
Y(Vx,Vy,Vz)=Vx*yAspect/Vz;
Z(Vx,Vy,Vz)=(Vz-ZN)*ZF/(ZF-ZN);
其中,-1<=Vx*xAspect/Vz<=1;-1<=Vy*yAspect/Vz<=1;
其中,X(Vx,Vy,Vz)、Y(Vx,Vy,Vz)、Z(Vx,Vy,Vz)分别为投影空间中的坐标值;xAspect、yAspect分别为相机水平视角一半的余切值、相机竖直视角一半的余切值;ZN、ZF分别为相机到近裁剪面ZN、远裁剪面ZF的距离;Vx、Vy、Vz为相机坐标系中的坐标值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410604780.0A CN104346825B (zh) | 2014-10-31 | 2014-10-31 | 一种非线性深度转化为线性深度的处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410604780.0A CN104346825B (zh) | 2014-10-31 | 2014-10-31 | 一种非线性深度转化为线性深度的处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104346825A CN104346825A (zh) | 2015-02-11 |
CN104346825B true CN104346825B (zh) | 2018-04-06 |
Family
ID=52502363
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410604780.0A Active CN104346825B (zh) | 2014-10-31 | 2014-10-31 | 一种非线性深度转化为线性深度的处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104346825B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105894566A (zh) * | 2015-12-01 | 2016-08-24 | 乐视致新电子科技(天津)有限公司 | 模型渲染方法及装置 |
CN109003326B (zh) * | 2018-06-05 | 2021-07-23 | 湖北亿咖通科技有限公司 | 一种基于虚拟世界的虚拟激光雷达数据生成方法 |
CN109045693B (zh) * | 2018-07-26 | 2022-02-25 | 网易(杭州)网络有限公司 | 模型的剔除方法及装置、存储介质和电子装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101363716A (zh) * | 2008-09-26 | 2009-02-11 | 华中科技大学 | 一种组合式空间精密测量系统 |
CN102368335A (zh) * | 2011-11-01 | 2012-03-07 | 深圳市五巨科技有限公司 | 一种改进的用广告板技术绘制场景模型的方法 |
CN102914276A (zh) * | 2012-08-03 | 2013-02-06 | 南京理工大学 | 三维光学测量中基于三灰阶空间脉冲宽度调制的正弦光栅构造方法 |
CN103745501A (zh) * | 2014-01-28 | 2014-04-23 | 广东药学院 | Stl文件格式的三维模型着色及颜色信息存取方法 |
CN103745627A (zh) * | 2013-12-16 | 2014-04-23 | 北京交控科技有限公司 | 一种用于模拟驾驶的三维视景仿真方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7463261B1 (en) * | 2005-04-29 | 2008-12-09 | Adobe Systems Incorporated | Three-dimensional image compositing on a GPU utilizing multiple transformations |
-
2014
- 2014-10-31 CN CN201410604780.0A patent/CN104346825B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101363716A (zh) * | 2008-09-26 | 2009-02-11 | 华中科技大学 | 一种组合式空间精密测量系统 |
CN102368335A (zh) * | 2011-11-01 | 2012-03-07 | 深圳市五巨科技有限公司 | 一种改进的用广告板技术绘制场景模型的方法 |
CN102914276A (zh) * | 2012-08-03 | 2013-02-06 | 南京理工大学 | 三维光学测量中基于三灰阶空间脉冲宽度调制的正弦光栅构造方法 |
CN103745627A (zh) * | 2013-12-16 | 2014-04-23 | 北京交控科技有限公司 | 一种用于模拟驾驶的三维视景仿真方法及系统 |
CN103745501A (zh) * | 2014-01-28 | 2014-04-23 | 广东药学院 | Stl文件格式的三维模型着色及颜色信息存取方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104346825A (zh) | 2015-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10096157B2 (en) | Generation of three-dimensional imagery from a two-dimensional image using a depth map | |
CN112509151B (zh) | 一种教学场景中虚拟对象的真实感生成方法 | |
CN115100339B (zh) | 图像生成方法、装置、电子设备和存储介质 | |
EP3080781B1 (en) | Image rendering of laser scan data | |
CN111161422A (zh) | 一种用于增强虚拟场景实现的模型展示方法 | |
CN109887030A (zh) | 基于cad稀疏模板的无纹理金属零件图像位姿检测方法 | |
CA2550512A1 (en) | 3d videogame system | |
CN110070621A (zh) | 电子装置、显示增强现实场景的方法及电脑可读取媒体 | |
CN104331918A (zh) | 基于深度图实时绘制室外地表遮挡剔除以及加速方法 | |
CN114785996A (zh) | 虚拟现实视差校正 | |
CN102044084A (zh) | 三维图形的二维平面表现方法 | |
CN106204713B (zh) | 静态合并处理方法和装置 | |
CN112184873B (zh) | 分形图形创建方法、装置、电子设备和存储介质 | |
US20120229463A1 (en) | 3d image visual effect processing method | |
CN104346825B (zh) | 一种非线性深度转化为线性深度的处理方法和装置 | |
JP2021056679A (ja) | 画像処理装置、方法及びプログラム | |
US20180286130A1 (en) | Graphical image augmentation of physical objects | |
CN108734772A (zh) | 基于Kinect fusion的高精度深度图像获取方法 | |
CN111145341A (zh) | 一种基于单光源的虚实融合光照一致性绘制方法 | |
CN111047674A (zh) | 一种动画渲染方法及装置 | |
Deepu et al. | 3D Reconstruction from Single 2D Image | |
Sauer et al. | Occlusion handling in augmented reality user interfaces for robotic systems | |
CN106952332B (zh) | 一种基于透视变换的3d画施工图自动生成方法 | |
Wu | Research on the application of computer virtual reality technology in museum cultural relics exhibition hall | |
CN110458927A (zh) | 一种自动将图片生成三维户型模型的信息处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |