CN107452045A - 基于虚拟现实应用反畸变网格的空间点映射方法 - Google Patents

基于虚拟现实应用反畸变网格的空间点映射方法 Download PDF

Info

Publication number
CN107452045A
CN107452045A CN201710536047.3A CN201710536047A CN107452045A CN 107452045 A CN107452045 A CN 107452045A CN 201710536047 A CN201710536047 A CN 201710536047A CN 107452045 A CN107452045 A CN 107452045A
Authority
CN
China
Prior art keywords
white point
screen
mapping method
distortion
drawn
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
Application number
CN201710536047.3A
Other languages
English (en)
Other versions
CN107452045B (zh
Inventor
曹俊
孙开权
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NANJING RUIYUE INFORMATION TECHNOLOGY Co Ltd
Original Assignee
NANJING RUIYUE INFORMATION TECHNOLOGY Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NANJING RUIYUE INFORMATION TECHNOLOGY Co Ltd filed Critical NANJING RUIYUE INFORMATION TECHNOLOGY Co Ltd
Priority to CN201710536047.3A priority Critical patent/CN107452045B/zh
Publication of CN107452045A publication Critical patent/CN107452045A/zh
Application granted granted Critical
Publication of CN107452045B publication Critical patent/CN107452045B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • General Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Image Generation (AREA)

Abstract

本发明公开了一种基于虚拟现实应用反畸变网格的空间点映射方法,其特征在于改变凝视白点的绘制时序,在异步时间扭曲线程中绘制凝视白点。本发明是基于异步时间扭曲(ATW)等追帧算法,在这个算法的基础上对凝视白点的绘制进行深度的优化,能够平滑的绘制凝视白点的同时,不会对现在主流的移动VR的解决方案增加计算量,也不需要修改现在ATW等追帧算法的工作流程。

Description

基于虚拟现实应用反畸变网格的空间点映射方法
技术领域
本发明属于虚拟现实技术领域,具体是一种基于虚拟现实应用反畸变网格的空间点映射方法。
背景技术
虚拟现实技术综合利用计算机图形学、光电成像技术、传感技术、计算机仿真、人工智能等多种技术,并借助各种交互设备,旨在为用户提供一个逼真的、具有多重感知的虚拟世界。近年来,随着Facebook以20亿美金的价格收购Oculus,虚拟现实技术在全球开始广泛引人关注。目前的虚拟现实应用中通常需要用户通过一个中间视线凝视点来指示用户视线在三维场景中的相对关系,这个凝视点用来表示当前视线和场景的交互关系,比如选中界面控件等。这个凝视点我们称之为凝视白点。而另一方面为了防止用户眩晕,虚拟现实设备刷新率要求能稳定在60帧及以上,然而受到硬件性能和功耗的限制,应用的图形渲染刷新率往往很难稳定保持在一定的刷新率,这个指标通常需要60帧及以上。业界为了解决这个问题,提出了一种图形算法插帧的方案(例如Oculus的ATW技术,睿悦信息nibiru的DTR技术,Google提出的Scanline racing技术等)来解决在系统刷新率不够时候的刷新率稳定问题。然而不管是哪种插帧方案,由于都是图像变化算法,当插帧数过多的时候,算法结果和真实状态的偏差,会导致凝视白点在头部旋转过程中明显抖动。
如图1所示,给出了现有的渲染流程。现有技术中,由于VR的渲染是通常采用ATW技术,而凝视白点的绘制是发生在场景绘制的流程中,故这个绘制流程存在延时,导致人看到的凝视白点存在抖动的情况。
发明内容
本发明针对背景技术中存在的问题,提出将凝视白点的绘制结合插帧算法进行深度优化,改变凝视白点在目前主流的插帧算法中的绘制顺序,解决凝视白点抖动问题。
技术方案:
一种基于虚拟现实应用反畸变网格的空间点映射方法,该方法改变凝视白点的绘制时序,在异步时间扭曲线程中绘制凝视白点。
具体步骤为:
S1、场景绘制;
S2、获得渲染结果Colorbuffer;
S3、根据硬件设备的参数进行追帧算法时间扭曲图形计算;
S4、根据视线和场景的关系在一定的空间位置绘制凝视白点;
S5、将结果输出到屏幕上。
优选的,S4中绘制凝视白点的方法具体为:
已知当前的MVP矩阵M1,凝视白点的世界坐标是P,根据当前的世界坐标P推算出景深,确定凝视白点在观察坐标系中坐标p_camera;
凝视白点在规范化设备坐标系ndc中表示为:
p1=mp*p
式中,mp为当前P的投影矩阵projection matrix;
根据反畸变算法,推算出p在屏幕上的UV坐标p_screen;
在将图像输出到硬件屏幕上之前,将接近p_screen的屏幕像素值设置成为预定义的颜色;或者,在p_screen的位置绘制一个凝视白点的可视化的图像,这个凝视白点就完成。
更优的,P在屏幕上的UV坐标p_screen的推导公式为:
P_screen=P*(1+k1*r^2+k2*r^4)
其中k1、k2是VR透镜的光学参数,r是p距离反畸变中心的距离。
在最后的屏幕上确定接近凝视白点距离像素的方法是设定一个阈值dd,d为像素坐标p3到p_screen的距离,判断d和dd的大小关系:若d<dd,则认为像素坐标p3是接近p_screen的屏幕像素值,并设置为预定义的颜色;若d>dd,则不改变该像素坐标p3的颜色。
本发明的有益效果
本发明是基于异步时间扭曲(ATW)等追帧算法,在这个算法的基础上对凝视白点的绘制进行深度的优化,能够平滑的绘制凝视白点的同时,不会对现在主流的移动VR的解决方案增加计算量,也不需要修改现在ATW等追帧算法的工作流程。
附图说明
图1为现有技术凝视白点的渲染流程图
图2为本发明凝视白点的渲染流程图
图3为透视投影视锥的参数示意图
图4为最终渲染结果示意图
图5为反畸变算法获得的网格示意图
具体实施方式
下面结合实施例对本发明作进一步说明,但本发明的保护范围不限于此:
结合图2。
S1、场景绘制;
S2、获得渲染结果Colorbuffer;
S3、根据硬件设备的参数进行追帧算法时间扭曲图形计算;
S4、根据视线和场景的关系在一定的空间位置绘制凝视白点;
S5、将结果输出到屏幕上。
本发明将绘制凝视白点放在ATW等追帧算法线程中,这个线程在VR绘制中通常是具有高优先级的,绘制不存在明显的延时,可以很好的解决抖动感。
原理说明:在一个三维的VR场景中,凝视白点可以理解为当前视线和场景的交点的显示表现。在三维渲染场景中,可以认为这个凝视白点是三位空间中相机坐标系中的一个位置为(0,0,z)的空间点,z是景深,通常由视线与场景中的实体求交获得。由于主流的追帧算法,都可以获得一帧渲染的Framebuffer信息,这样在做追帧算法的时候在Framebuffer的Colorbuffer上绘制一个点的信息就比较简单。而通常在将获得的场景渲染结果绘制到屏幕上的过程中,会根据VR设备的光学透镜进行图像的反畸变,反畸变算法会将图像进行压缩,所以为了维持凝视白点和场景的相对位置关系,需要计算凝视白点在渲染的Colorbuffer中的UV坐标值。
故具体实施时,首先通过对场景的管理,获得当前视线和场景的最近的交点,从而获得交点的景深信息,然后按照ATW等追帧算法绘制实际的场景到一个Framebuffer中,获得这个Framebuffer的Colorbuffer。
然后根据交点的景深信息与绘制场景的透视投影矩阵,求解获得凝视白点在Colorbuffer中的位置信息,该信息使用UV坐标数值表示。
透视投影矩阵推导如下:
当前相机的位置为:p1(x1,y2,z2),相机的上方单位向量为:up(x2,y2,z2),
相机的瞄向单位向量为aim(x3,y3,z3),记为mcamera,那么相机的变换矩阵可以表达为:
各分量的计算方法如下:
sx=fy*z2+fz*y2
sy=fz*x2+fx*z2
sz=fx*y2+fy*x2
ux=sy*fz-sz*fy
uy=sz*fx-sx*fz
uz=sx*fy-sy*fx
那么相机的变换矩阵中:
m0=sx
m1=ux
m2=-fx
m3=0
m4=sy
m5=uy
m6=-fy
m7=0
m8=sz
m9=uz
m10=-fz
m11=0
m12=m0*x1+m4*y1+m8*z1
m13=m1*x1+m5*y1+m9*z1
m14=m2*x1+m6*y1+m10*z1
m15=m3*x1+m7*y1+m11*z1
透视投影视锥的参数表达为:left,right,bottom,top,near,far;如图3所示。
那么透视投影矩阵可以表达为:
记为mpro,各分量的计算方法如下:
p0=2*near/(right-left)
p1=0
p2=0
p3=0
p4=0
p5=2*near/(top-bottom)
p6=0
p7=0
p8=(right+left)/(right-left)
p9=(top+bottom)/(top-bottom)
p10=(far+near)/(near-far)
p11=-1
p12=0
p13=0
p14=2*far*near*(near-far)
p15=0
凝视白点的UV坐标数值推导如下:假定视线射线和当前的场景存在一个交点(即为凝视白点),齐次坐标表达为p0(x0,y0,z0,w0);
那么经过计算机图形学计算,在最后的标准化设备坐标(NDC)的坐标可以表达为:
pndc=mpro*mcamera*p0
同是可以确定,凝视白点在实际渲染图像中的纹理坐标值tc(u,v):
u=(pndc.x+1.0)/2
v=(pndc.y+1.0)/2
对于VR光学反畸变算法,根据光学的透镜特征,一般采用barrel distortion的算法进行反畸变,典型的此类反畸变的简化公式如下
u'=u*(1+k1*r2+k2*r4+k3*r6........)
v'=v*(1+k1*r2+k2*r4+k3*r6........)
其中k1、k2、k3等参数是VR透镜的光学参数,r是当前tc(u,v)距离反畸变中心的距离,通常使用光学设备检测得到。
通过这个反畸变算法公式,可以计算得到反畸变后凝视白点在最终反畸变网格上的纹理位置tf(u1,v1)。
最后进行反畸变处理:将获得的Colorbuffer根据光学透镜的光学参数进行反畸变处理,由于凝视白点的空间位置信息主要是透过凝视白点在最终渲染的Colorbuffer中的位置得以体现。OpenGL在做光学透镜反畸变处理通常使用若干三角网格来近视表达反畸变的位置信息,假设凝视白点存于一个三角形内部,那么根据三角形线性插值法,可以获得任意点的UV坐标。进而可以获得与凝视白点位置相同的像素值,将这部分的像素设置为一种特定的颜色。最终获得结果如图4所示。
说明:考虑到GPU渲染的性能,当前的移动VR实现反畸变实现主要是通过有限的网格实现,如图5所示。这个网格上的每一个顶点是按照反畸变算法实现的,顶点之间的像素由OpenGL栅格化渲染阶段根据三角形线性插值完成。
通过反畸变算法,我们可以计算任意一点经过光学反畸变后的图像坐标值,并且通过上述步骤的计算,可以得到在没有反畸变的情况下凝视白点的图像坐标位置tc(u,v),并且可以获得最临近的三个坐标点的未反畸变图像位置t1(tu1,tv1),t2(tu2,tv2),t3(tu3,tv3),与这三个点反畸变后的图像位置ft1(ftu1,ftv1),ft2(ftu2,ftv2),ft3(ftu3,ftv3),根据tc到t1、t2、t3的坐标信息,根据三角线性插值原理,可以推算出tc在反畸变网格上的位置result(rx,ry)。
在渲染反畸变网格的opengl vertex shader中,以varying变量vposition记录下网格顶点在反畸变网格中的位置,在OpenGL fragment shader中接收varying变量vposition,当vposition的坐标值距离result在一定的阈值下时,即可以判定这个像素点属于凝视白点所映射的屏幕像素点,这个阈值的范围确定了最后凝视白点在屏幕上图斑的大小。
本文中所描述的具体实施例仅仅是对本发明精神做举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

Claims (5)

1.一种基于虚拟现实应用反畸变网格的空间点映射方法,其特征在于改变凝视白点的绘制时序,在异步时间扭曲线程中绘制凝视白点。
2.根据权利要求1所述的空间点映射方法,其特征在于具体步骤为:
S1、场景绘制;
S2、获得渲染结果Colorbuffer;
S3、根据硬件设备的参数进行追帧算法时间扭曲图形计算;
S4、根据视线和场景的关系在一定的空间位置绘制凝视白点;
S5、将结果输出到屏幕上。
3.根据权利要求1或2所述的空间点映射方法,其特征在于S4中绘制凝视白点的方法具体为:
已知当前的MVP矩阵M1,凝视白点的世界坐标是P;
凝视白点在规范化设备坐标系ndc中表示为:
p1=mp*p
式中,mp为当前P的投影矩阵projection matrix;
根据反畸变算法,推算出p在屏幕上的UV坐标p_screen;
在将图像输出到硬件屏幕上之前,将接近p_screen的屏幕像素值设置成为预定义的颜色;或者,在p_screen的位置绘制一个凝视白点的可视化的图像,这个凝视白点就完成。
4.根据权利要求3所述的空间点映射方法,其特征在于P在屏幕上的UV坐标p_screen的推导公式为:
P_screen=P*(1+k1*r^2+k2*r^4)
其中k1、k2是VR透镜的光学参数,r是p距离反畸变中心的距离。
5.根据权利要求3所述的空间点映射方法,其特征在于在最后的屏幕上确定接近凝视白点距离像素的方法是设定一个阈值dd,d为像素坐标p3到p_screen的距离,判断d和dd的大小关系:若d<dd,则认为像素坐标p3是接近p_screen的屏幕像素值,并设置为预定义的颜色;若d>dd,则不改变该像素坐标p3的颜色。
CN201710536047.3A 2017-07-04 2017-07-04 基于虚拟现实应用反畸变网格的空间点映射方法 Active CN107452045B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710536047.3A CN107452045B (zh) 2017-07-04 2017-07-04 基于虚拟现实应用反畸变网格的空间点映射方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710536047.3A CN107452045B (zh) 2017-07-04 2017-07-04 基于虚拟现实应用反畸变网格的空间点映射方法

Publications (2)

Publication Number Publication Date
CN107452045A true CN107452045A (zh) 2017-12-08
CN107452045B CN107452045B (zh) 2020-09-15

Family

ID=60487705

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710536047.3A Active CN107452045B (zh) 2017-07-04 2017-07-04 基于虚拟现实应用反畸变网格的空间点映射方法

Country Status (1)

Country Link
CN (1) CN107452045B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108267857A (zh) * 2017-12-29 2018-07-10 杭州联络互动信息科技股份有限公司 一种畸变校正实时可视调试的方法、装置及系统
CN108648254A (zh) * 2018-04-27 2018-10-12 中科创达软件股份有限公司 一种图像渲染方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106204418A (zh) * 2016-06-24 2016-12-07 南京睿悦信息技术有限公司 一种虚拟现实移动端中基于矩阵逆运算的图像扭曲方法
CN106462370A (zh) * 2014-04-29 2017-02-22 微软技术许可有限责任公司 基于注视位置的稳定性平面确定

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106462370A (zh) * 2014-04-29 2017-02-22 微软技术许可有限责任公司 基于注视位置的稳定性平面确定
CN106204418A (zh) * 2016-06-24 2016-12-07 南京睿悦信息技术有限公司 一种虚拟现实移动端中基于矩阵逆运算的图像扭曲方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MATT PORTER: "Why the ‘asynchronous time warp’ added to Oculus Rift matters", 《PC GAME》 *
黄德胜: "解决VR眩晕的关键技术综述", 《福建电脑》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108267857A (zh) * 2017-12-29 2018-07-10 杭州联络互动信息科技股份有限公司 一种畸变校正实时可视调试的方法、装置及系统
CN108267857B (zh) * 2017-12-29 2021-01-12 杭州联络互动信息科技股份有限公司 一种畸变校正实时可视调试的方法、装置及系统
CN108648254A (zh) * 2018-04-27 2018-10-12 中科创达软件股份有限公司 一种图像渲染方法及装置
CN108648254B (zh) * 2018-04-27 2022-05-17 中科创达软件股份有限公司 一种图像渲染方法及装置

Also Published As

Publication number Publication date
CN107452045B (zh) 2020-09-15

Similar Documents

Publication Publication Date Title
US10438319B2 (en) Varying effective resolution by screen location in graphics processing by approximating projection of vertices onto curved viewport
JP2020091877A (ja) 複数のレンダーターゲット内でアクティブカラーサンプルカウントを変更することによりスクリーンの位置によって有効解像度を変動させること
CN108090880A (zh) 一种图像的反畸变处理方法以及装置
EP1033682A2 (en) Image processing apparatus and image processing method
CN111275801A (zh) 一种三维画面渲染方法及装置
Turner et al. Phase-aligned foveated rendering for virtual reality headsets
CN102819855A (zh) 二维图像的生成方法及装置
CN107452045A (zh) 基于虚拟现实应用反畸变网格的空间点映射方法
CN105844581A (zh) 一种图像绘制方法、装置及设备
CN106204418B (zh) 一种虚拟现实移动端中基于矩阵逆运算的图像扭曲方法
US20180213215A1 (en) Method and device for displaying a three-dimensional scene on display surface having an arbitrary non-planar shape
CN109461197A (zh) 一种基于球面uv和重投影的云实时绘制优化算法
US6559844B1 (en) Method and apparatus for generating multiple views using a graphics engine
KR20040041083A (ko) 렌더링 방법
CN109816765B (zh) 面向动态场景的纹理实时确定方法、装置、设备和介质
CN106604006B (zh) 一种适用于投影电视的曲面幕布投影方法及系统
CN109949396A (zh) 一种渲染方法、装置、设备和介质
CN106990838B (zh) 一种虚拟现实模式下锁定显示内容的方法及系统
JP2002260003A (ja) 映像表示装置
JP7190780B1 (ja) 画像処理プログラム、画像処理装置、及び画像処理方法
CN113476835B (zh) 一种画面显示的方法及装置
CN113568700B (zh) 显示画面调整方法、装置、计算机设备和存储介质
TWI817335B (zh) 立體影像播放裝置及其立體影像產生方法
CN111625093B (zh) 一种海量数字点云数据在mr眼镜中的动态调度显示方法
KR100922600B1 (ko) 멀티미디어 캐릭터의 외곽선 렌더링 방법 및 장치

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