Jump to content

Rasterisation: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
mNo edit summary
Common use.
Line 3: Line 3:
'''Rasterization''' (or '''rasterisation''') is the task of taking an image described in a [[vector graphics]] format (shapes) and converting it into a [[raster image]] (a series of [[pixel]]s, dots or lines, which, when displayed together, create the image which was represented via shapes).<ref name="Worboys1995">{{cite book|author=Michael F. Worboys|title=GIS: A Computer Science Perspective|url=https://books.google.com/books?id=duT2fcnQeJMC&pg=PA232|date=30 October 1995|publisher=CRC Press|isbn=978-0-7484-0065-2|pages=232–}}</ref><ref name="Chang2007">{{cite book|author=Kang-Tsung Chang|title=Programming ArcObjects with VBA: A Task-Oriented Approach, Second Edition|url=https://books.google.com/books?id=1DOY9xuxcosC&pg=PA91|date=27 August 2007|publisher=CRC Press|isbn=978-1-4200-0918-7|pages=91–}}</ref> The rasterised image may then be displayed on a [[computer display]], [[video display]] or [[computer printer|printer]], or stored in a [[bitmap]] file format. Rasterisation may refer to the technique of drawing [[3D model (computer graphics)|3D model]]s, or the conversion of 2D [[rendering primitive]]s such as [[polygon]]s, [[line segment]]s into a rasterized format.
'''Rasterization''' (or '''rasterisation''') is the task of taking an image described in a [[vector graphics]] format (shapes) and converting it into a [[raster image]] (a series of [[pixel]]s, dots or lines, which, when displayed together, create the image which was represented via shapes).<ref name="Worboys1995">{{cite book|author=Michael F. Worboys|title=GIS: A Computer Science Perspective|url=https://books.google.com/books?id=duT2fcnQeJMC&pg=PA232|date=30 October 1995|publisher=CRC Press|isbn=978-0-7484-0065-2|pages=232–}}</ref><ref name="Chang2007">{{cite book|author=Kang-Tsung Chang|title=Programming ArcObjects with VBA: A Task-Oriented Approach, Second Edition|url=https://books.google.com/books?id=1DOY9xuxcosC&pg=PA91|date=27 August 2007|publisher=CRC Press|isbn=978-1-4200-0918-7|pages=91–}}</ref> The rasterised image may then be displayed on a [[computer display]], [[video display]] or [[computer printer|printer]], or stored in a [[bitmap]] file format. Rasterisation may refer to the technique of drawing [[3D model (computer graphics)|3D model]]s, or the conversion of 2D [[rendering primitive]]s such as [[polygon]]s, [[line segment]]s into a rasterized format.


==Rasterisation of 3D images==
==Rasterization of 3D images==
Rasterisation is one of the typical techniques of rendering 3D models. Compared with other rendering techniques such as [[Ray tracing (graphics)|ray tracing]], rasterisation is extremely fast and therefore used in most realtime 3D engines. However, rasterisation is simply the process of computing the mapping from scene geometry to pixels and does not prescribe a particular way to compute the color of those pixels. The specific color of each pixel is assigned by [[shading]] (which in modern GPUs is completely [[Shading language|programmable]]). Shading may be based on physical laws, their approximations or purely artistic intent.
Rasterization is one of the typical techniques of rendering 3D models. Compared with other rendering techniques such as [[Ray tracing (graphics)|ray tracing]], rasterization is extremely fast and therefore used in most realtime 3D engines. However, rasterization is simply the process of computing the mapping from scene geometry to pixels and does not prescribe a particular way to compute the color of those pixels. The specific color of each pixel is assigned by [[shading]] (which in modern GPUs is completely [[Shading language|programmable]]). Shading may be based on physical laws, their approximations or purely artistic intent.


The process of rasterising 3D models onto a 2D plane for display on a [[computer screen]] ("[[screen space]]") is often carried out by fixed function (non-programmable) hardware within the [[graphics pipeline]]. This is because there is no motivation for modifying the techniques for rasterisation used at render time{{clarification needed|date=August 2016}} and a special-purpose system allows for high efficiency.
The process of rasterizing 3D models onto a 2D plane for display on a [[computer screen]] ("[[screen space]]") is often carried out by fixed function (non-programmable) hardware within the [[graphics pipeline]]. This is because there is no motivation for modifying the techniques for rasterization used at render time{{clarification needed|date=August 2016}} and a special-purpose system allows for high efficiency.


=== Triangle rasterization ===
=== Triangle rasterization ===
Line 33: Line 33:
* [[Image tracing]]
* [[Image tracing]]
* [[Hidden surface determination]]
* [[Hidden surface determination]]
* [[Bresenham's line algorithm]] for a typical method in rasterisation
* [[Bresenham's line algorithm]] for a typical method in rasterization
* [[Scanline rendering]] for line-by-line rasterisation
* [[Scanline rendering]] for line-by-line rasterization
* [[Rendering (computer graphics)]] for more general information
* [[Rendering (computer graphics)]] for more general information
* [[Graphics pipeline]] for rasterisation in commodity graphics hardware
* [[Graphics pipeline]] for rasterization in commodity graphics hardware
* [[Raster image processor]] for 2D rasterisation in printing systems
* [[Raster image processor]] for 2D rasterization in printing systems
* [[Vector graphics]] for the source art
* [[Vector graphics]] for the source art
* [[Raster graphics]] for the result
* [[Raster graphics]] for the result

Revision as of 20:52, 9 June 2021

raster graphic image

Rasterization (or rasterisation) is the task of taking an image described in a vector graphics format (shapes) and converting it into a raster image (a series of pixels, dots or lines, which, when displayed together, create the image which was represented via shapes).[1][2] The rasterised image may then be displayed on a computer display, video display or printer, or stored in a bitmap file format. Rasterisation may refer to the technique of drawing 3D models, or the conversion of 2D rendering primitives such as polygons, line segments into a rasterized format.

Rasterization of 3D images

Rasterization is one of the typical techniques of rendering 3D models. Compared with other rendering techniques such as ray tracing, rasterization is extremely fast and therefore used in most realtime 3D engines. However, rasterization is simply the process of computing the mapping from scene geometry to pixels and does not prescribe a particular way to compute the color of those pixels. The specific color of each pixel is assigned by shading (which in modern GPUs is completely programmable). Shading may be based on physical laws, their approximations or purely artistic intent.

The process of rasterizing 3D models onto a 2D plane for display on a computer screen ("screen space") is often carried out by fixed function (non-programmable) hardware within the graphics pipeline. This is because there is no motivation for modifying the techniques for rasterization used at render time[clarification needed] and a special-purpose system allows for high efficiency.

Triangle rasterization

rasterizing triangles using the top-left rule

A common representation of digital 3D models is polygonal. Before rasterization, individual polygons are broken down into triangles, therefore a typical problem to solve in 3D rasterization is rasterization of a triangle. Properties that are usually required from triangle rasterization algorithms are that rasterizing two adjacent triangles (i.e. those that share an edge)

  1. leaves no holes (non-rasterized pixels) between the triangles, so that the rasterized area is completely filled (just as the surface of adjacent triangles). And
  2. no pixel is rasterized more than once, i.e. the rasterized triangles don't overlap. This is to guarantee that the result doesn't depend on the order in which the triangles are rasterized. Overdrawing pixels can also mean wasting computing power on pixels that would be overwritten.

This leads to establishing rasterization rules to guarantee the above conditions. One set of such rules is called a top-left rule, which states that a pixel is rasterized if and only if

  1. its center lies completely inside the triangle. Or
  2. its center lies exactly on the triangle edge (or multiple edges in case of corners) that is (or, in case of corners, all are) either top or left edge.

A top edge is an edge that is exactly horizontal and lies above other edges, and a left edge is a non-horizontal edge that is on the left side of the triangle.

This rule is implemented e.g. by Direct3D[3] and many OpenGL implementations (even though the specification doesn't define it and only requires a consistent rule[4]).

Quality

Pixel (left) vs sub-pixel (right) precision

The quality of rasterization can be improved by antialiasing, which creates "smooth" edges. Sub-pixel precision is a method which takes into account positions on a finer scale than the pixel grid and can produce different results even if the endpoints of a primitive fall into same pixel coordinates, producing smoother movement animations. Simple or older hardware, such as PlayStation 1, lacked sub-pixel precision in 3D rasterization.[5]

See also

References

  1. ^ Michael F. Worboys (30 October 1995). GIS: A Computer Science Perspective. CRC Press. pp. 232–. ISBN 978-0-7484-0065-2.
  2. ^ Kang-Tsung Chang (27 August 2007). Programming ArcObjects with VBA: A Task-Oriented Approach, Second Edition. CRC Press. pp. 91–. ISBN 978-1-4200-0918-7.
  3. ^ "Rasterization Rules (Direct3D 9)". Microsoft Docs. Retrieved 19 April 2020.
  4. ^ OpenGL 4.6 (PDF). p. 478.
  5. ^ "PlayStation rasterization issues". Libretro. Retrieved 19 April 2020.