发明名称 面向AutoCAD和3DS MAX软件的植入式真三维立体渲染方法
摘要 本发明公开了一种面向AutoCAD和3DS MAX软件的真三维立体显示的实现方法:在所述软件采用的3D API调用和显卡显示之间采用植入式的渲染数据拦截技术,对原始的单通道颜色信号和深度信号、三维场景变换矩阵和投影变换矩阵进行捕获;对这些信息进行解析,重构栅格化的三维数据;基于立体视觉原理,自适应地将该场景重新变换到两个不同的视点位置,形成可供立体显示的双目视觉立体像对,驱动显卡对双目立体像对进行立体输出;利用偏振、红绿和闪闭式眼镜等进行真三维立体显示与观测。本发明可以对现有AutoCAD和3DS MAX软件在不改变其程序和操作模式的情况下实现真三维立体化的场景展示。
申请公布号 CN101477701B 申请公布日期 2012.08.15
申请号 CN200910025518.X 申请日期 2009.02.06
申请人 南京师范大学 发明人 闾国年;温永宁;盛业华;吴明光
分类号 G06T15/00(2006.01)I;G09G5/00(2006.01)I 主分类号 G06T15/00(2006.01)I
代理机构 南京知识律师事务所 32207 代理人 樊文红
主权项 面向AutoCAD和3DS MAX软件的植入式真三维立体渲染方法,其特征是,该方法包括以下步骤:步骤(1)针对AutoCAD和3DS MAX使用的3D API OpenGL进行监控与渲染数据拦截:利用API拦截技术,获取三维绘制相关矩阵和三维渲染数据输出,提取实现三维透视变换的投影矩阵、视口宽高,作为三维场景重构的关键参数;利用3D API的特定函数,拦截三维渲染输出,提取显卡帧缓存中的颜色和深度数据,作为三维场景重构的基础;通过代码注入或/和钩子函数技术编写特定的拦截程序,在三维可视化程序的数据加载阶段,将3D API拦截程序加载到三维可视化程序的进程中,从而拦截和监控3D API调用;步骤(2)利用场景变换矩阵和投影变换矩阵重构栅格化的三维数据:通过生成三维渲染输出的投影矩阵和视口宽高,解算出三维渲染关键控制参数以及三维渲染输出的颜色和深度数据,进而解算出每个像素在视空间中的三维坐标以及对应的颜色特性,重构视空间下栅格化的三维场景数据;步骤(3)自适应屏幕分辨率和人的眼基距设定两个不同的视点位置并生成立体像对,具体包括下列两种方法:调用3D API,渲染所述步骤(2)中获得的场景数据,在原始图像作为左视点图像情况下,生成右视点图像;在原始图像作为右视点图像情况下,生成左视点图像;在不保存原始图像情况下,生成左右视点图像,从而实现立体像对生成;或,采用栅格化三维场景数据,构建原始视空间与目标视空间下像素的映射关系,将原始视空间下的像素直接变换到目标视空间下;在原始图像作为左 视点图像情况下,生成右视点图像;在原始图像作为右视点图像情况下,生成左视点图像;在不保存原始图像情况下,生成左右视点图像,从而实现立体像对快速生成;步骤(4)针对不同的立体观察设备进行真三维观测,包括:x.在支持立体显示的设备上,将立体像对分别输出到显卡左右两个通道,进行立体显示;或y.在不支持立体显示的设备上,将立体像对中,一个图像提取红色通道,另一个图像提取绿色和蓝色通道,将提取的通道融合,形成一个互补色的立体图像,并支持红绿眼镜观察;或z.将立体图像或像对输送到其他支持立体显示设备上。
地址 210097 江苏省南京市宁海路122