基于D3D的Ray Trace

  基于D3D的Ray Trace 
 
我2007年08月16日的老文章


  主角还是变形金刚永远的两巨头--擎天柱、威震天。  

  计算包括贴图颜色Texture、漫反射diffuse、高光specular、反射Reflect、折射Refract、阴影Shadow。  
  使用了D3D9 API,没有使用GPU Shader。  
  程序是在D3D Tutorial 06: Meshes Sample 基础上顺手改的。  

  主要的几何算法就是Ray与Triangle的碰撞检测,Ray与AABB Box的碰撞检测,Ray与包围球的碰撞检测。  
  几乎所有的计算时间都耗费在大量的Ray与Triangle的碰撞检测上。这张412 X 386的图片计算耗时估计超过 三个小时。我的电脑CPU只是可怜的P4 1.7G,我曾经想计算一张800x800的图,可惜从我早上打开电脑开始算,一直到晚上回家也没有算完。而且大图的计算一直还会出现意想不到的问题,结果会是一张莫名奇妙的图。我至今还没有找到问题所在。    

  面的法线平滑好像有点问题。事实上我不知道如何取得类似D3D硬件所做的那种平滑插值的效果。而且整个场景有些偏暗,我猜测可能是取得贴图颜色偏暗造成的。
  使用的模型是网络上找到的低模,或许用低模做Ray Trace并不合适。但是因为我可怜的CPU,同时没有更好的算法优化,也只能这样了。
 
  如果有时间,同时运气足够好的话。我会努力渲染出一张大点的图出来,效果也许会好一些 。

 这张是Ray Trace的结果

这张是D3D渲染的原图

posted on 2009-08-04 10:17  朝三暮四郎  阅读(1276)  评论(1编辑  收藏  举报

导航