16.837 Assignment 10 PresentationsDecember 7th& 9th, 2004Mike E.Distributed Ray Tracing• Effects created by sending many rays from a random distribution.• Used for depth of field effects, glossy reflections, and soft shadows• My implementation reused Sampler and Film objects for creating distribution averageDepth of Field results...Normal SceneYellow Ball focusBlue Ball FocusNing S.Distribution RaytracingTo be random is to be realistic.Ning Song6.837 Assignment 10 Presentation12/07/042Soft Shadows• Light sources in the real world have area.• Represent light source as infinite number of points.• For each shadow ray, sample a random point on light source.• Be sure that pixel and shadow samples don’t correspond.• Note that number of samples has significant impact on image quality.Point light, no soft shadowsArea light, soft shadows, 16 samples/pixelArea light, soft shadows, 64 samples/pixelDepth of Field• Real world camera has area (vs. usual pinhole camera model)• Model camera (eye) as square or circular disk with area a. • Sample various eye positions on disk while maintaining line of focus (i.e., sample from focal plane). http://glasnost.itcarlow.ie/~powerk/Graphics/Notes/node12.html#SECTION001280000000000000000• Larger lens size means more things out of focus, smaller lens size means more in focus.Perfect focusSmall lens size Large lens sizeGlossy Reflection• Glossy surfaces have non-ideal reflections (i.e., blurry reflections).• Implement by varying reflection rays (i.e., sampling reflection ray directions).• For each surface hit point, perturb ideal reflection ray using perpendicular square with length a, which is degree of blurriness.Perfect reflection Glossy Reflection, 16 samples/pixelGlossy reflection, 64 samples/pixel3Motion Blur• Image is formed over non- zero span of time.• For each ray, pick a random time between t_start and t_end, and intersect with moving primitive.• Resulting image will again be blurred.• Important to specify both start and end positions of object in order to calculate bounding boxes for ray acceleration.T = 0 T = 5 T = 10(1) James T.TriangleMeshGroup & CSGsJames Tolbert, IIAssignment 10 Presentation6.837Triangle Mesh Group• No new Object3D, Group subclass• Only Override the inside Method• Parse calls TriangleMeshGroupPicturesDifference Intersection Union4CSG Plane Some of Text File• Group {• numObjects 6• Transform {• Translate 0 0 1• Group {• numObjects 2• Transform {• Translate 3 3 0• Scale 0.5 0.6 0.5• Group {• numObjects 4• MaterialIndex 0• Transform {• Scale 2 2 2• Group {• numObjects 1• Difference {• TriangleMesh {• obj_file cube.obj•}• Sphere {• center 0 1 0• radius 0.8•}•}•}•}•Transform {Translate 0 5 0Scale 1 5 1XRotate 180Group {numObjects 1Intersection {TriangleMesh {obj_file cube.obj}Sphere {center 0 1 0radius 1}}}}Transform {Translate 0 -5 0 Scale 1.5 4 1.5Group {numObjects 1Intersection {TriangleMesh {obj_file cube.obj}Sphere {center 0 1 0radius 1}}}}Transform {Translate 0 2 0Scale 1.4 0.5 1.4XRotate 180Group {numObjects 1Intersection {TriangleMesh {obj_file cube.obj}Sphere {center 0 1 0radius 1}}}}}}MaterialIndex 1Transform {Translate 3 3 4XRotate 90ZRotate 90YRotate -90Scale 1.5 0.5 3XRotate 90Group {numObjects 1Intersection {TriangleMesh {obj_file cube.obj}Sphere {center 0 1 0radius 1}}}}}}MaterialIndex 3Transform {Translate 5 -8 1Scale 0.5 0.5 0.5Group {numObjects 2Transform {Scale 1 5 1Group {numObjects 1Intersection {TriangleMesh {obj_file cube.obj}Sphere {center 0 1 0radius 1}}}} Transform {Translate 0 11 0Scale 1 5 1XRotate 180Group {numObjects 1Intersection {TriangleMesh {obj_file cube.obj}Sphere {center 0 1 0radius 1}}}}}}MaterialIndex 1Transform {Translate 5 -9 0Scale 1.2 1.5 1.2Group {(2) Colin W.5(3) Javier C.Tensor Product of BSpline CurvesJavier CastroMIT 6.837• What is a Tensor Product?• Definition of BSpline Patch– Can be of size M x N– Has two parameters: s and tDefinitions Problems• BSpline Patch vs. Bicubic Bezier Patch• 3D Point Editing via GUIExample Fun with BSpline Surfaces6(4) Evelyn E.Ray Tracing Quartic SurfacesEvelyn Eastmond6.837 Assignment 10Ray-Torus Intersection• A Torus is a quartic surfaceQuadratic surface - 2 roots Quartic surface - 4 rootsRay-Torus Intersection• Torus equation:– f(x,y,z) = (x2+ y2+ z2–r2–R2)2+4R2(z2–r2)–x = rox+ rdx, y = roy+ rdy, z = roz+rdz• Steps– Find coefficients of quartic• By hand (1.5 hrs….)• Online– Solve using quartic solver• By hand?• Online!Ray-Torus: Failed Attempt 1• Problem: inverted coefficientsRay-Torus: Failed Attempt 2• Problem: false positive‘t’ values7Lessons Learned• Solve everything by hand– geometry?• Use online sources for reference only• Acknowledgements:–Ray- torus equation:Max Wagner, http://emeyex.com/– Quartic solver:Geant 4 Group, http://geant4.web.cern.ch(5) Andy A.Distribution Ray TracingAndy Arizpe6.837December 9, 2004Soft Shadows• Represent light source as area rather than point.• For each shadow calculation, send multiple rays aimed at different points on the light.• Points near the border of the shadow region will be partially lit.Soft ShadowsOne ray per shadow calculation Sixteen rays per shadow calculation8Glossy Reflection• Used to model materials that are somewhere between perfect mirrors and diffuse.• For each reflection, send several rays – each one offset from the perfect mirror direction by a random vector, calculated by sampling a square perpendicular to the perfect mirror direction.• Size of square determines amount of blurriness.Glossy ReflectionThree spheres with glossiness values of 0, 0.25, and 0.5 (from left to right).Depth of Field• Extend the perspective camera with notions of lens size and distance to focus plane.• For each pixel, shoot multiple rays originating at different points on the “lens”, but all going through the same point on the focus plane.• With a larger lens size, objects get blurrier more quickly as you move away from focus plane.Depth of FieldNo focus – standard perspective cameraFocus on blue box Focus on red box(6) Ilia M.f(r) = exp(-r2/2) f(r) = r < 1: (1-r2)2 r ≥ 1: 09video…PLAY VIDEO(7) Bryan A.EnvironmentObjects• EnvSphere and EnvPlane• Float getDistance(Vec3f pos)• Vec3f getNormal(Vec3f pos)• Void paint()• Each system has an array of EnvironmentObjects, so you can have several in a sceneBasic Collision
View Full Document