Lines Matching full:flog
4 // http://labs.flog.nz.co/raytracer/
56 // flog/color.js
57 // flog/light.js
58 // flog/vector.js
59 // flog/ray.js
60 // flog/scene.js
61 // flog/material/basematerial.js
62 // flog/material/solid.js
63 // flog/material/chessboard.js
64 // flog/shape/baseshape.js
65 // flog/shape/sphere.js
66 // flog/shape/plane.js
67 // flog/intersectioninfo.js
68 // flog/camera.js
69 // flog/background.js
70 // flog/engine.js
73 /* Fake a Flog.* namespace */
74 if(typeof(Flog) == 'undefined') var Flog = {};
75 if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
77 Flog.RayTracer.Color = Class.create();
79 Flog.RayTracer.Color.prototype = {
95 var result = new Flog.RayTracer.Color(0,0,0);
105 var result = new Flog.RayTracer.Color(0,0,0);
117 var result = new Flog.RayTracer.Color(0,0,0);
127 var result = new Flog.RayTracer.Color(0,0,0);
137 var result = new Flog.RayTracer.Color(0,0,0);
147 var result = new Flog.RayTracer.Color(0,0,0);
168 var result = new Flog.RayTracer.Color(0,0,0);
169 result = Flog.RayTracer.Color.prototype.add(
170 Flog.RayTracer.Color.prototype.multiplyScalar(c1, 1 - w),
171 Flog.RayTracer.Color.prototype.multiplyScalar(c2, w)
191 /* Fake a Flog.* namespace */
192 if(typeof(Flog) == 'undefined') var Flog = {};
193 if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
195 Flog.RayTracer.Light = Class.create();
197 Flog.RayTracer.Light.prototype = {
212 /* Fake a Flog.* namespace */
213 if(typeof(Flog) == 'undefined') var Flog = {};
214 if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
216 Flog.RayTracer.Vector = Class.create();
218 Flog.RayTracer.Vector.prototype = {
237 return new Flog.RayTracer.Vector(this.x / m, this.y / m, this.z / m);
245 return new Flog.RayTracer.Vector(
256 return new Flog.RayTracer.Vector(w.x + v.x, w.y + v.y, w.z + v.z);
261 return new Flog.RayTracer.Vector(v.x - w.x, v.y - w.y, v.z - w.z);
265 return new Flog.RayTracer.Vector(v.x * w.x, v.y * w.y, v.z * w.z);
269 return new Flog.RayTracer.Vector(v.x * w, v.y * w, v.z * w);
276 /* Fake a Flog.* namespace */
277 if(typeof(Flog) == 'undefined') var Flog = {};
278 if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
280 Flog.RayTracer.Ray = Class.create();
282 Flog.RayTracer.Ray.prototype = {
294 /* Fake a Flog.* namespace */
295 if(typeof(Flog) == 'undefined') var Flog = {};
296 if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
298 Flog.RayTracer.Scene = Class.create();
300 Flog.RayTracer.Scene.prototype = {
307 this.camera = new Flog.RayTracer.Camera(
308 new Flog.RayTracer.Vector(0,0,-5),
309 new Flog.RayTracer.Vector(0,0,1),
310 new Flog.RayTracer.Vector(0,1,0)
314 this.background = new Flog.RayTracer.Background(new Flog.RayTracer.Color(0,0,0.5), 0.2);
317 /* Fake a Flog.* namespace */
318 if(typeof(Flog) == 'undefined') var Flog = {};
319 if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
320 if(typeof(Flog.RayTracer.Material) == 'undefined') Flog.RayTracer.Material = {};
322 Flog.RayTracer.Material.BaseMaterial = Class.create();
324 Flog.RayTracer.Material.BaseMaterial.prototype = {
351 /* Fake a Flog.* namespace */
352 if(typeof(Flog) == 'undefined') var Flog = {};
353 if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
355 Flog.RayTracer.Material.Solid = Class.create();
357 Flog.RayTracer.Material.Solid.prototype = Object.extend(
358 new Flog.RayTracer.Material.BaseMaterial(), {
376 /* Fake a Flog.* namespace */
377 if(typeof(Flog) == 'undefined') var Flog = {};
378 if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
380 Flog.RayTracer.Material.Chessboard = Class.create();
382 Flog.RayTracer.Material.Chessboard.prototype = Object.extend(
383 new Flog.RayTracer.Material.BaseMaterial(), {
412 /* Fake a Flog.* namespace */
413 if(typeof(Flog) == 'undefined') var Flog = {};
414 if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
415 if(typeof(Flog.RayTracer.Shape) == 'undefined') Flog.RayTracer.Shape = {};
417 Flog.RayTracer.Shape.Sphere = Class.create();
419 Flog.RayTracer.Shape.Sphere.prototype = {
427 var info = new Flog.RayTracer.IntersectionInfo();
430 var dst = Flog.RayTracer.Vector.prototype.subtract(ray.position, this.position);
439 info.position = Flog.RayTracer.Vector.prototype.add(
441 Flog.RayTracer.Vector.prototype.multiplyScalar(
446 info.normal = Flog.RayTracer.Vector.prototype.subtract(
462 /* Fake a Flog.* namespace */
463 if(typeof(Flog) == 'undefined') var Flog = {};
464 if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
465 if(typeof(Flog.RayTracer.Shape) == 'undefined') Flog.RayTracer.Shape = {};
467 Flog.RayTracer.Shape.Plane = Class.create();
469 Flog.RayTracer.Shape.Plane.prototype = {
479 var info = new Flog.RayTracer.IntersectionInfo();
489 info.position = Flog.RayTracer.Vector.prototype.add(
491 Flog.RayTracer.Vector.prototype.multiplyScalar(
500 var vU = new Flog.RayTracer.Vector(this.position.y, this.position.z, -this.position.x);
516 /* Fake a Flog.* namespace */
517 if(typeof(Flog) == 'undefined') var Flog = {};
518 if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
520 Flog.RayTracer.IntersectionInfo = Class.create();
522 Flog.RayTracer.IntersectionInfo.prototype = {
532 this.color = new Flog.RayTracer.Color(0,0,0);
539 /* Fake a Flog.* namespace */
540 if(typeof(Flog) == 'undefined') var Flog = {};
541 if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
543 Flog.RayTracer.Camera = Class.create();
545 Flog.RayTracer.Camera.prototype = {
557 this.screen = Flog.RayTracer.Vector.prototype.add(this.position, this.lookAt);
561 var pos = Flog.RayTracer.Vector.prototype.subtract(
563 Flog.RayTracer.Vector.prototype.subtract(
564 Flog.RayTracer.Vector.prototype.multiplyScalar(this.equator, vx),
565 Flog.RayTracer.Vector.prototype.multiplyScalar(this.up, vy)
569 var dir = Flog.RayTracer.Vector.prototype.subtract(
574 var ray = new Flog.RayTracer.Ray(pos, dir.normalize());
583 /* Fake a Flog.* namespace */
584 if(typeof(Flog) == 'undefined') var Flog = {};
585 if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
587 Flog.RayTracer.Background = Class.create();
589 Flog.RayTracer.Background.prototype = {
598 /* Fake a Flog.* namespace */
599 if(typeof(Flog) == 'undefined') var Flog = {};
600 if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
602 Flog.RayTracer.Engine = Class.create();
604 Flog.RayTracer.Engine.prototype = {
682 var best = new Flog.RayTracer.IntersectionInfo();
702 var R1 = Flog.RayTracer.Vector.prototype.add(
703 Flog.RayTracer.Vector.prototype.multiplyScalar(N, 2*c1),
706 return new Flog.RayTracer.Ray(P, R1);
711 var color = Flog.RayTracer.Color.prototype.multiplyScalar(info.color, scene.background.ambience);
719 var v = Flog.RayTracer.Vector.prototype.subtract(
727 color = Flog.RayTracer.Color.prototype.add(
729 Flog.RayTracer.Color.prototype.multiply(
731 Flog.RayTracer.Color.prototype.multiplyScalar(
755 color = Flog.RayTracer.Color.prototype.blend(
768 var shadowInfo = new Flog.RayTracer.IntersectionInfo();
771 var shadowRay = new Flog.RayTracer.Ray(info.position, v);
775 var vA = Flog.RayTracer.Color.prototype.multiplyScalar(color, 0.5);
777 color = Flog.RayTracer.Color.prototype.addScalar(vA,dB);
783 var Lv = Flog.RayTracer.Vector.prototype.subtract(
788 var E = Flog.RayTracer.Vector.prototype.subtract(
793 var H = Flog.RayTracer.Vector.prototype.subtract(
799 color = Flog.RayTracer.Color.prototype.add(
800 Flog.RayTracer.Color.prototype.multiplyScalar(light.color, glossWeight),
812 var scene = new Flog.RayTracer.Scene();
814 scene.camera = new Flog.RayTracer.Camera(
815 new Flog.RayTracer.Vector(0, 0, -15),
816 new Flog.RayTracer.Vector(-0.2, 0, 5),
817 new Flog.RayTracer.Vector(0, 1, 0)
820 scene.background = new Flog.RayTracer.Background(
821 new Flog.RayTracer.Color(0.5, 0.5, 0.5),
825 var sphere = new Flog.RayTracer.Shape.Sphere(
826 new Flog.RayTracer.Vector(-1.5, 1.5, 2),
828 new Flog.RayTracer.Material.Solid(
829 new Flog.RayTracer.Color(0,0.5,0.5),
837 var sphere1 = new Flog.RayTracer.Shape.Sphere(
838 new Flog.RayTracer.Vector(1, 0.25, 1),
840 new Flog.RayTracer.Material.Solid(
841 new Flog.RayTracer.Color(0.9,0.9,0.9),
849 var plane = new Flog.RayTracer.Shape.Plane(
850 new Flog.RayTracer.Vector(0.1, 0.9, -0.5).normalize(),
852 new Flog.RayTracer.Material.Chessboard(
853 new Flog.RayTracer.Color(1,1,1),
854 new Flog.RayTracer.Color(0,0,0),
866 var light = new Flog.RayTracer.Light(
867 new Flog.RayTracer.Vector(5, 10, -1),
868 new Flog.RayTracer.Color(0.8, 0.8, 0.8)
871 var light1 = new Flog.RayTracer.Light(
872 new Flog.RayTracer.Vector(-3, 5, -15),
873 new Flog.RayTracer.Color(0.8, 0.8, 0.8),
889 var raytracer = new Flog.RayTracer.Engine(