Overview of computer image generation - lorentzo/IntroductionToComputerGraphics GitHub Wiki

Introduction

In this chapter, students will be introduced with the big picture of computer image generation. This way it will be easier to dive into each topic specifically. Furthermore, in this chapter, student will be introduced with project and after this chapter they will be able to start with research and development of projects they decided on.

Image generation process relies on three main ingredients:

  • 3D scene
  • Rendering algorithm
  • Display device: raster image

Those elements are intertwined:

  • rendering algorithm must understand how 3D scene is represented
  • 3D scene can be defined only with what is understood by rendering algorithm

Image generation software often has two main parts:

  • modeler - part of the software where 3D scene is defined
  • renderer - part of the software were 3D scene is used to form an image

Renderer-modeler interaction is enabled through specified interface, API.

3D scene

  • Elements that make up virtual environment from which image is generated
    • cameras; simple camera model: pinhole
    • lights; simple light model: point light
    • models/objects: triangulated mesh with simple material
  • How is a 3D scene made
    • Modeling software: Blender, Maya, Max, Houdini

Rendering

  • Process of producing an image from the description of a 3D scene
    • Calculating color of pixels in raster image based on light-matter interaction of visible objects in the scene
  • General rendering steps:
    • perspective projection
    • visibility
    • light transport
    • shading
  • Note that certain operations in rendering can not be so easily classified in one of the existing groups. Rendering term is also used to cover those operations (e.g., motion blur)
  • Practical rendering implementations:
    • raytracing software
    • rasterization (Graphics pipeline on GPU) software

Image

  • Computers are discrete and produce raster images: array of pixels - quantization and approximation
  • Image manipulation software

Image generation: an intuition

  • World is three-dimensional (another dimension is time, which we will cover bit later)
  • Using our vision (stereoscopic, foreshortening) we are able to sense the environment -> form images
  • We can not distinguish looking at image/mirror and actual world
  • CG is a tool to create:
    • Virtual 3D world
    • Images of 3D worlds to present to our visual system
  • Often goal is to make photo-realistic images but expressive and non-photorealisic graphics is also very much developed
  • To describe a virtual world - a scene - we need:
    • Coordinate system. One main called the "world" with origin in (0,0,0). All other elements in the scene are placed in this coordinate system
    • Way to represent an object in the scene; for example a box, we start by placing points of corners - vertices - in this world coordinate system. How those vertices (geometry) are connected is determined by topology. Topology defines how vertices are connected to form faces - generally speaking polygons; polygon meshes
  • To create an image of a virtual world we need:
    • Canvas - image plane on which image is formed
    • Viewing frustum and thus perspective projection
    • Tracing lines from eye through image plane into world is a way to create an image (Durer machine)
    • This process is called rendering
  • CG is applied mathematics (especially geometry) where computers are used to solve calculations needed to form images in reasonable time
  • Important field of CG is Modeling which is dedicated to creating 3D models in a virtual world
  • Another important field of CG is Animation which is dedicated to moving 3D models in a virtual world - time component
  • Animation and modeling can be also done using physical or mathematical models to produce elements of a scene such as fluids (water, smoke), hair, rigid bodies, growth, etc.
  • Rendering is much more to what we have seen for now. Due its complexity it is often separated into real-time (games, > 30fps) and offline rendering (animated film). GPU is dedicated to create real-time graphics. As time passes, border between real-time and offline is blued.

Literature: https://www.scratchapixel.com/lessons/3d-basic-rendering/get-started

Minimal image generation example

Creation of 3D scene and rendering

Outcomes

  • Three main components of image generation
  • Understanding basics of 3D scene, rendering and image
  • 3D scene, rendering and image software support

Literature: