下载

0下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 Nvidia CUDA全国程序设计大赛-命题2

Nvidia CUDA全国程序设计大赛-命题2.doc

Nvidia CUDA全国程序设计大赛-命题2

dspduoduo
2018-09-06 0人阅读 举报 0 0 0 暂无简介

简介:本文档为《Nvidia CUDA全国程序设计大赛-命题2doc》,可适用于工程科技领域

NvidiaCUDA全国程序设计大赛命题:光线和三角形求交算法的并行化在光线跟踪或光线投射算法中涉及到大量的光线和三角形面片求交计算具体来说对于光线投射或一遍光线跟踪来说我们需要从视点出发向屏幕每个像素引出一条光线然后计算出这条光线跟物体的交点然后把交点的颜色作为屏幕上对应像素的颜色值这样得到整个三维场景的渲染效果图。显然每根光线跟三角形面片的计算是相互独立的而且某一根光线跟每个三角形之间也是相互独立的。这里存在着大量平行的可能性。问题:利用CUDA计算出每一条光线跟三角形的交点注意有可能其中一些光线跟所有的三角形都不相交如果某根光线跟多个三角形相交则只返回离视点最近的那个交点的坐标。输入:视点位置屏幕坐标点三角形面片集合其中三角形集合的格式类似标准的Wavefront的obj格式这里用更简化的形式来描述即只包含顶点序列和三角形序列。文件格式如下:顶点数x,y,z(即顶点三维坐标值)x,y,z(即顶点三维坐标值)…三角形数vvv(即三角形顶点序号)vvv(即三角形顶点序号)…一些提示:暴力算法不是好算法光线由视点与屏幕坐标点连线构成场景可以利用二叉树划分包围盒等技术来加速某些光线可以按簇来处理参考文献:TimothyJPurcell,IanBuck,WilliamRMark,andPatHanrahan,RayTracingonProgrammableGraphicsHardware,ACMTransactionsonGraphics(),pp,MinShih,YungFengChiu,YingChiehChenandChunFaChang,RealTimeRayTracingwithCUDA,LectureNotesinComputerScience,VolumewwwGPGPUorghttp:wwwnvidiacomobjectcudahomenewhtmlhttp:developernvidiacomobjectnvisionIRThtml注:下面是计算机图形学中整个光线跟踪的伪代码(参考彭群生教授编写的《计算机图形学应用基础》)但本竞赛题只需求出一遍光线与三角形面片的交点即黑体部分。附录:光线跟踪的伪代码main()主函数{for(需要计算颜色的每一像素pixel){确定通过视点V和像素pixel的光线Rdepth=递归深度ratio=当前光线的衰减系数表示无衰减color是经计算后返回的颜色值RayTrace(R,ratio,depth,color)置当前像素pixel的颜色为color}}主函数main()结束RayTrace(R,ratio,depth,color)说明:光线跟踪子函数{if(ratio<THRESHOLD){终止条件置color为黑色return}if(depth>MAXDEPTH){终止条件置color为黑色return}tobecontinued光线R与场景中的所有物体求交。若存在交点找出离R起始点最近的交点Pif(交点不存在){终止条件置color为黑色return}用局部光照明模型计算交点P处的颜色值并将其存入localcolortobecontinuedif(交点P所在的表面为光滑镜面){计算反射光线Rr递归调用!RayTrace(Rr,ks*ratio,depth,reflectedcolor)}if(交点P所在的表面为透明表面){计算透射光线Rt递归调用!RayTrace(Rt,kt*ratio,depth,transmittedcolor)}tobecontinued依照Whitted模型合成最终的颜色值即:color=localcolorks*reflectedcolorkt*transmittedcolorreturn}光线跟踪子函数RayTrace()结束

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

评分:

/3

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利