250 likes | 466 Views
Week 11 - Wednesday. CS361. Last time. Radiosity Ray tracing Precomputed lighting Precomputed occlusion. Questions?. Project 3. Student Lecture: Billboarding and Particle Systems. Image Based Effects. Rendering spectrum.
E N D
Week 11 - Wednesday CS361
Last time • Radiosity • Ray tracing • Precomputed lighting • Precomputed occlusion
Rendering spectrum • We can imagine all the different rendering techniques as sitting on a spectrum reaching from purely appearance based to purely physically based Appearance Based Lightfields Physically Based Global illumination
Skyboxes • When objects are close to the viewer, small changes in viewing location can have big effects • When objects are far away, the effect is much smaller • As you know by now, a skybox is a large mesh containing the entire scene • Some (our) skyboxes look crappy because there isn't enough resolution • Minimum texture resolution (per cube face) =
Lightfields • If you are trying to recreate a complex scene from reality, you can take millions of pictures of it from many possible angles • Then, you can use interpolation and warping techniques to stitch them together • Huge data storage requirements • Each photograph must be catalogued based on location and orientation • High realism output! • Remember the video with the robot and the omnidirectional camera
Sprites and layers • A sprite is an image that moves around the screen • Sprites were the basis of most old 2D video games (back when those existed, before the advent of Flash) • By putting sprites in layers, it is possible to make a compelling scene • Sequencing sprites can achieve animation
Billboarding • Applying sprites to 3D gives billboarding • Billboarding is orienting a textured polygon based on view direction • Billboarding can be effective for objects without solid surfaces • Vegetation • Smoke • Fire • Each polygon (thought of as a quadrilateral, even if often two triangles in practice) needs a surface normal n and an up vector u • A billboard also has an anchor location as a point of reference
Screen-aligned billboard • A screen-aligned billboard is one that sits on the screen • The u vector comes from the camera • The n vector is the negation of the camera's view vector • XNA handles all of this for you in the SpriteBatch class, of course
World-oriented billboard • If the object is supposed to exist in the world, it needs to change as the world changes • The world has some implied up vector that can be used to derive an appropriate up vector (and thereby rotation matrix) for the sprites • For small sprites (such as particles) the billboard's surface normal can be the negation of the view plane normal • Larger sprites should have different normals that point the billboard directly at the viewpoint
Unlimited options • Many (sometimes hundreds) of billboards can be put together to make smoke or fire effects • A small set of billboards can be drawn many times with different scaling and rotation factors and overlapped • Issues can happen if these billboards intersect with objects • Soft particles is a technique for lowering the opacity of billboards when they are close to "real" objects
Axial billboards • Axial billboards are another common technique • In axial billboards, a polygon rotates around some world space axis and tries to face the viewer as much as is allowed • This technique is useful for trees viewed from a distance • Like cross trees, the illusion is ruined if the viewer moves too high • Some implementations may switch between the impostor billboard and a real model if the viewer gets close enough • It works for laser beams too
Particle systems • In a particle system, many small, separate objects are controlled using some algorithm • Applications: • Fire • Smoke • Explosions • Water • Particle systems refer more to the animation than to the rendering • Particles can be points or lines or billboards • Modern GPUs can generate and render particles in hardware
Impostors • An impostor is a billboard created on the fly by rendering a complex object to a texture • Then, the impostor can be rendered more cheaply • This technique should be used to speed up the rendering of far away objects • The resolution of the texture should be at least:
Displacement techniques • An impostor that also has a depth map is called a depth sprite • This depth information can be used to make a billboard that intersects with real world objects realistically • The depth in the image can be compared against the z-buffer • Another technique is to change the depth information to procedurally deform the billboard
Next time… • Image processing • Tone mapping • HDR lighting • Lens flare • Bloom
Reminders • Keep working on Project 3 • Due Friday before midnight • Keep reading Chapter 10 • Exam 2 is next Wednesday in class • Review chapters 5 – 10