【技术实现步骤摘要】
基于渲染管线的交互式实时自由立体显示方法
本专利技术涉及一种基于渲染管线的交互式实时自由立体显示方法。
技术介绍
相比于传统的二维平面显示,立体显示能够提供给观看者更接近于真实世界的视觉感受,而自由立体显示技术利用了人眼的视差原理,不通过任何工具就能让左右眼睛从视屏幕上看到两幅具有视差的,有所区别的画面,将它们反射到大脑,人就会产生立体感。立体显示技术摆脱了助视设备的束缚,成为了当前立体显示领域的研究热点。随着立体显示技术的不断发展,已经有多种技术可用于实现立体显示。基于柱状透镜的自由立体显示技术需要从大量视角对同一场景进行绘制,对于渲染速度以及大数据量分析与处理速度有很高的要求。目前世面上的自由立体显示系统往往无法做到根据用户的交互指令,进行实时刷新,采用离线制作好的视频素材;也就是预先处理每帧图像,将选取像素并融合的多帧图像最终合成视频,最终在自由立体显示设备上播放。这样的方案存在操作繁琐,播放内容不能实时更改等局限。
技术实现思路
本专利技术的目的是提供一种基于渲染管线的交互式实时自由立体显示方法,通过将传入的数据进行绘制成像,通过倾斜式柱状透镜自由立体显示设备实现裸眼3D显示效果,基于OpenGL可编程渲染管线开发,实现了实时交互式自由立体显示,根据用户的交互指令对目标数据进行平移、旋转、缩放等操作,并可以做到实时刷新绘制,解决现有技术中存在的操作繁琐,播放内容不能实时更改等局限的问题。本专利技术的技术解决方案是:一种基于渲染管线的交互式实时自由立体显示方法,包括以下步骤,S1、读入需要渲染的模型的顶点数据,利用顶点数据生成网格模型,并利用拉普拉斯平滑 ...
【技术保护点】
1.一种基于渲染管线的交互式实时自由立体显示方法,其特征在于:包括以下步骤,S1、读入需要渲染的模型的顶点数据,利用顶点数据生成网格模型,并利用拉普拉斯平滑算法进行网格简化,得到简化网格模型,传入OpenGL渲染流水线;S2、根据使用场景设置视点个数、虚拟摄像机位,具体为,设置融合图像的视点个数为N、视点间隔角度delta,调用OpenGL API gluLookAt函数和gluPerspective函数,在以原点为中心点,半径为R的弧上根据视点个数N每相隔角度delta摆放N个虚拟摄像机,且使虚拟摄像机阵列以xoz面对称,其中每个虚拟摄像机的光轴为该位置到原点确定的方向向量,虚拟摄像机的法线方向为坐标轴z的正方向,针对每一个虚拟摄像机,使用OpenGL固定管线渲染步骤S1所述简化网格模型,生成单视点渲染场景图;S3、设置渲染窗口分辨率、目标表面材质、光源类型和位置,利用OpenInventor开源库,分别针对每个不同视点的场景,实施场景渲染,具体为,调用OpenGL API,使用glGenBuffers、glBindBuffer和glBufferData三个函数在显存中开辟数据空间P ...
【技术特征摘要】
1.一种基于渲染管线的交互式实时自由立体显示方法,其特征在于:包括以下步骤,S1、读入需要渲染的模型的顶点数据,利用顶点数据生成网格模型,并利用拉普拉斯平滑算法进行网格简化,得到简化网格模型,传入OpenGL渲染流水线;S2、根据使用场景设置视点个数、虚拟摄像机位,具体为,设置融合图像的视点个数为N、视点间隔角度delta,调用OpenGLAPIgluLookAt函数和gluPerspective函数,在以原点为中心点,半径为R的弧上根据视点个数N每相隔角度delta摆放N个虚拟摄像机,且使虚拟摄像机阵列以xoz面对称,其中每个虚拟摄像机的光轴为该位置到原点确定的方向向量,虚拟摄像机的法线方向为坐标轴z的正方向,针对每一个虚拟摄像机,使用OpenGL固定管线渲染步骤S1所述简化网格模型,生成单视点渲染场景图;S3、设置渲染窗口分辨率、目标表面材质、光源类型和位置,利用OpenInventor开源库,分别针对每个不同视点的场景,实施场景渲染,具体为,调用OpenGLAPI,使用glGenBuffers、glBindBuffer和glBufferData三个函数在显存中开辟数据空间PixBufferi即纹理数组,记屏幕横向像素个数为Xw,纵向像素个数为Yw,则其中每块区域所占大小为Xw×Yw×3比特,将步骤S2所述单角度渲染场景图的帧缓冲区中的颜色缓冲区附加到对应的纹理缓冲区对象,调用glFramebufferTexture2D函数将渲染结果以纹理形式保存到显存中,得到单视点场景纹理缓冲;S4、将步骤S3所述不同视点场景纹理缓冲进行融合的像素融合算法具体描述如下:遍历屏幕区域所有像素,根据映射公式从不同视点处的图像中选取像素通道,其中,i/3的商表示像素横坐标,其范围为0至Xw-1;j表示像素的纵坐标,其范围为0至Yw-1;i/3的余数为0、1、2时分别对应像素(i/3,j)的蓝、绿、红通道,X为液晶显示屏上单个柱状透镜宽度下所能覆盖的子像素个数,ɑ为倾斜透镜与竖直方向的夹角弧度,N为S2所述视点个数,计算结果Nk为当前子像素所对应的场景纹理编号;根据Nk从对应视点的渲染场景图中获得像素通道值,完成所有像素遍历后即得到用于输出的融合图像;S5、利用OpenGL可编程渲染管线特性,使用GLSLshader语言,在片元着色器中实现像素融合算法,将步骤S3所述单视点场景纹理缓冲融合生成最终屏幕输出图像,具体为,向片元着色器中传入uniform变量以表示映射公式中的值ɑ和X,根据步骤S4所述映射公式计算出对应坐标处的像素通道值所对应的场景纹理缓冲编号;通过该采样器,调用着色器语言内置采样函数texture2D,由计算出的视点索引值选取对应纹理处的颜色值,融合生成片元处的最终颜色值,从而生成具有裸眼3D效果的每一帧图像;S6、实现用户交互接口,自定义消息回调函数,针对交互时键盘鼠标发出的消息,进行相应的处理,以响应来自用户的交互请求。2.如权利要求1所述的基于渲染管线的交互式实时自由立体显示方法,其特征在于:步骤S1中,采用拉普拉斯平滑算法得到简化网格模型,具体为:S11、初始化网格的邻接结构集M;S12、新建临时点集用来存储集合M中所有点平滑后的位置;S13、对于所有网格中的顶点V,先初始化临时向量为零向量V0,接着取的邻域点集Padj(p),再对所有领域点T,将其位置加到临时向量Vt里,最后将临时向量Vt的位置存入临时点集中;S14、对所有网格中的顶点P,将P的位置修改为临时点集中对应的位置。3.如权利...
【专利技术属性】
技术研发人员:胡轶宁,郑涛,谢理哲,张宇宁,王征,
申请(专利权)人:东南大学,
类型:发明
国别省市:江苏,32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。