You get a bonus - 1 coin for daily activity. Now you have 1 coin

Hardware - Rendering (Computer Graphics)

Lecture



Это окончание невероятной информации про рендеринг .

...

light – within a scene.

Bidirectional Reflectance Distribution Function

The bidirectional reflectance distribution function (BRDF) expresses a simple model of the interaction of light with a surface as follows:

Rendering (Computer Graphics)

The interaction of light is often approximated by even simpler models: diffuse reflection and specular reflection, although both models can ALSO be BRDFs.

Geometric Optics

Rendering is almost entirely concerned with the particle aspect of the physics of light, known as geometric optics. Treating light at its basic level as particles bouncing off one another is a simplification, but an appropriate one: the wave aspects of light are negligible in most scenes and are considerably more difficult to model. Known phenomena of the wave aspect include diffraction (as seen in the colors of compact discs and DVDs) and polarization (as seen on LCD displays). Both types of effect, where necessary, are created by adjusting the reflection model oriented toward appearance.

Visual Perception

Although it receives less attention, understanding human visual perception is valuable for rendering. This is mainly because image displays and human perception have limited ranges. A renderer can simulate a wide range of light brightness and color, but modern displays — a cinema screen, a computer monitor, etc. — cannot handle such a range, and something must be discarded or compressed. Human perception also has limitations, and therefore does not need to be given a wide-range image in order to achieve realism. This can help solve the problem of fitting images to displays and, moreover, suggest which shortcuts can be used in rendering modeling, since certain subtleties will not be noticeable. This related topic is tone compression.

Sampling and Filtering

One of the problems that any rendering system must face, regardless of which approach it uses, is the sampling problem. Essentially, the rendering process attempts to depict a continuous function from image space to colors using a finite number of pixels. As a consequence of the Nyquist-Shannon sampling theorem (or the Kotelnikov theorem), any spatial waveform that can be displayed must consist of at least two pixels, which is proportional to the image resolution. Put simply, this expresses the idea that an image cannot display details, peaks, or troughs in color or intensity that are smaller than one pixel.

If a naive rendering algorithm is used without any filtering, high frequencies in the image function will result in ugly aliasing in the final image. Aliasing typically manifests as unevenness or jagged edges on objects, where the pixel grid becomes visible. To remove aliasing, all rendering algorithms (if they are to produce attractive images) must apply some low-pass filter to the image function to remove high frequencies, a process called anti-aliasing.

Hardware

Rendering is usually limited by available computing power and memory bandwidth, so specialized hardware has been developed to accelerate it («acceleration»), especially for real-time rendering. Hardware features such as a frame buffer for raster graphics are necessary for the smooth display of real-time rendering output.

History

In the era of vector monitors (also called calligraphic displays), the display processing unit (DPU) was a specialized CPU or coprocessor that maintained a list of visual elements and continuously redrew them on the screen by steering an electron beam. Advanced DPUs, such as the Line Drawing System-1 by Evans & Sutherland (and later models released in the 1980s), included three-dimensional coordinate transformation functions to accelerate the rendering of wireframe images. Evans & Sutherland also created a projection system for the Digistar planetarium, which was a vector display capable of showing both stars and wireframe graphics (the vector Digistar and Digistar II were used in many planetariums, and some of them may still be in operation). A Digistar prototype was used to render 3D star fields for the film «Star Trek II: The Wrath of Khan» — among the first 3D computer-graphics sequences ever shown in a feature film.

In the 1970s and early 1980s, shaded 3D graphics rendering was typically implemented on general-purpose computers, such as the PDP-10, used by researchers at the University of Utah. It was difficult to accelerate with specialized hardware, since it involves a pipeline of complex steps requiring addressing of data, decision-making, and computational capabilities usually provided only by central processing units (although special circuits were proposed for accelerating certain operations). Supercomputers or specially designed multiprocessor computers or clusters were sometimes used for ray tracing. In 1981, James H. Clark and Marc Hannah developed the Geometry Engine, a VLSI chip for performing some steps of the 3D rasterization pipeline, and founded Silicon Graphics (SGI) to commercialize this technology.

Home computers and game consoles in the 1980s contained graphics coprocessors capable of scrolling and filling areas of the display, as well as drawing sprites and lines, although they were not useful for rendering realistic images. By the end of the 1980s, PC video cards and arcade games with 3D rendering acceleration began to appear, and by the 1990s such technology had become commonplace. Today even low-power mobile processors typically include 3D graphics acceleration features.

Graphics processing units

The 3D graphics accelerators of the 1990s evolved into modern graphics processing units. GPUs are general-purpose processors, like central processing units, but they are designed for tasks that can be broken down into many small, similar, largely independent subtasks (such as rendering individual pixels) and executed in parallel. This means a GPU can accelerate any rendering algorithm that can be broken down into subtasks in this way, unlike the 3D accelerators of the 1990s, which were designed to accelerate only certain rasterization algorithms and simple shading and lighting effects (although tricks could be used to perform more general computations).

Because of their origins, GPUs generally still provide specialized hardware acceleration for some stages of the traditional 3D rasterization pipeline, including hidden surface removal using a z-buffer and texture mapping with MIP maps, though these features are no longer always used. Modern GPUs have features to accelerate finding intersections of rays with a bounding volume hierarchy, to help speed up all variants of ray tracing and path tracing, as well as neural network acceleration features, which are sometimes useful for rendering.

GPUs are usually integrated with high-bandwidth memory systems to support the read and write bandwidth requirements of real-time high-resolution rendering, especially when rendering a frame requires multiple passes, though memory latency can be higher than for a central processing unit, which can be a problem if the critical path in an algorithm involves many memory accesses. GPU design accepts high latency as inevitable (partly because a large number of threads share a memory bus) and attempts to "hide" it by efficiently switching between threads, so that another thread can perform computations while the first thread waits for a read or write to complete.

Rendering algorithms will run efficiently on a GPU only if they can be implemented using small groups of threads that perform mostly the same operations. Here is an example that meets this requirement: when rendering a small square of pixels in a simple ray-traced image, all the threads are likely to intersect rays with the same object and perform the same lighting calculations. For performance and architectural reasons, GPUs run groups of roughly 16-64 threads, called warps or wavefronts, in lock-step (all threads in the group execute the same instructions simultaneously). If not all threads in a group need to run certain blocks of code (due to conditions), then some threads will sit idle, or the results of their computations will be discarded, leading to reduced performance.

Timeline of algorithms and techniques

Below is an approximate timeline of frequently mentioned rendering techniques, including areas of ongoing research. Note that even in cases where an idea was mentioned in a specific paper, there were almost always several researchers or groups working in the same area (including earlier related work). When a method is first proposed, it is often very inefficient, and further research and practical effort are required to turn it into a useful technique.

The list focuses on academic research and does not include hardware. (For a more detailed history, see the External links section, as well as the Computer graphics#History and Golden_age_of_arcade_video_games#Technology sections.)

  • 1760 - Lambertian reflectance model
  • 1967 - Torrance-Sparrow reflectance model
  • 1968 - Ray casting
  • 1968 - Warnock, hidden surface removal
  • 1970 - Scanline rendering
  • 1971 - Gouraud shading
  • 1973 — Phong shading
  • 1973 - Phong reflectance model
  • 1974 - Texture mapping
  • 1974 - Z-buffering
  • 1976 - Environment mapping
  • 1977 - Blinn-Phong reflectance model
  • 1977 - Shadow volumes
  • 1978 - Shadow mapping
  • 1978 - Bump mapping
  • 1980 - BSP trees
  • 1980 - Ray tracing
  • 1981 - Cook-Torrance reflectance model
  • 1983 - MIP maps
  • 1984 - Octree ray tracing
  • 1984 - Alpha compositing
  • 1984 - Distributed ray tracing
  • 1984 - Radiosity (method for nontrivial scenes in 1985)
  • 1984 - A-buffer
  • 1985 - Hemicube radiosity
  • 1986 - Light source tracing
  • 1986 - Rendering equation
  • 1986 - Path tracing
  • 1987 - Reyes rendering
  • 1991 - Xiaolin Wu's line antialiasing
  • 1991 - Hierarchical radiosity
  • 1993 - Oren–Nayar reflectance model
  • 1993 - Tone mapping
  • 1993 - Subsurface scattering
  • 1993 - Bidirectional path tracing (Lafortune and Willems formulation)
  • 1994 - Ambient occlusion
  • 1995 - Photon mapping
  • 1995 - Multiple importance sampling
  • 1997 - Bidirectional path tracing (Veach and Guibas formulation)
  • 1997 - Metropolis light transport
  • 1997 - Instant radiosity
  • 2002 - Precomputed radiance transfer
  • 2003 - MERL BRDF database
  • 2014 - Differentiable rendering
  • 2017 - Path guiding (using an adaptive SD-tree)
  • 2020 - Spatiotemporal reservoir resampling (ReSTIR)
  • 2020 - Neural radiance fields
  • 2023 - 3D Gaussian splatting

See also

  • [[b12815]]
  • [[b12813]]
  • [[b12814]]
  • [[b12722]]
  • 2D computer graphics – computer generation of digital images
  • 3D computer graphics – graphics that use a three-dimensional representation of geometric data
  • 3D rendering – process of converting 3D scenes into 2D images
  • Artistic rendering – A style of rendering
  • Architectural visualization – creation of two-dimensional images or animations showing the attributes of a proposed architectural design
  • Chromatic aberration — failure of a lens to focus all colors to the same point
  • Displacement mapping – computer graphics technique
  • Font rasterization – process of converting text from vector to raster form
  • Global illumination – a group of rendering algorithms used in three-dimensional computer graphics
  • Graphics pipeline – Procedure for converting 3D scenes into 2D images
  • Height map – a type of raster image used in computer graphics
  • High-dynamic-range rendering – rendering of computer graphics scenes using lighting calculations performed in high dynamic range
  • Image-based modeling and rendering
  • List of 3D rendering software
  • Motion blur – photographic artifacts caused by moving objects
  • Non-photorealistic rendering – A style of rendering
  • Normal mapping – A texture mapping technique
  • Painter's algorithm – Algorithm for determining visible surfaces in 3D graphics
  • Per-pixel lighting
  • Physically based rendering – A computer graphics technique
  • Preprocessing — a process in which video material is not processed in real time
  • Raster image processor – a component used in a printing system that generates a raster image, also known as a bitmap
  • Radiosity – a computer graphics rendering method using diffuse reflection
  • Ray tracing – A rendering method
  • Real-time computer graphics – A subfield of computer graphics
  • Reyes – A software architecture in three-dimensional computer graphics
  • Scanline rendering/Scanline algorithm – a method for rendering 3D computer graphics images
  • Software rendering – creation of images using computer software
  • Sprite (computer graphics) – a two-dimensional raster image displayed within a larger scene
  • Unbiased rendering – A type of rendering in computer graphics
  • Vector graphics – computer graphic images defined by points, lines, and curves
  • VirtualGL
  • Virtual model – A form of computer-aided design
  • Virtual studio – Technologies for television and film production
  • Volume rendering – representation of a three-dimensional object or dataset as a two-dimensional projection
  • Z-buffer algorithms – A type of data buffer in computer graphics

Продолжение:


Часть 1 Rendering (Computer Graphics)
Часть 2 Hardware - Rendering (Computer Graphics)

Comments

To leave a comment

If you have any suggestion, idea, thanks or comment, feel free to write. We really value feedback and are glad to hear your opinion.
To reply

Lectures and tutorial on "computer graphics"

Terms: computer graphics