涪陵信息港

当前位置:

3D图形的裁剪算法及硬件实现技术研究

2020/02/15 来源:涪陵信息港

导读

3D图形的裁剪算法及硬件实现技术研究3D图形的裁剪算法及硬件实现技术研究作者: 吴思 郭立 郭安泰来源: 万方数据关键字:

3D图形的裁剪算法及硬件实现技术研究

3D图形的裁剪算法及硬件实现技术研究

作者: 吴思 郭立 郭安泰

来源: 万方数据

关键字: 三维图形裁剪现场可编程逻辑阵列

随着计算机绘图规模的需要,借助辅助硬件资源,来提高图形处理单元(GPU)处理速度的需求越来越普遍。文章描述了一种裁剪引擎,它能够处理3D图形中的裁剪、透视除法以及视口映射的功能。硬件实现的难度取决于裁剪算法的复杂程度。我们在Sutherland-Hodgman裁剪算法的基础上提出一种新的裁剪算法,该算法通过去除冗余顶点以提高处理速度,同时利用编码来判断线段可见性的方法使得硬件实现变得很容易。最后,我们在FPGA上实现了这个裁剪引擎并且_能够以3M个三角形/s的速度运行,满足了图形流水中的实时性要求。

4.实验结果和分析

为了对我们的裁剪算法进行评估,首先要保证算法功能上正确的,因此,我们先用C/C++语言对算法进行软件模拟,开发出支持OpenGL·ES 1.1标准的3D图形引擎,然后用FPGA(Xilinx Vertex2P xc2vp30ff-896)验证了算法用Verilog HDL语言实现的RTL代码。下面根据实验结果来讨论算法性能。

4. 1裁剪效果

我们对算法的软件模拟采用定点数据来实现,当所有数据的定点采用15. 16的格式时,发现在某些特殊角度下裁剪后会产生未被渲染的顶点,如图8(b)中左下角的黑点所示,这是由于在计算插值参数值时精度不够引起的,所以我们改用3. 28的格式表示插值参数的值,这样裁剪后并没有发现黑点,如图9所示。

从帧速上看,对于裁减1000个三角形,从不裁到裁3个面,其帧速从32下降到26左右,裁减一个面平均耗时为0. 42ms。当裁3个面时,约占几何阶段总耗时的30%。对所有顶点的处理占用了大部分时间。

通过实验测试,我们发现基于嵌入式平台的的一般3D图形渲染中,场景的平均时间复杂度为每帧10万个三角形,而我们的算法在FPGA上对一个三角形进行裁剪,考虑到一个场景中的大部分三角形都处于可视区域,

综合后用Modelsim进行仿真,仿真波形如图11所示,仿真结果和软件模拟完全一致。

5.结论

本文在Sutherland-Hodgman裁剪算法的基础对其做了改进,用端点编码的方法来对线段是否可见进行判断,并利用去除多余顶点的方法来提高裁剪在FPGA上的处理速度。这些改进使得我们设计的裁剪器在工作频率为47. 618MHz时平均每秒能处理3M个三角形

,达到了嵌入式3D图形渲染的实时性要求。

永州市芝山医院
平山县人民医院预约挂号
贵阳有治疗癫痫病的医院
河南省哪家癫痫病专科医院好
邢台手术治疗牛皮癣
标签

友情链接