Week 13 - Monday
Radiosity Ray tracing Precomputed lighting Precomputed occlusion
We can imagine all the different rendering techniques as sitting on a spectrum reaching from purely appearance based to purely physically based Sprites Billboards Appearance Physically Based Based Layers Triangles Lightfields Global illumination
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 skyboxes look crappy because there isn't enough resolution screen resolution Minimum texture resolution (per cube face) = tan(fov/2)
If you're 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
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
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
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 MonoGame handles all of this for you in the SpriteBatch class, of course
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
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 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
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
Image processing Tone mapping HDR lighting Lens flare Bloom
Keep working on Assignment 4 Due Friday by midnight Keep working on Project 3 Keep reading Chapter 10
Recommend
More recommend