本文整理汇总了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);
}
}