本文整理汇总了C#中IGeometry.Any方法的典型用法代码示例。如果您正苦于以下问题:C# IGeometry.Any方法的具体用法?C# IGeometry.Any怎么用?C# IGeometry.Any使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IGeometry
的用法示例。
在下文中一共展示了IGeometry.Any方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CalculateLighting
private static Tuple<LightStrength, double> CalculateLighting(IGeometry[] spheres, Vector3D directionToEye, Vector3D surfaceNormal, Material sphere, Vector3D intersectionPoint, Light light)
{
var directionToLight = light.CenterPoint - intersectionPoint;
directionToLight.Normalize();
var lightT = (light.CenterPoint.X - intersectionPoint.X)/directionToLight.X;
var blocked = spheres.Any(s => ObscuresLight(s, intersectionPoint, directionToLight, lightT));
if (blocked)
{
return Tuple.Create(LightStrength.Zero,0.0);
}
var ldotn = Math.Max(0.0,Vector3D.DotProduct(surfaceNormal, directionToLight));
var diffuse = light.Brightness*ldotn;
var H = directionToLight + directionToEye;
H.Normalize();
var ndoth = Math.Max(0.0,Vector3D.DotProduct(surfaceNormal, H));
var specular = Math.Pow(ndoth, sphere.Shinyness);
return Tuple.Create(diffuse, specular);
}