本文整理汇总了C#中PixelBuffer.PutPixel方法的典型用法代码示例。如果您正苦于以下问题:C# PixelBuffer.PutPixel方法的具体用法?C# PixelBuffer.PutPixel怎么用?C# PixelBuffer.PutPixel使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PixelBuffer
的用法示例。
在下文中一共展示了PixelBuffer.PutPixel方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Run
public void Run()
{
ints = new Intersection[Objects.Length];
for (var i = 0; i < ints.Length; i++) {
ints [i] = new Intersection ();
}
var bmp = new PixelBuffer (1920, 1080);
var ss = 10 / (Prec)bmp.Width;
var startT = DateTime.Now;
var ray = new Ray ();
var ns = 32;
var rand = new Random ();
for (var y = 0; y < bmp.Height; y++) {
for (var x = 0; x < bmp.Width; x++) {
var col = new Vec (0,0,0);
for (var samp = 0; samp < ns; samp++) {
var r0 = CameraCenter;
var r1 = new Vec (
(Prec)(x + (ns > 1 ? rand.NextDouble () : 0.0) - bmp.Width / 2) * ss,
(Prec)(y + (ns > 1 ? rand.NextDouble () : 0.0) - bmp.Height / 2) * ss,
6);
var v = r1 - r0;
v.Normalize ();
ray.Origin = r0;
ray.Direction = v;
col += Trace (ray, 1);
}
col *= ((Prec)1)/ns;
bmp.PutPixel (x, y, col);
}
}
var endT = DateTime.Now;
var time = (endT - startT).TotalSeconds;
System.Console.WriteLine ("Rays/sec = {0}, T = {1}", bmp.Width * bmp.Height / time, time);
bmp.SavePng ();
}