300 likes | 319 Views
This article provides an overview of graphics, including rendering equations, modeling scenes, rendering processes, lighting and texturing, and the challenges of distributed graphics systems.
E N D
A Few Things about Graphics Jian Huang Computer Science University of Tennessee
Graphics • Graphics studies light transport in 3D scene, sometimes over time as well. • Example applications abound nowadays in movies, MTVs, … • In a nutshell, it’s some math and methods to compute such math efficiently on processors, memory banks and buses (lots of parallelism) • Well, everything should start with that Rendering Equation
The Rendering Equation • I(x,x’) = intensity passing from x’ to x • g(x,x’) = geometry term (1, or 1/r2, if x visible from x’, 0 otherwise) • e(x,x’) = intensity emitted from x’ in the direction of x • r(x,x’,x’’) = scattering term for x’ (fraction of intensity arriving at x’ from the direction of x’’ scattered in the direction of x) • S = union of all surfaces
It’s not analytically solvable • So, instead of simply doing the math, can we use computer to compute this equation in some simplified version (oftentimes, immensely)? • When approximations are made, priorities are set accordingly to what is the most appealing to viewer given the current hardware capability • The consumer of the result is human being, so the measurement of good and bad is not as conventional as other computer science disciplines
What does it take to get that equation done? • First, one has to model the scene • What color model is used (RGB, HSV) • Surfaces as geometrical meshes (volumes …) • Materials as lighting and texturing parameters • Light sources • Second, compute the result for a screen device as it would appear on a retina – the rendering process • The graphics pipeline • Speed and high quality (30 fps, 60 fps, 120 fps) • Framebuffer: 320x240, 640x480, …, 1024x768, … 6000x6000. • Popular engines use OpenGL or DX, D3D libraries
Geometric Primitives • All geometric primitives are specified by vertices
EYE OBJECT WORLD Transformations • Modeling transformations • build complex models by positioning simple components • Viewing transformations • place virtual camera in the world • transform from world coordinates to eye coordinates • Vary transformations over time creates motion - Animation
Affine Transformation in 3D • Translation • Rotate • Scale • Shear
3D Models - The Mesh Assembled scene
A Virtual World • Objects • Shape: meshed geometry (and topology) • Appearance: lighting, shading and texture • Scene • Camera and viewing • Light position • Scene composition
Appearance • Having just the geometry, objects don’t look right yet. • The first step is to use light sources • The second step is to put textures on
Multiple Light Source • IL: light intensity • For multiple light sources • Repeat the diffuse and specular calculations for each light source • Add the components from all light sources • The ambient term contributes only once • The different reflectance coefficients can differ. • Simple “metal”: ks and kd share material color, • Simple plastic: ks is white • Remember, when cosine is negative lighting term is zero!
What is a Texture? • Color • Specular ‘color’ (environment map) • Normal vector perturbation (bump map) • Displacement mapping • Transparency • ...
Textures Make A Difference • Good textures, when applied correctly, make a world out of nothing!
Every Renderer is a State Machine • All rendering attributes are encapsulated in the as states • Transformations • Viewing • Rendering styles • Shading • Lighting • Texture mapping
The Punch Line • Graphics models the world with geometry and appearance attributes • The rendering process is extremely computation-intensive. What processor won Processor-Of-The-Year award last year? • The graphics state is complicated to maintain. • The requirement is high interactivity
Distributed Graphics • Systems for distributing the shared graphical state of multi-display, multi-person, distributed, interactive applications
Distributed Graphics • Two key problems: • The graphics database needs to be distributed • Replication is a standard go-around • The graphics states are distributed • This is the tricky part
Distributed Graphics • Two major categories: • Data can be replicated (let’s do this!) • Data can not be replicated • Dependent on the choice • Drastically different approach • Specific pros and cons • Let’s make sure graphics states are shared properly
Distributed vs. Monolithic Apps • Distributed control • In a non-trivial distributed application, different components need to be notified of changes to the distributed state • Interactivity • Network latency bandwidth limitations make updates to distributed state much slower. For performance, need to perform some operations locally • Local variations • There are times when a shared graphical scene may need to be modified locally