[发明专利]一种快速渲染三维场景的方法有效
申请号: | 201710540801.0 | 申请日: | 2017-07-05 |
公开(公告)号: | CN107481307B | 公开(公告)日: | 2023-04-07 |
发明(设计)人: | 吴斌;王勇;李冬;牟元恩;常英贤;焦洋;石鑫磊;张营;周佳;陈剑飞 | 申请(专利权)人: | 国网山东省电力公司泰安供电公司;国网山东省电力公司;国网山东省电力公司曲阜市供电公司 |
主分类号: | G06T15/00 | 分类号: | G06T15/00;G06T15/04;G06T1/20 |
代理公司: | 北京锺维联合知识产权代理有限公司 11579 | 代理人: | 赵中璋 |
地址: | 271021*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 快速 渲染 三维 场景 方法 | ||
1.一种快速渲染三维场景的方法,包括:
步骤S1000,判断三角面片的类型;
步骤S1100,如果为第一三角面片,采用第一渲染流水线进行渲染;
步骤S1200,如果为第二三角面片,采用第二渲染流水线进行渲染,其中,第一渲染流水线与第二渲染流水线是不相同的渲染流水线;
所述步骤S1100进一步包括:
步骤S1110,解析第一三角面片,获得三个顶点的空间坐标V11={x11,y11,z11}、V12={x12,y12,z12}、V13={x13,y13,z13};
步骤S1112,根据所述第一三角面片的三个顶点空间坐标V11、V12、V13,获得三个顶点的屏幕坐标S11={Xp11,Yp11,Zp11}、S12={Xp12,Yp12,Zp12}、S13={Xp13,Yp13,Zp13};其中Xp和Yp表示顶点在屏幕上的像素点的位置,Zp表示该顶点在垂直屏幕方向的深度;
步骤S1114,获得屏幕坐标下,获得第一三角面片的最小外接矩阵M1={Xmin,Ymin,Xmax,Ymax},其中Xmin和Xmax分别为{x11,x12,x13}中的最小值和最大值,Ymin和Ymax分别为{y11,y12,y13}中的最小值和最大值;
步骤S1120,在最小外接矩阵内,以深度扫描块为单位进行扫描,根据三角面片的顶点屏幕坐标,获得深度扫描块的四个角点的深度值{D1,D2,D3,D4},并计算Dmax和Dmin;其中,Dmax为{D1,D2,D3,D4}中的最大值,Dmin为{D1,D2,D3,D4}中的最小值;
步骤S1122,读取深度块缓存中对应与当前深度扫描块的最大深度值Zmax和最小深度值Zmin;深度块缓存为根据深度缓存获得的缓存,所述深度块缓存的分辨率低于所述深度缓存的分辨率;
步骤S1130,如果Dmin=Zmax,整体抛弃该深度扫描块对应的像素点,不再进行第一渲染流水线的后续处理;
步骤S1132,如果DmaxZmin,则计算该深度扫描块的所有像素点的深度值和颜色值,并使用颜色值更新帧缓存,使用深度值更新深度缓存和深度块缓存;
步骤S1134,如果DminZmax,且Dmax=Zmin,则计算该深度扫描块的所有像素点的深度值和颜色值,进行深度测试,通过深度测试的像素点的颜色值被用于更新帧缓存,深度值被用于更新深度缓存和深度块缓存;没有通过深度测试的像素点被抛弃,不再进行第一渲染流水线的后续处理。
2.根据权利要求1所述的方法,其特征在于,所述深度扫描块为正方形扫描块,正方形的边长为N个像素,N为整数。
3.根据权利要求2所述的方法,其特征在于,N为3或4。
4.根据权利要求2所述的方法,其特征在于,所述深度扫描块的分辨率为深度缓存的1/N*N。
5.根据权利要求2所述的方法,其特征在于,所述第二渲染流水线中提供了隐藏页;所述隐藏页为与深度缓存具有相同分辨率的缓存,隐藏页中任一位置(i,j)处的值包括Zijmax和Zijmin,其中Zijmax和Zijmin分别为深度缓存内的以{(i,j),(i+W-1,j),(i,j+H-1),(i+W-1,j+H-1)}为顶点的矩形内所有深度值的最大值和最小值;W和H为整数。
6.根据权利要求5所述的方法,其中W=H=N。
7.根据权利要求5所述的方法,其特征在于,所述步骤S1200进一步包括:
步骤S1210,解析第二三角面片,获得三个顶点的空间坐标V21={x21,y21,z21}、V12={x22,y22,z22}、V13={x23,y23,z23};
步骤S1212,根据三个顶点空间坐标V21、V22、V23,获得三个顶点的屏幕坐标S21={Xp21,Yp21,Zp21}、S12={Xp22,Yp22,Zp22}、S23={Xp23,Yp23,Zp23};其中Xp和Yp表示顶点在屏幕上的像素点的位置,Zp表示该顶点在垂直屏幕方向的深度;
步骤S1214,获得屏幕坐标下,获得第二三角面片的最小外接矩阵M2={Xmin,Ymin,Xmax,Ymax},其中Xmin和Xmax分别为{x21,x22,x23}中的最小值和最大值,Ymin和Ymax分别为{y21,y22,y23}中的最小值和最大值;
步骤S1216,如果Xmax-Xmin=W,而且Ymax-Ymin=H,那么执行步骤S1220;否则计算第二三角面片的所有像素点的深度值和颜色值,进行深度测试,通过深度测试的像素点的颜色值被用于更新帧缓存,深度值被用于更新隐藏页和深度缓存;没有通过深度测试的像素点被抛弃,不再进行第二渲染流水线的后续处理;
步骤S1220,获得第二三角面片的最大深度值Dmax和最小深度值Dmin,其中Dmax为{Zp21,Zp22,Zp23}中的最大值,Dmin为{Zp21,Zp22,Zp23}中的最小值;
步骤S1222,根据{Xmin,Ymin}获得隐藏页的最大值Zmax和最小值Zmin;
步骤S1230,如果Dmin=Zmax,则整体抛弃该深度扫描块对应的像素点,不再进行第二渲染流水线的后续处理;
步骤S1232,如果DmaxZmin,则计算第二三角面片的所有像素点的深度值和颜色值,并使用颜色值更新帧缓存,使用深度值更新深度缓存和隐藏页;
步骤S1234,如果DminZmax,且Dmax=Zmin,则计算第二三角面片的所有像素点的深度值和颜色值,进行深度测试,通过深度测试的像素点的颜色值被用于更新帧缓存,深度值被用于更新隐藏页和深度缓存;没有通过深度测试的像素点被抛弃,不再进行第二渲染流水线的后续处理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国网山东省电力公司泰安供电公司;国网山东省电力公司;国网山东省电力公司曲阜市供电公司,未经国网山东省电力公司泰安供电公司;国网山东省电力公司;国网山东省电力公司曲阜市供电公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710540801.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种三维交互的方法
- 下一篇:一种汽车车漆计算机化表现的实现方法