本文整理汇总了C#中Ray.pointOn方法的典型用法代码示例。如果您正苦于以下问题:C# Ray.pointOn方法的具体用法?C# Ray.pointOn怎么用?C# Ray.pointOn使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Ray
的用法示例。
在下文中一共展示了Ray.pointOn方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: shade
public override Color shade(RenderContext rc, Ray ray, HitRecord hrec, int depth)
{
Point hp = ray.pointOn(hrec.getT());
Vector normal = hrec.getPrimitive().normal(hp);
hp += 0.0001f * normal;
Scene scene = rc.getScene();
int numlights = scene.numberOfLights();
Color finalc = new Color(0,0,0);
for ( int i = 0; i < numlights; i++ ) {
Vector ldir = new Vector();
Color lcolor = new Color();
float ldist = scene.getLight(i).getLight(ref lcolor, ref ldir, rc, hp);
HitRecord shadowhr = new HitRecord();
Ray shadowray = new Ray(hp, ldir);
scene.getObject().intersect(ref shadowhr, rc, shadowray);
if ( shadowhr.getT() >= ldist || shadowhr.getT() < 0.01 ) {
float dp = Vector.dot(normal, ldir);
if( dp > 0 ) {
finalc += dp*lcolor;
}
}
}
return color * ( finalc * kd + scene.getAmbient() * ka );
}