先说24点来由,再说出好处,然后说怎么玩...
可以考虑从概率方面来写,比如用3和其他的什么数字算的24,各自是怎么排列组合的,概率是多少,把里面的规律总结出来你可以玩玩数独,也就是九宫格,也可以从这方面来研究
计算机大专 毕业 要写一份论文才能够毕业,下面是我为大家整理的计算机大专毕业论文,希望对大家有帮助。 校园网络安全问题分析及对策 摘要:随着社会的不断发展,时代的更替,网络已经逐渐成为人们生活最必不可少的一部分。信息时代的到来,网络已走进千家万户,随时随地在人们生活中发挥着不可替代的作用。人们在享受网络带给我们的便利的同时,也遭受着网络信息安全的威胁。校园作为学生学习的场所,可以借助网络更加方便、有效地向学生传播知识,同时校园网络安全也需要引起我们高度重视。 关键词:校园网络;安全;对策 0前言 学生是整个国家和社会的未来,为他们提供良好的学习生活环境是每个社会成员义不容辞的责任。近年来,随着数字化教学在校园中的进一步普及,学生开始对手机等网络设备的使用。校园网络在学生生活中的使用越来越多,涉及也越来越广泛,因此校园网络存在的问题更是要引起社会的重视,并积极采取 措施 进行解决。 1校园网络存在的的安全隐患 系统软硬件的安全漏洞 目前,大多数学校都采用Windows作为其电脑的主要系统,而该系统也是在人们生活中应用最广泛的系统,它自带服务器,TCP/IP协议、防火墙等。由于它应用广泛,人们对该系统又比较熟悉,使得这种系统极其容易遭受外部网络攻击,造成信息泄露或资源丢失。 网络监管不到位 计算机科学作为新兴的 教育 学科,随着时代的潮流,越来越受到学生们的欢迎。而学生在对这门科学进行学习时,往往充满好奇并且跃跃欲试。他们首选的尝试对象通常都是自己所在的校园网络平台。由于学生的恶意干扰,使学校的网关受到影响,甚至造成教师授课时网络异常、信息丢失等。同时,教师网络安全意识薄弱,对于网络异常信息丢失不以为意,非计算机专业老师更是无法判别信息问题出现的原因,仅靠对计算机硬件设施的重启来解决问题,认为是计算机硬件本身出现问题造成的,使得对于学生网络恶意攻击监管懈怠,没有监管力度。 外界人员恶意攻击截取学校资源 大多数高等学校既是教书育人培养人才的摇篮,也是一座科学研究所。有些外界人员会为获取利益而恶意攻击学校网络,偷取校园资源,甚至造成校园知识系统的损坏。 恶意病毒入侵 现如今网络时代,信息交换不可避免,而网络信息中有时会存在恶意的病毒,像熊猫烧香、木马、超级病毒等,也许是个网络信息文件,也许是源程序代码,也有可能隐藏在U盘当中。所以,在学生获取网络资源时,极有可能不知不觉就落入病毒的陷阱。 校园网络的可用性问题 校园网络是供在校师生使用的局域性网络,是一种有限资源。而学校通常会出现大量学生同时在线的问题,比如,学校的固定时段选课、学生固定时段上网络课程等,对校园网的拓扑复杂度要求极高,由此也产生了学生无法进入系统及系统崩坏的问题。 2校园网络安全问题的成因 学校自己的网络安全系统不完善 虽然学校应用自己的局域网与外界无线网相互隔离,但是信息传递是不可避免的,学校依然需要使用外界网络进行信息沟通,而不是一座独立的信息孤岛。以我院为例,我们的办公网络采用中国石油的局域网,大大加强了我校的信息安全程度。同时,我们也利用 无线网络 加强学校的信息使用,无线网络的威胁主要存在于与局域网在同一台计算机上使用,使外界危害信息安全因素有缝可钻,无法达到信息绝对的安全。 师生缺乏网络安全意识 在校园中学生攻击校园网事件时有发生,更有学生在校际间相互攻击网络进行恶性比赛,造成了学校网络问题屡有发生。而老师对于学生行为无法进行准确追责,造成教育监管漏洞。 外界影响难以避免 有些外界人员对于自身利益的追求跨越道德底线,恶意盗取学校教育研究资源,使得资源被外泄,甚至威胁国家安全。同时,病毒对学校网络和计算机硬件恶意攻击的事件时有发生,学生为获取信息资源打开链接或信息文件时,携带的病毒便在该计算机上扩散,甚至污染移动硬盘造成更大的危害。而这些无法避免的危害在校园网络肆意蔓延,严重威胁了校园的网络安全。 校园网络拓扑程度低 由于路由器这类共享设备的局域限制,使得网络接入存在无法全覆盖的的问题。学校采用与外界相同的WIFI设备是无法满足成千上万师生对于网络的使用要求的。 3解决校园网络安全问题的对策 改善学校的软硬件系统 学校可以在使用Windows的基础上,对该系统进行改善调整,提高服务器的质量及地址的准入程度,加强硬件的漏洞查杀功能,同时有效控制外界网络对校园局域网的影响。例如我校采取所有中国石油局域网接口进行管制,通过开通流程及危害告知,并且获取承诺后再开放使用,有效地利用学校的内部监管,提高教育信息的安全度。 加强校园内部网络监管 教师除需在课上对学生进行网络 安全教育 外,更要加强网站的实际监管。可以通过利用校园网学生账号登录系统对学生IP地址进行追踪,并联合各大学校安装校园账号恶意攻击监测系统,对学生攻击学校网站进行相应的处罚,以达到有效的实时监管的目的。此外,培养学生自觉意识也是极为重要。只有学生认识到自己的行为已经严重威胁到学校的网络安全时,他们才会自觉起来保护网络安全。同时,学校也可以为学生提供更好地满足好奇心的方式,学校可开展计算机技能大赛,一方同学为守方建立网络安全系统和小型局域模拟网络,另一方同学作为攻方对守方同学系统进行破译并进攻模拟网站,通过设置时限来判定输赢。这样不仅促进了学生学习计算机的兴趣,同时也让学生对学习知识的掌握更加扎实,培养出越来越多的高级人才。 防范外界人员的恶意攻击 对于外界人员的恶意盗取和破坏,目前无法进行有效的处理。由于外界人员通常无法确定其IP地址的准确来源,使得无法对其精准定位。因此,目前较有效的防范措施有:储备重要的科研资源的计算机不接入网络,随时查看在线资源被浏览的陌生IP地址和加强加密系统的复杂度等。当然,目前也有在研究不明IP的定位方式,在这里也希望该成果早日投入使用。 防止恶意病毒传染 学校应加强学生安全意识,不随意进入网络上的非法网站,不浏览有不安全警告的不正常网页,不下载形态异常的网络信息文件等。同时,尽量避免将移动硬盘插入网吧等网页浏览较复杂公用场所的计算机,以最大限度地避免病毒对计算机的破坏。当然,该问题的根源主要在于病毒的存在和恶意的传播,所以学校也应该加强对计算机类专业学生的思想教育,使他们认识并了解病毒的危害,提高学生的素质品格,让他们成为有理想、有抱负的积极青年。 提高校园局域网的接入量 校园是学生的聚集地,大量的学生在校园里生活使得校园的网络使用量相较于其他地方更多。我们不能用评价一般网络接入情况来看待校园网。校园网的集中使用相当于几千甚至上万个家庭同时接入一个路由器。因此,学校应当研究开发属于自己的局域网络,以最大可能提高校园局域网的拓扑程度,尽量满足学生对于网络使用的要求。 4结束语 这个时代是互联网的时代,人们的生活每时每刻都离不开网络。在大街上我们通常可以看见拿着手机百度地图查找位置的人,坐在轻轨上,我们可以见到用网络读书、游戏的人,在图书馆里,我们可以看到在电脑前查资料的人。网络占据了我们大部分的时间和生活,00后的孩子们甚至不知道没有网络的世界应该怎样运转。校园作为学生学习的地方更是需要网络的使用,并且未来还会有更多的网络科技运用到校园当中去。校园网络安全问题也是现如今的重要问题,因此,发现、分析解决校园网络安全问题对于我们每个人来说都是一种社会责任。希望人们做道德修养的好人,不要为个人利益而违背良知做盗取学校资源的危害分子。同时,也希望人们共同抵制病毒的产生与传播,维护我们公用的网络,让它时刻保持清洁和安全。 参考文献: [1]阮海斌.信息化背景下的校园网络安全问题与对策分析[J].网络安全技术与应用,2017. [2]林奕水,邬燕萍.基于网络环境下校园网络安全问题的分析与对策探讨[J].网络安全技术与应用,2014. [3]关启云.校园网络安全问题分析及对策探讨[J].网络安全技术与应用,2013. 微课在软件技术专业课程改革的应用 【摘要】在信息化的今天,手机等移动客户端已经成为了主要的信息传播的媒介。在这种情况下,软件技术专业这类走在科技前沿的专业一定要紧跟时代的步伐,利用各种信息媒介教学,微课就是其中的主要一种。 【关键词】微课教学;软件设计;课程改革 减轻教师负担,保证学生学习质量,是现在人们所要思考的。本文就如何在高校软件技术专业应用微课,进行研究。 1.微课的优点 说到微课的优点就不得不提一下传统课程教育的缺点。传统的教育要求学生全神贯注,必须一堂课仔细听,否则就可能容易忽视其中的一些重要考点;再者,传统教育的时间安排十分规规矩矩,有时候可能有一节课因为有事情无法上课而旷课,回来不仅不能补课,而且还有可能使学生跟不上教师进程;还有,如果学生某一节或某几节课没有记好,传统教育无法提供最好的复习,即重新听一遍老师所讲的课;最后,不得不说,好老师总是有那么几个,而学校又不能把大部分学生都交给这几个好老师教育。以上这些都是传统课堂教育的缺点,而微课的出现则改变了这些状况:微课可以一节课可以重复多遍听,随时听随时看,时间上更加自由,微课还能很好地把优秀的教学资源集中在一起,让学生们都能自由学习,提高优秀教育资源的利用效率。 2.微课的设计与开发 计算机软件技术专业在设计微课方面有天然的优势,一般的转件技术专业的老师都能熟练地使用计算机并接触过各种视屏制作类软件,这些都有助于计算机软件技术专业的老师设计并开发微课。微课开发首先要选择教育内容,对该课程所要学习的重要概念和教学重点难点应做好分析,并找到生动有趣的 方法 用多媒体的方式将他们表现出来。再者,软件技术专业微课和课堂讲课还是有很大的区别的,课堂讲课可能按课本教材一节课一节课地讲,而微课没有了每节课时间的限制,就可以一个知识点一个知识点的讲解,所以微课的设计与开发一定要注意微课的这个特点,进行知识点讲解,并要与其他的知识点进行联系教育,这样就能让学生全面掌握所要学习的知识。在确定好所要讲的内容之后,就要制作ppt、视频、文档等各种讲解资料,然后拍摄录制,再进行后期组合。在拍摄视频时,教师一定要注意语音语速,保证视频能够让学生听清关于知识的讲解。而且教师一定要采取幽默有趣的方式,避免让学生在观看视频时产生困倦。再者,后期制作是微课开发中重要的一环,在微课的后期制作中,要有许多任务要做。包括各种视屏,音频的剪辑和合成,以及制作字幕,并使各种多媒体的动画等形式和教师所讲结合在一起。这些都是十分重要的,就比如说,音频和视频的剪辑合成,如视频和音频不匹配,这虽然可能让人感到是个小错误,但是可能会让学生对微课感到不适,转移他们的关注点,这样就会降低学生的学习效率。这样的错误还包括字幕跟视频不匹配,都会影响到学生们的学习效率。所以,一定要做到完美没有漏洞,才能保证学生们的学习效率。还有多媒体的应用也是十分重要的,多媒体可以帮助学生增加学习兴趣,学习的时候集中注意力。所以,一定要让多媒体和教师讲课两者集合起来,利用计算机软件专业的长处,制作优秀的多媒体形式的微课,保证学生们的学习质量。 3.微课的应用 微课制作好之后,一定要应用在教育教学里。很多学生可能认为认识不到微课的好处,所以对微课有应付的心态,有的学生可能就一直放映着,自己做别的事情,来追赶进度,这是十分错误的应用方法。所以,微课在应用时,可用以下方法来使学生积极观看。设置进度,学生观看微课时,给学生制定好微课的进度,保证学生在一段时间内一定要看完所规定的视频。保证学生看完每个微课视频,微课在运行上一定要让学生看完每个视频之后,才能读取当前进度,否则就按学生没有看完处理,并且学生必须在看完一个教学微课后,才能观看一下微课。设置中间问题,有的学生打开视频之后就不管不顾了,让视频自己播放,来追赶进度,这样也不行,一定要在微课之间设置几个问题,学生在回答问题之后视频才能接着进行,这样不仅可以防止学生刷课,还能通过几个问题,巩固盖微课老师所讲的知识。这些都应该有效地利用到微课的应用中。再者,对于难点考点一定要让学生多学几遍,这样就能保证学生理解通透这些难点考点,而不是跟其他知识一样,简简单单地看了一遍就通过了。只有这样好好的应用微课,微课的优点才能显示出来。 总结 微课的优点在前面已经讲的很详细了,这些传统教育的不足之处,在科技日益发达的今天必须要好好的应用,尤其是软件技术专业这种比价前卫的专业。软件技术用微课的方式教学,有助于学生在学习之后,直接用计算机轻而易举地进行试验编程。这样创新的教学方式,也有利于软件技术专业的学生培养创新能力,增加自主学习的能力。所以高校一定要在软件技术教学中应用好微课。 参考文献: [1]__文,陈勇.MATLAB在高职院校软件技术专业数学课程中的应用研究[J].青岛职业技术学院学报,2015,(2):55-58. [2]吴琼.开放大学基层教学点微课资源应用现状调查与研究[J].南京广播电视大学学报,2015,(4):24-29. [3]梁伟焱.基于微课资源应用的翻转课堂在实验教学中的应用研究——以《现代教育技术》课程为例[J].教育界,2016,(21):181-182. 计算机软件技术中分层技术探析 摘要:随着现在计算机科技的发展,计算机在现实生活中的应用也越来越广泛,计算机软件在计算机当中的运用也越来越普遍。我们对计算机软件的开发和利用也十分的普遍和广泛,但是现有的计算机软件已经满足不了我们在生活当中的需求,所以我们要开发更高质量的计算机软件,所以计算机软件的开发已经由单项向着多项业务的方向发展,接下来我们就简单的介绍一下分层技术在计算机软件技术当中的价值。 关键词:分层技术;计算机软件;分层技术的优点 随着我国对计算机的广泛应用以及对计算机软件的开发,现在的计算机软件的功能已经远远满足不了我们的需求了,所以计算机软件已经由二层向着多层的方向发展,但是在这个发展的过程当中,计算机软件当中的中间件技术是一个至关重要的一个环节,计算机软件的分层技术是一项新的技术,但是随着我们的研究已经对这项技术有了一定的掌握,现在分层技术与计算机大数据以及计算机软件 操作系统 一起组成了计算机的基本软件,现在的计算机软件的多层技术已经在我们的生活以及生产当中得到了广泛的应用,使用计算机软件的多层技术,在一定的程度上可以加大计算机的适应性以及灵活性,由此可见,计算机软件的分层技术对我们的生活有很大的作用。 1计算机分层软件以及优点 计算机软件的开发是为了开发更高质量的计算机软件,使计算机软件的功能更加新颖和便捷,更好地服务于我们在实际生活当中的生产活动,开发软件的时候会有一个构件会,构件会是为了保证开发的软件质量,构件可以作为单独的进行使用和组合。构件分为高级构件和低级构件,高级构件一般都是地域构件,低级的构件主要用于大数据库的处理,因此低级构件常婵被认为成是用以来公共服务的软件,但是高级构件可以在低级构件当中使用,其实计算机软件的开发是一个综合的过程,因为每一个计算机构件都是相互联系和依赖的。如果开发一款新的软件则会先在已经开发利用的旧软件当中使用,实现新旧够贱的搭建使用,这样也能够有效地减少计算机软件开发所消耗的时间,同时也能够更好地保证新开发的计算机软件的质量。 分层软件的优点。随着计算机分层软件的开发和利用,多层计算机软件可以使计算机软件的开发研究逐渐变的抽象化,这样也可以让计算机软件的功能更加的优化,将这项技术应用到实际当中也可以拓展计算机的功能,并且计算机软件系统的功能受到外界因素的影响也会减少,从而使计算机更好地运行。现在通过对分层技术的运用,我们对计算机的对接口的形式也没有了特别的要求,只要对接口达到了一定的标准,就可以进行对接。这样可以更好地实现与计算机的对接。 2计算机当中的多层技术 随着我们对计算机软件的开发和研究,我们对计算机软件的研究已经进入到了更高的层次,计算机软件的开发由现在的二层、三层、四层的方向进行发展,并且多层技术已经在生产生活当中得到了非常广泛的应用,并且也得到了不断地完善与改进,不同层次的计算机软件有着不同的功能,下面我们来简单的介绍一下。 计算机软件的两层结构技术和三层结构技术 这个两层技术主要是由大数据库以及客户端来组成。计算机的用户界面主要是由计算机使用的客户来提供的,并且客户端还对其进行逻辑问题方面的处理,随后将指示客户来进行大数据的接受和查询,最后在根据查询到的结果反馈给客户。这样的方式在实际当中,如果客户端的数量不断地加大,则不能够和客户端进行互动,这是软件开发当中所欠缺的地方,于此同时客户在相互交流的过程当中也是存在有很大的风险的,这种两层的计算机软件已经不能够满足我们的需求,所以我们开始研究开发更高质量的计算机软件,因此三层技术也就随之开发了出来,新开发出来的三层计算机软件使在二层的技术上经过研究开发出来的,三层技术可以实现人机互动,并且还可以更好地优化数据,有效地减低了用户在使用过程当中的风险,可以更好地为客户端提供帮助。计算机的三层技术主要包括借口层、数据层、业务流程这三部分,比如日立的ERP系统软件体系就利用了三层技术。三层技术与两层技术相比较有很多的优点,因为三层技术的安全性更高、较容易进行维护、可以扩展并且可以减少网络的负载等一系列功能,但是在我们实际应用过程当中不要盲目的去使用三层技术,要根据实际的情况出发。 计算机软件四层机构技术 随着人们生产以及生活的需要,我们对计算机软件的技术要求也越来越高,同时睡着计算机网络的发展,计算机的应用程序也变得越来越复杂,为了把复杂的程序简单化,因此,我们在原有的三层技术上进行了研究,从而开发出来了计算机四层技术。计算机软件四层技术是在原来的数据层和业务流程上加了一个封装层,封装层在运行当中可以根据不同用户的需要提供不同的逻辑和数据处理方法,可以提高对大数据进行分析同时也提高了计算机的运行效率,更好地满足客户们的需要。 计算机软件当中的中间件 中间件是计算机软件开发到一定的程度时才产生的一种软件技术,也就是大数据的处理技术,利用中间件可以实现网络互通以及互联甚至可以实现网络资源的共享,并且可以在很大程度上减少软件开发所利用的时间。 结语 要想满足客户在计算机方面的需要,我们应该不断加强技术上的研究,开发出更好地计算机软件,不断更新计算机技术满足客户需求。 参考文献: [1]万波,邱晨涵.分层技术在计算机软件开发中的应用[J].电脑知识与技术,2016,(25):200-201. [2]李俊林.计算机软件技术中分层技术、插件技术的应用价值分析[J].电脑迷,2016,(09):105. [3]李晓健.计算机软件开发中分层技术的应用分析[J].通信电源技术,2016,(02):207-208. [4]洪新军.插件技术、分层技术应用于计算机软件技术中的价值探讨[J].电脑编程技巧与维护,2016,(02):10-12. 相关 文章 : 1. 5000字计算机毕业论文 2. 最新大专毕业论文开题报告范文 3. 大专计算机信息管理毕业论文 4. 计算机专业大学生求职信范文 5. 大学生计算机网络实习心得体会
GPU光线跟踪算法加速结构研究摘要:基于GPU的光线跟踪算法是当前图形学研究的一个热点,也是将来用于广告、电影、游戏等娱乐产业的关键技术。本文论述了如何对基于GPU的光线跟踪算法进行实现,以及利用各种加速结构,加速算法实现,提高算法执行效率,并对各种加速结构的效果进行了比较研究。关键词:GPGPU 光线跟踪 BVH KD-Tree1.引言近年来,CPU无论在运算能力,还是在可编程性上都得到了大幅的提高,GPU已经在需要大量运算的密集运算领域发挥了举足轻重的作用。各种基于CPU的密集运算被移植到GPU上,以利用GPU巨大的运算能力,加速整个算法的运算过程。光线跟踪算法是生成真实感图形的一种非常重要的方法,在电影、游戏、广告等产业,获得广泛的应用,而光线跟踪算法也是典型的密集运算算法,利用原始的基于CPU的光线跟踪渲染一幅图片是非常耗时的操作。因此,如果能够将CPU上的光线跟踪算法,映射到CPU上,加速光线跟踪算法的执行时间,将会带来巨大的经济效益。因此,基于CPU的光线跟踪算法已成为国内外科研人员的研究热点。2.基于GPU的光线跟踪 相关工作当前,主要由两种方法利用CPU来加速光线跟踪算法。第一种是Carr等人提出来的,将CPU转换为一个蛮力的执行光线一三角形求交的计算器,而将任何的光线生成以及着色过程在CPU上完成。这就需要CPU依然执行绝大部分的渲染工作。C arr等人指出,在ATI Radeon 8500上,每秒最快能够执行1亿2千万次的光线一三角形求交。同时,作者也指出,由于GPU的单精度浮点的限制,图片上依然存在一些不太真实的地方。第二种方法由Purcell等人提出的,改种方法将整个光线跟踪器都移植到CPU上进行实现。从光线的产生,加速结构的遍历,到最后的着色过程都在GPU上执行。此后,有很多相同的项目都是基于Purcell的模型上进行的。 GPU上的光线跟踪算法的映射方式将传统的CPU上执行的光线跟踪算法,映射成为一个GPU协助的,或者基于GPU的光线跟踪器有众多方法。下面重点介绍Purcell提出的映射模型,以及在本文的实现中提出的一个基于CPU的Whitted模型的光线跟踪器。该光线跟踪器的布局如图所示:在Purcell的论文中,它将光线一三角形求交,以及遍历过程分离成两个独立的遍历内核和求交内核。本文的实现中,也按照上述模型图,将光线跟踪算法分解成光线生成,光线一三角形求交,着色这三个步骤。在对光线进行跟踪之前,需要生成从视点指向屏幕的原始光线( primary ray)。在一个GPU上,能够使用光栅器的插值的能力,在一个单一的内核调用中,产生所有的原始光线。给定观察矩形(被采样用于产生图片的投影平面的一部分)的四个角,以及视点,首先计算出这个视锥体的四条边线。如果让光栅器在这4条光线之间,按照512×512规格,在这四条光线之间按照方向进行插值,最终就可以获得能够产生一幅512×512图片(一个像素一个采样点)的所有原始光线的方向。同时能够将这些方向存储在一个纹理里,并把它作为求交内核的输入。所有的原始光线具有相同的起始点,但是仍然把它存储在一个同方向纹理具有相同维度的纹理内。因为当生成阴影光线或者反射光线的时候,光线的原点会发生改变。求交内核把光线的原点,方向,以及场景的描述作为输入数据。在内核被调用数次之后,我们对于每一个像素输出一个击中记录。如果一条光线击中了场景中的某个三角形,返回击中点的3个重心坐标,以及相关的被击中的三角形。此外,还将输出被发现的交点沿光线的距离,以及被击中三角形的材质。这就需要使用5个浮点数值组成一个击中记录。纹理只能够支持4个颜色通道( RCBA),所以,如果能把击中记录裁减到4个值,那么将是非常有益的。观察发现,只需要3个重心坐标的两个,因为在三角形内部,它们相加的和总是1。这就使得在一个单独的RGBA纹理中存储交点记录是可行的,并且它的维度同其它两个光线纹理的维度相同。Moller和Trumbore提出了一个高效的光线一三角形求交算法,使用这个算法,并利用CPU在向量计算上的优势来进行求交计算。下面列出了求交的代码,这个代码也展示了如何利用向量指令来提高效率。当所有的原始光线都已经计算出了相交的状态的时候,就能够查询着色过程所需要的表面法线和材质的信息。每一个击中记录都存储了一个指向材质纹理的索引,这个材质纹理包含了三角形的法线,材质颜色以及类型。三个顶点的法线根据击中记录的中心坐标进行了插值。最终的颜色能够按(N-L)C进行计算,此处Ⅳ是法线,L是光源的方向,G是三角形的颜色。现在根据击中的三角形所具有的材质的类型(漫反射材质,或者镜面反射材质),需要产生二次光线,以此来计算阴影和反射。1)如果一条光线射出场景之外,像素就被赋予全局的背景颜色。2)如果一条光线击中了一个漫反射材质表面,就发射一条阴影射线( shdow ray)。这些光线的起始点在击中点,方向为从击中点指向光源。3)如果一条光线击中了一个镜面反射材质表面。就发射一条镜面反射光线。镜面发射光线的起始点也在击中点,但是它的方向是在击中点处关于入射光线和插值后的法线对称的方向。一个真正的Whitted类型的光线跟踪器也支持透明材质,从而能够产生折射光线。但由于主要是研究加速结构,所以在本文的实现中,没有考虑折射光线。4)如果阴影光线击中了某个几何体,这就说明在光源和击中点之间,存在某个几何体,所以这个像素就应该是黑色(处于阴影中)。当跟踪阴影光线的时候,不关心最近的那个击中点,更加关心的是是否存在这样的击中点。因此,当有一个交点被发现,就可以停止整个求交过程,从而加速算法的处理过程。在本文的实现中,以相同的方式跟踪阴影光线和反射光线,因此,就没有使用到这个优化策略。已经对每一个像素产生了正确二次光线,如果需要,就能够执行另外一趟遍历/求交过程,对上述的二次光线进行跟踪。每一次调用着色程序就能够对每一个像素返回一个颜色值和一条新的光线。着色内核也可以将前一次着色程序的输出当作本次着色程序的输入。这就使得能够在跟踪连续的光线的时候合并这些连续的镜面反射的颜色。同Carr等人的程序不同,本文所采用的程序不存在浮点精度太低的问题,因为Ceforce 7300在整个管线中支持真正的32位浮点操作。3.加速结构的实现和比较均匀栅格均匀栅格是第一个在GPU上实现的加速结构。Purcell给出了很多选择均匀栅格作为加速结构的理由,但是Purcell没有详细的说明为什么均匀网格对于硬件实现而言比其它的加速结构要更加的简单。当在探讨了均匀栅格的一些主要特性的时候,更加清晰的知道了均匀栅格为什么会成为一个好的GPU机速结构。首先,只用使用简单的算术运算,就能够对于每个体素的遍历在常量时间能被定位和存取。这就消除了对树的遍历的需要,以及重复的纹理查找工作,而纹理查找是相当耗时的。其次,体素的遍历是通过递增算术运算来完成的。这就消除了对堆栈的需要,使得我们能够从光线的起始点开始,以距离递增的顺序访问体素成为可能。再其次,由于对于体素的访问是沿着光线,以距离递增的方式遍历的,所以,一旦在一个被访问的体素中报道发现有一个交点,就可以停止这条光线对体素的遍历过程,从而提高整个遍历过程的速度。最后,用于遍历的代码非常适合用向量编写,而向量形式的编码风格又非常适合GPU的指令集。然而,均匀栅格的缺点就是由于它是空间细分结构的一种特殊情况,多个体素可能包含相同三角形的多个引用。由于无法使用mailbox技术,这就意味着需要对于相同的光线和三角形之间进行不止一次的相交测试。 KD-tree最近,Havran等人对基于CPU的光线跟踪算法的加速结构进行了比较,得出的结论是对于众多不同类型的测试场景,平均而言,KD-tree是最快的。所以,有必要考察一下对于基于KD-tree的GPU光线跟踪算法,是否也会有相似的结论。就像均匀栅格一样,KD-tree也是一种空间细分结构。同均匀网格不同的是,KD-tree利用一个二叉树将场景表示成一个层次结构。在二叉树中,我们将内部节点和叶子节点区分开。叶子节点用来表示体素和与之相关的保存在该体素内的三角形的引用。一个内部节点用来表示空间区域的某个部分。所以,内部节点包含一个分裂面的两个子树的引用,而叶子节点只包含一个三角形列表。KD-tree的创建过程从上而下,根据一个评价函数,通过放置一个分离平面,递归的将场景分离成两个体素。我们能够以递归的方式遍历KD-tree,但是由于GPU没有堆栈结构,所以无法应用递归的策略。取而代之的是,我们能够通过记住我们沿着光线前进了多远来向上或者向下遍历树。这种策略消除了需要堆栈的限制,使得用CPU来完成对KD-tree结构的遍历成为可能。当使用GPU对KD-tree进行遍历的时候,KD-tree像均匀栅格那样被表示成一个纹理的集合。这就意味着有一个保存树数据的纹理,一个保存三角形列表的纹理,和一个保存实际的三角形数据的纹理。GPU的遍历首先调用一个初始化内核,然后按照需要,多次调用合并后的遍历和求交内核。 包围体层次(BVH)给定一些随机的光线,通过计算遍历包围体层次的平均花费,就可以测量出该包围体层次的质量。迄今为止,还没有构建最优的包围体层次的算法,也就是说,如何准确的测量一个包围体层次的平均遍历时间还不是很明显。Goldsmith和Salmon提出了一个评价函数,通常被称为表面积启发式函数。他们通过父节点和孩子节点的表面积之比来形式化的表述这个关系,此评价函数如下所示:此处,hit(n)是光线击中节点n的情况,Sn是节点n的表面积,c和p分别表示父节点和孩子节点。这个评价函数给出了,当用一条随机的光线同层次结构求交的时候,成本上的估计。由于没有最优的方法去有效的构造一个最优的BVH,提出了不同的构造技巧。下面,将列出比较通用的方法。在实践中,对于包围体应用的最广泛的就是轴对齐包围盒(AABB)。AABB易于实现,并且同光线的求交测试非常快。大多数有关BVH的论文在描述BVH的创建的时候,通常分别以Kay和Kajiya,或者Goldsmith和Salmon这两种基本的想法为基础。Kay和Kajiaya建议以自上而下递归的方式进行BVH的创建。Goldsmith和Salmon提出了一个更加复杂的自底向上的构造方式。Goldsmith和Salmon指出,BVH的质量同作为输入传人的三角形的顺序有关。因此,他们建议在构造BVH之前,随机打乱三角形的顺序。下述算法就是利用Kay/Kajiya的思想创建某个场景的包围体层次的方法:4.结束语本文成功的在GPU上实现了用于光线跟踪算法中的各种加速结构,并对这些加速结构在GPU上的加速效果进行了比较。均匀栅格作为第一个在CPU上实现的光线跟踪器的加速结构,也被证明是最慢的,除非是只包含一个单独的物体的场景的情况。均匀栅格不适合几何体的密度非常高的场景。另外,对于均匀栅格的CPU上的遍历表示,也需要大量的数据。Foley和Sugerman认为,对于大多数场景,KD-tree的效率要比均匀栅格高。但是,在KD-tree的遍历过程中,无论是重置阶段还是回退阶段,片元程序都非常的复杂,但这种复杂性也使得其能够在场景的几何体的密度改变的时候做出适当的调整。本文实现的BVH被证明在加速效果上要超过均匀栅格和KD-tree,在现阶段,BVH是在GPU上实现的最快的加速结构。并且在GPU上实现BVH加速结构要比实现其他加速结构更加的简单。参考文献:[1]Randima Femado编,姚勇,王小琴译.GPU精粹一实时图形编程的技术,技巧和技艺[M].北京:人民邮电出版社,2006.[2] Matt Pharr编著,龚敏敏译.GPU精粹2-高性能图形芯片和通用计算编程技巧[M].北京:清华大学出版社.[3]昊恩华,柳有权.基于图形处理器(GPU)的通用计算叨.计算机辅助设计与图形学学报,2004,16(5): 601-[4] Philip ,David 著,周长发译,计算机图形学几何工具算法详解[M].北京:电子工业出版社,2005.[5] Martin Christen. Implementing ray tracing on GPU. Master´sthesis, University of Applied Sciences Basel,
分太诱人,可惜得不到
271 浏览 5 回答
336 浏览 4 回答
185 浏览 6 回答
170 浏览 2 回答
177 浏览 3 回答
309 浏览 4 回答
261 浏览 3 回答
287 浏览 3 回答
127 浏览 3 回答
278 浏览 3 回答
297 浏览 3 回答
349 浏览 3 回答
153 浏览 3 回答
227 浏览 5 回答
249 浏览 4 回答