week 13 - mondayfaculty.otterbein.edu/wittman1/comp4290/slides/comp4290... · 2019. 11. 18. ·...
TRANSCRIPT
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
Layers
Billboards
Triangles
AppearanceBased
Lightfields
PhysicallyBased
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 Minimum texture resolution (per cube face) =
tan(fov/2)resolution screen
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