300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > GPURT 1.1.0 --一个开源的基于GPU的光线追踪渲染软件

GPURT 1.1.0 --一个开源的基于GPU的光线追踪渲染软件

时间:2023-10-02 07:16:23

相关推荐

GPURT 1.1.0 --一个开源的基于GPU的光线追踪渲染软件

<script type="text/javascript"> </script> <script type="text/javascript" src="/pagead/show_ads.js"> </script> 因为工作的需要,在网上找了个使用GPU实现光线追踪的代码GPU RayTracer,GPU Shading是通过HLSL实现的,界面采用了wxwidget实现跨平台。虽然这个工程的代码是刚刚公布的,那时gpu的shading技术还没有像现在这样丰富,但作者通过GPU实现光线追踪的方法仍然值得借鉴。

这里介绍一下如何让它正常工作。

我用的是vs ,所以为了正常的编译,需要对代码作些修改。

1.首先自然是将下载的压缩包GPURT-1.1.0-alpha4-src.zip解压缩,这里;

2.然后直接打开sln文件,vs会对工程文件自动进行转换的;

3.先尝试对代码进行编译,会发现有些与vc不兼容造成的错误,比如“不允许缺省的函数返回值类型为整型”,“函数的参数缺乏相应类型”,“循环中的下标可以在for指令内定义”等,改起来也容易,没有定义的添加上定义,没用到的直接注释掉。

对于其中pow函数缺少整型参数下的重载问题,直接定义一个函数进行重载就行了。

floatpow(intx,inty)

...{

returnpow((float)x,(float)y);

4.现在基本上只剩下一些关于wxwidget的错误了。

从官方网站上下载新的开发包安装文件wxMSW-2.8.6-Setup.exe,安装好后从build/msw目录中用vs打开wx.dsp工程,相关的工程都会被自动转换和加载,然后选择Unicode Release版本进行编译,应该不会有什么问题。

编译好的文件都放在了lib/vc_lib目录下。

5.在vs中设置一下与wxwidget相关的路径,对Include而言,需要添加"wxWidgets-2.8.6/include"和“wxWidgets-2.8.6/include/msvc”两个路径,对于library而言,只需要添加“wxWidgets-2.8.6/lib/vc_lib”一个就可以了。

6.由于这个工程开发的比较早,所用的库名称有了写变化,所以需要对AGEX_LIBS.h文件中的一些库进行修改,主要的包括"d3dx9dt.lib"改为"d3dx9.lib",以及其它名称中包括"wxbase25"或"wxmsw25"的都改为"wxbase28"与"wxmsw25"

7.现在应该可以正常编译完成了。

我编译的是Release(GPU)版本,运行时的界面如下:

图一 控制界面

图二 渲染窗口

从【file/import 3ds】菜单中可以加载模型文件,并通过General属性页中的彩色按钮选择使用CPU或GPU进行渲染,下面的分别为使用CPU和GPU(D3D)渲染的效果,都采用了3次迭代运算

CPU的渲染效果

图三 CPU渲染效果

图四 GPU渲染效果

两个图效果差别不大,但是用CPU耗时两秒,而用我的gf7900则不到一秒钟就完成了,可见后者的效率更高,当然这个软件只能一帧一帧的独立渲染,对于运动场景的连续光线追踪而言,目前仍然是学术领域中一个热门但是困难的课题。

<script type="text/javascript"> </script> <script type="text/javascript" src="/pagead/show_ads.js"> </script>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。