展会信息港展会大全

3D图形的裁剪算法及硬件实现技术研究
来源:互联网   发布日期:2011-09-07 11:27:50   浏览:8228次  

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

3D图形的裁剪算法及硬件实现技术研究 2009-9-8 作者: 吴思 郭立 郭安泰 来源: 万方数据 关键字: 三维图形 裁剪 现场可编程逻辑阵列 

随着计算机绘图规模的需要,借助辅助硬件资源,来提高图形处理单元(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图形渲染的实时性要求。



赞助本站

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港