注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Code@Pig Home

喜欢背着一袋Code傻笑的Pig .. 忧美.欢笑.记忆.忘却 .之. 角落

 
 
 

日志

 
 

Single Sphere Raytracing  

2012-04-12 22:17:25|  分类: 3d |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
《Ray Tracing from the Ground Up》真是好书,适合我这种有程序基础,没有太多图形学基础的人阅读。

简单来说,raytracing 就是从投影平面,每个像素都发射一条ray,看击中哪个object的surface,并计算此像素应该显示为啥颜色。
Single Sphere Raytracing - kasicass - Code@Pig Home

第一个raytracing程序出炉。简单的垂直投影,场景中只有一个红球。
void SphereWorld::renderSceneInternal()
{
  RGBColor pixelColor;
  Ray ray;
  double zw = 100.0;
  double x, y;

  ray.d = Vector3D(0, 0, -1);

  for (int r = 0; r < vp_.vRes; r++)
  {
    for (int c = 0; c < vp_.hRes; c++)
    {
      x = vp_.s * (c - 0.5 * (vp_.hRes - 1.0));
      y = vp_.s * (0.5 * (vp_.vRes - 1.0) - r);
      ray.o = Point3D(x, y, zw);
      pixelColor = pTracer_->traceRay(ray);
      displayPixel(c, r, pixelColor);
    }
  }
}

Single Sphere Raytracing - kasicass - Code@Pig Home
 
底层用了SDL2,注意,是SDL2哦。http://www.libsdl.org/
2.0增加了各种功能,cool~。http://wiki.libsdl.org/moin.cgi/Roadmap
  评论这张
 
阅读(1116)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017