当前位置: 首页>>代码示例>>C++>>正文


C++ Background::Calc方法代码示例

本文整理汇总了C++中Background::Calc方法的典型用法代码示例。如果您正苦于以下问题:C++ Background::Calc方法的具体用法?C++ Background::Calc怎么用?C++ Background::Calc使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Background的用法示例。


在下文中一共展示了Background::Calc方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: Cast

//------------------------------------------------------------------------------
void OneHit::Cast(TaggedRay & ray,const RenderableDB & db,const ds::List<Renderable*,
                  mem::KillDel<Light> > & inside,const ds::List<Light*> & ll,const Background & bg) const
{
 if (db.Intercept(ray,ray.hit,ray.inter))
 {
  // Hit an object - respond accordingly...
   ray.irradiance = bs::ColourRGB(0.0,0.0,0.0);

   Renderable::MatSpec & ms = ray.hit->mat[ray.inter.coord.material];
   if (ms.im) ms.im->Modify(ray.inter);
   
   ds::List<Light*>::Cursor targ = ll.FrontPtr();
   while (!targ.Bad())
   {
    bs::ColourRGB out;
    bs::Normal norm = ray.n; norm.Neg();
    (*targ)->Calc(norm,ray.inter,*ms.mat,db,out);
    ray.irradiance += out;
    ++targ;
   }
 }
 else
 {
  // Missed all objects - use the background instead...
   ray.hit = null<Renderable*>();
   bg.Calc(ray,ray.irradiance);
 }
}
开发者ID:PeterZhouSZ,项目名称:hyperion,代码行数:29,代码来源:renderers.cpp


注:本文中的Background::Calc方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。