Image Synthesis

20
computer graphics & visualization Image Synthesis REYES Render Everything Your Eyes Ever Saw

description

Image Synthesis. REYES R ender E verything Y our E yes E ver S aw. Motivation. Motivation. History. Developed by Lucasfilm Graphics group (later ILM) in the 80s Early implementation used for “Young Sherlock Holmes”, “The Adventures of Andre and Wally B.”, “Luxor Jr.”. - PowerPoint PPT Presentation

Transcript of Image Synthesis

Page 1: Image Synthesis

computer graphics & visualization

Image Synthesis

REYESRender Everything Your Eyes Ever Saw

Page 2: Image Synthesis

computer graphics & visualization

Image Synthesis – WS 07/08Dr. Jens Krüger – Computer Graphics and Visualization Group

Motivation

Page 3: Image Synthesis

computer graphics & visualization

Image Synthesis – WS 07/08Dr. Jens Krüger – Computer Graphics and Visualization Group

Motivation

Page 4: Image Synthesis

computer graphics & visualization

Image Synthesis – WS 07/08Dr. Jens Krüger – Computer Graphics and Visualization Group

History• Developed by Lucasfilm Graphics group

(later ILM) in the 80s• Early implementation used for “Young Sherlock

Holmes”, “The Adventures of Andre and Wally B.”, “Luxor Jr.”

Page 5: Image Synthesis

computer graphics & visualization

Image Synthesis – WS 07/08Dr. Jens Krüger – Computer Graphics and Visualization Group

More Historic Images

Page 6: Image Synthesis

computer graphics & visualization

Image Synthesis – WS 07/08Dr. Jens Krüger – Computer Graphics and Visualization Group

REYES …an architecture optimized for fast high-quality rendering of complex animated scenes

• Fastbeing able to compute a feature-length film in approximately a year• High-Quality

virtually indistinguishable from live action motion picture photography• Complex

visually rich as real scenes

Page 7: Image Synthesis

computer graphics & visualization

Image Synthesis – WS 07/08Dr. Jens Krüger – Computer Graphics and Visualization Group

Assumptions • Model complexity

scenes with hundreds of thousands of geometric primitives

• Model diversitysupport a large variety of geometric primitives, especially data amplification primitives such as procedural models, fractals and particle systems

• Shading complexityprogrammable shaders

Page 8: Image Synthesis

computer graphics & visualization

Image Synthesis – WS 07/08Dr. Jens Krüger – Computer Graphics and Visualization Group

Assumptions cont.• Minimal ray tracing

Many non-local lighting effects can be approximated with texture maps. Few objects in natural scenes would seem to require ray tracing.

• Speed3 minutes per frame

• Image QualityAvoid aliasing and faceting artifacts, such as jagged edges, Moire patterns in textures, temporal strobing, and highlight aliasing

Page 9: Image Synthesis

computer graphics & visualization

Image Synthesis – WS 07/08Dr. Jens Krüger – Computer Graphics and Visualization Group

Assumptions cont.• Flexibility

Many new image rendering techniques will undoubtedly be discovered in the coming years. The architecture should be flexible enough to incorporate many of these few techniques.

Page 10: Image Synthesis

computer graphics & visualization

Image Synthesis – WS 07/08Dr. Jens Krüger – Computer Graphics and Visualization Group

Design Principles• Natural coordinates• Vectorization• Common representation• Locality– Geometric– Texture

• Linearity• Large models• Backdoor• Texture maps

MODEL

Read model

Bound

On screen?

Diceable?

Dice

Shade

Sample

Visibility

Filter

PICTURE

Split

Cull

Textures

Backdoor

Page 11: Image Synthesis

computer graphics & visualization

Image Synthesis – WS 07/08Dr. Jens Krüger – Computer Graphics and Visualization Group

Design PrinciplesNatural coordinatesEach calculation should be donein a coordinate system that isnatural for that calculation.

Examples: • texturing is most naturally done in the coordinate system

of the local surface geometry (e.g., uv space for patches), • visible surface calculations are most naturally done in

pixel coordinates (screen space).

Page 12: Image Synthesis

computer graphics & visualization

Image Synthesis – WS 07/08Dr. Jens Krüger – Computer Graphics and Visualization Group

Design PrinciplesVectorizationEach calculation should be done in a coordinate system The architecture should be able to exploit vectorization, parallelism and pipelining. Calculations that are similar should be done together.

Example: • shading calculations are usually similar at all points on

a surface, an entire surface should be shaded at the same time.

Page 13: Image Synthesis

computer graphics & visualization

Image Synthesis – WS 07/08Dr. Jens Krüger – Computer Graphics and Visualization Group

Design PrinciplesCommon representation

Most of the algorithm should work with a single type of basic geometric object. All geometric primitives are turned into micropolygons, which are flat-shaded subpixel-sized quadrilaterals. All of the shading and visibility calculations are performed exclusively on micropolygons.

Page 14: Image Synthesis

computer graphics & visualization

Image Synthesis – WS 07/08Dr. Jens Krüger – Computer Graphics and Visualization Group

Design PrinciplesLinearity

The rendering time should grow linearly with the size of the model.

Large modelsThere should be no limit to the number of geometric primitives in a model.

Page 15: Image Synthesis

computer graphics & visualization

Image Synthesis – WS 07/08Dr. Jens Krüger – Computer Graphics and Visualization Group

Design PrinciplesLocality

• Geometric localityCalculations for a geometric primitive should be performed without reference to other geometric primitives. Procedural models should be computed only once and should not be kept in their expanded form any longer than necessary

• Texture localityOnly the textures currently needed should be in memory

Page 16: Image Synthesis

computer graphics & visualization

Image Synthesis – WS 07/08Dr. Jens Krüger – Computer Graphics and Visualization Group

The REYES AlgorithmInitialize the z buffer.For each geometric primitive in the model,

Read the primitive from the model fileIf the primitive can be bounded,

Bound the primitive in eye space.If the primitive is completely outside of the hither-you z range, cull it.If the primitive spans the epsilon plane and can be split,

Mark the primitive undieceable.Else

Convert the bounds to screen space.If the bounds are completely outside the viewing frustum, cull the primitive.

If the primitive can be diced, Dice the primitive into a grid of micropolygons.

Compute normals and tangent vectors for the micropolygons in the grid.Shade the micropolygons in the grid.Break the grid into micropolygons.For each micropolygon,

Bound the micropolygon in eye space.If the micropolygon is outside the hither-yon range, cull it.Convert the micropolygon to screen space.Bound the micropolygon in screen space.For each sample point inside the screen space bound,

If the sample point is inside the micropolygon,Calculate the z of the micropolygon at the sample point by interpolation.If the z at the sample point is less than the z in the buffer,

Replace the sample in the buffer with this sample.Else

Split the primitive into other geometric primitives.Put the new primitives at the head of the unread portion of the model file.

Filter the visible sample hits to produce pixels.Output the pixels.

MODEL

Read model

Bound

On screen?

Diceable?

Dice

Shade

Sample

Visibility

Filter

PICTURE

Split

Cull

Textures

Backdoor

Page 17: Image Synthesis

computer graphics & visualization

Image Synthesis – WS 07/08Dr. Jens Krüger – Computer Graphics and Visualization Group

Splitting / Dicing

Page 18: Image Synthesis

computer graphics & visualization

Image Synthesis – WS 07/08Dr. Jens Krüger – Computer Graphics and Visualization Group

Texture Mapping

Page 19: Image Synthesis

computer graphics & visualization

Image Synthesis – WS 07/08Dr. Jens Krüger – Computer Graphics and Visualization Group

Sampling

Page 20: Image Synthesis

computer graphics & visualization

Image Synthesis – WS 07/08Dr. Jens Krüger – Computer Graphics and Visualization Group

Clipping