1 / 20

Image Synthesis

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.”.

evita
Download Presentation

Image Synthesis

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Image Synthesis REYES Render Everything Your Eyes Ever Saw

  2. Motivation

  3. Motivation

  4. 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.”

  5. More Historic Images

  6. REYES …an architecture optimized for fasthigh-quality rendering of complex animated scenes • Fastbeing able to compute a feature-length film in approximately a year • High-Qualityvirtually indistinguishable from live action motion picture photography • Complexvisually rich as real scenes

  7. Assumptions • Model complexityscenes 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

  8. 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

  9. Assumptions cont. • FlexibilityMany 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.

  10. Design Principles • Natural coordinates • Vectorization • Common representation • Locality • Geometric • Texture • Linearity • Large models • Backdoor • Texture maps • Cull • Split • Textures • Backdoor

  11. Design Principles Natural coordinates Each 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).

  12. Design Principles Vectorization Each 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.

  13. Design Principles Common 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.

  14. Design Principles Linearity The rendering time should grow linearly with the size of the model. Large models There should be no limit to the number of geometric primitives in a model.

  15. Design Principles Locality • 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

  16. The REYES Algorithm Initialize the z buffer. For each geometric primitive in the model, Read the primitive from the model file If 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. • Cull • Split • Textures • Backdoor

  17. Splitting / Dicing

  18. Texture Mapping

  19. Sampling

  20. Clipping

More Related