欢迎来到知嘟嘟! 联系电话:13095918853 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13095918853
知嘟嘟经纪人
收藏
专利号: 2018113709090
申请人: 长春理工大学
专利类型:发明专利
专利状态:已下证
专利领域: 计算;推算;计数
更新日期:2024-02-23
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

1.基于虚拟点光源的复杂真实感三维场景渐进交互式绘制方法,其特征在于,需要在计算机系统中执行计算机绘制线程程序和计算机显示线程程序,具体步骤如下:Step101:通过计算机绘制线程程序在计算机系统的全局共享内存中创建一个命令队列CmdQ,把命令队列CmdQ设置成空队列;通过计算机绘制线程程序在计算机系统的全局共享内存中创建一个计数器Counter,把计数器Counter的值设置成0;

Step102:在计算机绘制线程程序中,根据三维场景模型以及光源LS的参数,使用随机走步法从光源出发跟踪Npath条光线传输路径,创建Mvpl个虚拟点光源A001,在此过程中计算出每个虚拟点光源A001的所在位置坐标POS、所在位置法向量VN、所在位置的表面双向反射分布函数BRDF、光入射方向VI和光通量Φ;把虚拟点光源A001的所在位置坐标POS、所在位置法向量VN、所在位置的表面双向反射分布函数BRDF、光入射方向VI以及光通量Φ与虚拟点光源A001关联在一起;

Step103:在计算机绘制线程程序中,使用k-means聚类技术对步骤Step102中创建的Mvpl个虚拟点光源A001进行聚类,得到Ncls个簇A002,每个簇A002包含若干相似的虚拟点光源A001;在执行k-means聚类操作时,虚拟点光源A001到簇A002的中心的距离计算公式为D=w1Δx+w2Δα,Δx表示虚拟点光源A001的所在位置到簇A002的中心位置的欧氏距离,Δα表示虚拟点光源A001的所在位置法向量VN与簇A002的法向量之间的夹角;

Step104:在计算机绘制线程程序中,根据三维场景模型、光源LS的参数以及视点观察参数,使用光栅化与阴影映射技术绘制三维场景,得到三维场景的可视区域在光源LS的照射下的直接光照图像A003;把直接光照图像A003保存在计算机系统的全局共享内存中;如果全局共享内存中不存在间接光照图像INDIMAG,则在计算机系统的全局共享内存中创建直接光照图像A003的一个副本并重命名为间接光照图像INDIMAG,同时把间接光照图像INDIMAG的每个像素的值更改为0;

Step105:在计算机显示线程程序中,读取全局共享内存中的直接光照图像A003,把直接光照图像A003转换成可以在显示器上显示的三维场景图像画面并显示在显示器上;

Step106-A:在计算机绘制线程程序中,执行如下操作:

Step106-A-1:在计算机绘制线程程序中,判断全局共享内存中的命令队列CmdQ是否为空,如果为空,则转步骤Step106-A-2,否则转步骤Step106-A-3;

Step106-A-2:如果全局共享内存中的计数器Counter的值大于Mcnt,则转步骤Step106-A-4,否则执行以下操作:针对步骤Step103中得到的每个簇A002,按均匀分布从每个簇A002中随机选取一个虚拟点光源A001,共得到Ncls个虚拟点光源A001,用通过随机选取产生的这Ncls个虚拟点光源A001照射三维场景,根据三维场景模型、视点观察参数以及这Ncls个虚拟点光源A001的所在位置坐标POS、所在位置法向量VN、所在位置的表面双向反射分布函数BRDF、光入射方向VI和光通量Φ参数值,使用光栅化与阴影映射技术绘制三维场景,得到三维场景的可视区域在这Ncls个虚拟点光源A001的照射下的间接光照图像B001;令I0表示全局共享内存中的间接光照图像INDIMAG的第row行、第col列像素的值,令I1表示间接光照图像B001的第row行、第col列像素的值,令nct表示计数器Counter的值,把全局共享内存中的间接光照图像INDIMAG的第row行、第col列像素的值更新为I0×nct/(1+nct)+I1/(1+nct),其中row=1,

2,…,Mpix,col=1,2,…,Npix,Mpix表示间接光照图像B001的像素行数,Npix表示间接光照图像B001的像素列数;令计数器Counter的值增加1,即Counter=Counter+1;转步骤Step106-A-4;

Step106-A-3:执行如下步骤:

Step106-A-3-1:从全局共享内存中的命令队列CmdQ的队首取出一个交互控制命令A004,判断交互控制命令A004是否为关闭绘制程序命令,如果是,则转步骤Step107,否则根据交互控制命令A004对三维场景模型和视点观察参数执行变换更新操作;

Step106-A-3-2:如果命令队列CmdQ不为空,转步骤Step106-A-3-1,否则把全局共享内存中的计数器Counter的值设置成0,把全局共享内存中的间接光照图像INDIMAG的所有像素的值赋值为0,转步骤Step102;

Step106-A-4:转步骤Step106-A-1;

Step106-B:在计算机显示线程程序中,执行以下操作:

Step106-B-1:在计算机显示线程程序中,读取全局共享内存中的直接光照图像A003和间接光照图像INDIMAG,把直接光照图像A003与间接光照图像INDIMAG相加在一起的结果转换成可以在显示器上显示的三维场景图像画面并显示在显示器上,接收设计师发出的交互控制命令A004,把交互控制命令A004添加到计算机系统的全局共享内存中的命令队列CmdQ的队尾;

Step106-B-2:转步骤Step106-B-1;

Step107:三维场景绘制结束,终止计算机绘制线程程序和计算机显示线程程序;

从步骤Step101至步骤Step105,计算机绘制线程程序和计算机显示线程程序按照步骤Step101至步骤Step105的顺序先后执行相应操作;计算机绘制线程程序执行步骤Step106-A和计算机显示线程程序执行步骤Step106-B是并行的;计算机绘制线程程序和计算机显示线程程序可以对计算机系统的全局共享内存执行读和写操作,对于共享数据的读取采用操作系统的信号量机制实现互斥。