rendering computer graphics for 3dimensional rendering see 3d rendering for rendering of html see browser engine a variety of rendering techniques applied to a single 3d scene an image created by using povray 36 rendering or image synthesis is the automatic process of generating a photorealistic or nonphotorealistic image from a 2d or 3d model or models in what collectively could be called a scene file by means of computer programs also the results of displaying such a model can be called a render a scene file contains objects in a strictly defined language or data structure it would contain geometry viewpoint texture lighting and shading information as a description of the virtual scene the data contained in the scene file is then passed to a rendering program to be processed and output to a digital image or raster graphics image file the term rendering may be by analogy with an artists rendering of a scene though the technical details of rendering methods vary the general challenges to overcome in producing a 2d image from a 3d representation stored in a scene file are outlined as the graphics pipeline along a rendering device such as a gpu a gpu is a purposebuilt device able to assist a cpu in performing complex rendering calculations if a scene is to look relatively realistic and predictable under virtual lighting the rendering software should solve the rendering equation the rendering equation doesnt account for all lighting phenomena but is a general lighting model for computergenerated imagery rendering is also used to describe the process of calculating effects in a video editing program to produce final video output rendering is one of the major subtopics of 3d computer graphics and in practice is always connected to the others in the graphics pipeline it is the last major step giving the final appearance to the models and animation with the increasing sophistication of computer graphics since the 1970s it has become a more distinct subject rendering has uses in architecture video games simulators movie or tv visual effects and design visualization each employing a different balance of features and techniques as a product a wide variety of renderers are available some are integrated into larger modeling and animation packages some are standalone some are free opensource projects on the inside a renderer is a carefully engineered program based on a selective mixture of disciplines related to light physics visual perception mathematics and software development in the case of 3d graphics rendering may be done slowly as in prerendering or in realtime prerendering is a computationally intensive process that is typically used for movie creation while realtime rendering is often done for 3d video games which rely on the use of graphics cards with 3d hardware accelerators usage when the preimage a wireframe sketch usually is complete rendering is used which adds in bitmap textures or procedural textures lights bump mapping and relative position to other objects the result is a completed image the consumer or intended viewer sees for movie animations several images frames must be rendered and stitched together in a program capable of making an animation of this sort most 3d image editing programs can do this features a rendered image can be understood in terms of a number of visible features rendering research and development has been largely motivated by finding ways to simulate these efficiently some relate directly to particular algorithms and techniques while others are produced together shading how the color and brightness of a surface varies with lighting texturemapping a method of applying detail to surfaces bumpmapping a method of simulating smallscale bumpiness on surfaces foggingparticipating medium how light dims when passing through nonclear atmosphere or air shadows the effect of obstructing light soft shadows varying darkness caused by partially obscured light sources reflection mirrorlike or highly glossy reflection transparency optics transparency graphic or opacity sharp transmission of light through solid objects translucency highly scattered transmission of light through solid objects refraction bending of light associated with transparency diffraction bending spreading and interference of light passing by an object or aperture that disrupts the ray indirect illumination surfaces illuminated by light reflected off other surfaces rather than directly from a light source also known as global illumination caustics a form of indirect illumination reflection of light off a shiny object or focusing of light through a transparent object to produce bright highlights on another object depth of field objects appear blurry or out of focus when too far in front of or behind the object in focus motion blur objects appear blurry due to highspeed motion or the motion of the camera nonphotorealistic rendering rendering of scenes in an artistic style intended to look like a painting or drawing techniques many rendering algorithms have been researched and software used for rendering may employ a number of different techniques to obtain a final image tracing every particle of light in a scene is nearly always completely impractical and would take a stupendous amount of time even tracing a portion large enough to produce an image takes an inordinate amount of time if the sampling is not intelligently restricted therefore a few loose families of moreefficient light transport modelling techniques have emerged rasterization including scanline rendering geometrically projects objects in the scene to an image plane without advanced optical effects ray casting considers the scene as observed from a specific point of view calculating the observed image based only on geometry and very basic optical laws of reflection intensity and perhaps using monte carlo techniques to reduce artifacts ray tracing is similar to ray casting but employs more advanced optical simulation and usually uses monte carlo techniques to obtain more realistic results at a speed that is often orders of magnitude faster the fourth type of light transport technique radiosity is not usually implemented as a rendering technique but instead calculates the passage of light as it leaves the light source and illuminates surfaces these surfaces are usually rendered to the display using one of the other three techniques most advanced software combines two or more of the techniques to obtain goodenough results at reasonable cost another distinction is between image order algorithms which iterate over pixels of the image plane and object order algorithms which iterate over objects in the scene generally object order is more efficient as there are usually fewer objects in a scene than pixels scanline rendering and rasterisation rasterisation rendering of the european extremely large telescope a highlevel representation of an image necessarily contains elements in a different domain from pixels these elements are referred to as primitives in a schematic drawing for instance line segments and curves might be primitives in a graphical user interface windows and buttons might be the primitives in rendering of 3d models triangles and polygons in space might be primitives if a pixelbypixel image order approach to rendering is impractical or too slow for some task then a primitivebyprimitive object order approach to rendering may prove useful here one loops through each of the primitives determines which pixels in the image it affects and modifies those pixels accordingly this is called rasterization and is the rendering method used by all current graphics cards rasterization is frequently faster than pixelbypixel rendering first large areas of the image may be empty of primitives rasterization will ignore these areas but pixelbypixel rendering must pass through them second rasterization can improve cache coherency and reduce redundant work by taking advantage of the fact that the pixels occupied by a single primitive tend to be contiguous in the image for these reasons rasterization is usually the approach of choice when interactive rendering is required however the pixelbypixel approach can often produce higherquality images and is more versatile because it does not depend on as many assumptions about the image as rasterization the older form of rasterization is characterized by rendering an entire face primitive as a single color alternatively rasterization can be done in a more complicated manner by first rendering the vertices of a face and then rendering the pixels of that face as a blending of the vertex colors this version of rasterization has overtaken the old method as it allows the graphics to flow without complicated textures a rasterized image when used face by face tends to have a very blocklike effect if not covered in complex textures the faces are not smooth because there is no gradual color change from one primitive to the next this newer method of rasterization utilizes the graphics cards more taxing shading functions and still achieves better performance because the simpler textures stored in memory use less space sometimes designers will use one rasterization method on some faces and the other method on others based on the angle at which that face meets other joined faces thus increasing speed and not hurting the overall effect ray casting ray casting in ray casting the geometry which has been modeled is parsed pixel by pixel line by line from the point of view outward as if casting rays out from the point of view where an object is intersected the color value at the point may be evaluated using several methods in the simplest the color value of the object at the point of intersection becomes the value of that pixel the color may be determined from a texturemap a more sophisticated method is to modify the colour value by an illumination factor but without calculating the relationship to a simulated light source to reduce artifacts a number of rays in slightly different directions may be averaged ray casting involves calculating the view direction from camera position and incrementally following along that ray cast through solid 3d objects in the scene while accumulating the resulting value from each point in 3d space this is related and similar to ray tracing except that the raycast is usually not bounced off surfaces where the ray tracing indicates that it is tracing out the lights path including bounces ray casting implies that the light ray is following a straight path which may include travelling through semitransparent objects the ray cast is a vector that can originate from the camera or from the scene endpoint back to front or front to back sometimes the final light value is a derived from a transfer function and sometimes its used directly rough simulations of optical properties may be additionally employed a simple calculation of the ray from the object to the point of view is made another calculation is made of the angle of incidence of light rays from the light sources and from these as well as the specified intensities of the light sources the value of the pixel is calculated another simulation uses illumination plotted from a radiosity algorithm or a combination of these two ray tracing spiral sphere and julia detail a computergenerated image created by visual artist robert w mcgregor using only povray 36 and its builtin scene description language ray tracing graphics ray tracing aims to simulate the natural flow of light interpreted as particles often ray tracing methods are utilized to approximate the solution to the rendering equation by applying monte carlo methods to it some of the most used methods are path tracing bidirectional path tracing or metropolis light transport but also semi realistic methods are in use like whitted style ray tracing or hybrids while most implementations let light propagate on straight lines applications exist to simulate relativistic spacetime effects in a final production quality rendering of a ray traced work multiple rays are generally shot for each pixel and traced not just to the first object of intersection but rather through a number of sequential bounces using the known laws of optics such as angle of incidence equals angle of reflection and more advanced laws that deal with refraction and surface roughness once the ray either encounters a light source or more probably once a set limiting number of bounces has been evaluated then the surface illumination at that final point is evaluated using techniques described above and the changes along the way through the various bounces evaluated to estimate a value observed at the point of view this is all repeated for each sample for each pixel in distribution ray tracing at each point of intersection multiple rays may be spawned in path tracing however only a single ray or none is fired at each intersection utilizing the statistical nature of monte carlo experiments as a bruteforce method ray tracing has been too slow to consider for realtime and until recently too slow even to consider for short films of any degree of quality although it has been used for special effects sequences and in advertising where a short portion of high quality perhaps even photorealistic footage is required however efforts at optimizing to reduce the number of calculations needed in portions of a work where detail is not high or does not depend on ray tracing features have led to a realistic possibility of wider use of ray tracing there is now some hardware accelerated ray tracing equipment at least in prototype phase and some game demos which show use of realtime software or hardware ray tracing radiosity radiosity computer graphics radiosity is a method which attempts to simulate the way in which directly illuminated surfaces act as indirect light sources that illuminate other surfaces this produces more realistic shading and seems to better capture the ambience of an indoor scene a classic example is the way that shadows hug the corners of rooms the optical basis of the simulation is that some diffused light from a given point on a given surface is reflected in a large spectrum of directions and illuminates the area around it the simulation technique may vary in complexity many renderings have a very rough estimate of radiosity simply illuminating an entire scene very slightly with a factor known as ambiance however when advanced radiosity estimation is coupled with a high quality ray tracing algorithm images may exhibit convincing realism particularly for indoor scenes in advanced radiosity simulation recursive finiteelement algorithms bounce light back and forth between surfaces in the model until some recursion limit is reached the colouring of one surface in this way influences the colouring of a neighbouring surface and vice versa the resulting values of illumination throughout the model sometimes including for empty spaces are stored and used as additional inputs when performing calculations in a raycasting or raytracing model due to the iterativerecursive nature of the technique complex objects are particularly slow to emulate prior to the standardization of rapid radiosity calculation some digital artists used a technique referred to loosely as false radiosity by darkening areas of texture maps corresponding to corners joints and recesses and applying them via selfillumination or diffuse mapping for scanline rendering even now advanced radiosity calculations may be reserved for calculating the ambiance of the room from the light reflecting off walls floor and ceiling without examining the contribution that complex objects make to the radiosityor complex objects may be replaced in the radiosity calculation with simpler objects of similar size and texture radiosity calculations are viewpoint independent which increases the computations involved but makes them useful for all viewpoints if there is little rearrangement of radiosity objects in the scene the same radiosity data may be reused for a number of frames making radiosity an effective way to improve on the flatness of ray casting without seriously impacting the overall rendering timeperframe because of this radiosity is a prime component of leading realtime rendering methods and has been used from beginningtoend to create a large number of wellknown recent featurelength animated 3dcartoon films sampling and filtering one problem that any rendering system must deal with no matter which approach it takes is the sampling problem essentially the rendering process tries to depict a continuous function from image space to colors by using a finite number of pixels as a consequence of the nyquistshannon sampling theorem or kotelnikov theorem any spatial waveform that can be displayed must consist of at least two pixels which is proportional to image resolution in simpler terms 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 cause ugly aliasing to be present in the final image aliasing typically manifests itself as jaggies or jagged edges on objects where the pixel grid is visible in order to remove aliasing all rendering algorithms if they are to produce goodlooking images must use some kind of lowpass filter on the image function to remove high frequencies a process called antialiasing optimization due to the large number of calculations a work in progress is usually only rendered in detail appropriate to the portion of the work being developed at a given time so in the initial stages of modeling wireframe and ray casting may be used even where the target output is ray tracing with radiosity it is also common to render only parts of the scene at high detail and to remove objects that are not important to what is currently being developed for realtime it is appropriate to simplify one or more common approximations and tune to the exact parameters of the scenery in question which is also tuned to the agreed parameters to get the most bang for the buck academic core unbiased rendering the implementation of a realistic renderer always has some basic element of physical simulation or emulation some computation which resembles or abstracts a real physical process the term physically based indicates the use of physical models and approximations that are more general and widely accepted outside rendering a particular set of related techniques have gradually become established in the rendering community the basic concepts are moderately straightforward but intractable to calculate and a single elegant algorithm or approach has been elusive for more general purpose renderers in order to meet demands of robustness accuracy and practicality an implementation will be a complex combination of different techniques rendering research is concerned with both the adaptation of scientific models and their efficient application the rendering equation rendering equation this is the key academictheoretical concept in rendering it serves as the most abstract formal expression of the nonperceptual aspect of rendering all more complete algorithms can be seen as solutions to particular formulations of this equation l o x w l e x w f r x w w l i x w w n d w displaystyle loxvec wlexvec wint omega frxvec wvec wlixvec wvec wcdot vec nmathrm d vec w meaning at a particular position and direction the outgoing light lo is the sum of the emitted light le and the reflected light the reflected light being the sum of the incoming light li from all directions multiplied by the surface reflection and incoming angle by connecting outward light to inward light via an interaction point this equation stands for the whole light transport all the movement of light in a scene the bidirectional reflectance distribution function the bidirectional reflectance distribution function brdf expresses a simple model of light interaction with a surface as follows f r x w w d l r x w l i x w w n d w displaystyle frxvec wvec wfrac mathrm d lrxvec wlixvec wvec wcdot vec nmathrm d vec w light interaction is often approximated by the even simpler models diffuse reflection and specular reflection although both can also be brdfs geometric optics rendering is practically exclusively concerned with the particle aspect of light physics known as geometrical optics treating light at its basic level as particles bouncing around is a simplification but appropriate the wave aspects of light are negligible in most scenes and are significantly more difficult to simulate notable wave aspect phenomena include diffraction as seen in the colours of cds and dvds and polarisation as seen in lcds both types of effect if needed are made by appearanceoriented adjustment of the reflection model visual perception though it receives less attention an understanding of human visual perception is valuable to rendering this is mainly because image displays and human perception have restricted ranges a renderer can simulate an almost infinite range of light brightness and color but current displays movie screen computer monitor etc cannot handle so much and something must be discarded or compressed human perception also has limits and so does not need to be given largerange images to create realism this can help solve the problem of fitting images into displays and furthermore suggest what shortcuts could be used in the rendering simulation since certain subtleties wont be noticeable this related subject is tone mapping mathematics used in rendering includes linear algebra calculus numerical mathematics signal processing and monte carlo methods rendering for movies often takes place on a network of tightly connected computers known as a render farm the current compare with simpler 3d fileformats such as vrml or apis such as opengl and directx tailored for 3d hardware accelerators other renderers including proprietary ones can and are sometimes used but most other renderers tend to miss one or more of the often needed features like good texture filtering texture caching programmable shaders highend geometry types like hair subdivision or nurbs surfaces with tesselation on demand geometry caching raytracing with geometry caching high quality shadow mapping speed or patentfree implementations other highly sought features these days may include interactive photorealistic renderingipr and hardware renderingshading some renderers execute on the gpu instead of the cpu eg furryball redshift octane the parallelized nature of gpus can be used for shorter render times however gpu renderers are constrained by the amount of video memory available chronology of important published ideas rendering of an estcube1 satellite 1968 ray casting 1970 scanline rendering 1971 gouraud shading 1973 phong shading 1973 phong reflection 1973 diffuse reflection 1973 specular highlight 1973 specular reflection 1974 sprites 1974 scrolling 1974 texture mapping 1974 zbuffering 1976 environment mapping 1977 blinn shading 1977 sidescrolling 1977 shadow volumes 1978 shadow mapping 1978 bump mapping 1979 tile map 1980 bsp trees 1980 ray tracing 1981 parallax scrolling 1981 sprite zooming 1981 cook shader 1983 mip maps 1984 octree ray tracing 1984 alpha compositing 1984 distributed ray tracing 1984 radiosity 1985 rowcolumn scrolling 1985 hemicube radiosity 1986 light source tracing 1986 rendering equation 1987 reyes rendering 1988 depth cue 1988 distance fog 1988 tiled rendering 1991 xiaolin wu line antialiasing 1991 hierarchical radiosity 1993 texture filtering 1993 perspective correction 1993 transform clipping and lighting 1993 directional lighting 1993 trilinear interpolation 1993 zculling 1993 orennayar reflectance 1993 tone mapping 1993 subsurface scattering 1994 ambient occlusion 1995 hidden surface determination 1995 photon mapping 1996 multisample antialiasing 1997 metropolis light transport 1997 instant radiosity 1998 hidden surface removal 2000 pose space deformation 2002 precomputed radiance transfer computer graphics portal 2d computer graphics 3d computer graphics 3d rendering artistic rendering architectural rendering chromatic aberration displacement mapping global illumination graphics pipeline heightmap high dynamic range rendering imagebased modeling and rendering motion blur nonphotorealistic rendering normal mapping painters algorithm physically based rendering prerendered raster image processor radiosity ray tracing realtime computer graphics reyes scanline renderingscanline algorithm software rendering sprite computer graphics unbiased rendering vector graphics virtualgl virtual model virtual studio volume rendering zbuffer algorithms akeninemller tomas haines eric 2004 realtime rendering 2 ed natick mass ak peters isbn1568811829 blinn jim 1996 jim blinns corner a trip down the graphics pipeline san francisco calif morgan kaufmann publishers isbn1558603875 cohen michael f wallace john r 1998 radiosity and realistic image synthesis 3 ed boston mass academic press professional isbn0121782700 philip dutr bekaert philippe bala kavita 2003 advanced global illumination ed natick mass a k peters isbn1568811772 foley james d van dam feiner hughes 1990 computer graphics principles and practice 2 ed reading mass addisonwesley isbn0201121107 andrew s glassner ed 1989 an introduction to ray tracing 3 ed london acad press isbn0122861604 glassner andrew s 2004 principles of digital image synthesis 2 ed san francisco calif kaufmann isbn1558602763 gooch bruce gooch amy 2001 nonphotorealistic rendering natick mass a k peters isbn1568811330 jensen henrik wann 2001 realistic image synthesis using photon mapping ed natick mass ak peters isbn1568811470 pharr matt humphreys greg 2004 physically based rendering from theory to implementation amsterdam elseviermorgan kaufmann isbn012553180x shirley peter morley r keith 2003 realistic ray tracing 2 ed natick mass ak peters isbn1568811985 strothotte thomas schlechtweg stefan 2002 nonphotorealistic computer graphics modeling rendering and animation 2 ed san francisco ca morgan kaufmann isbn1558607870 ward gregory j july 1994 the radiance lighting simulation and rendering system siggraph 94 45972 look up renderer in wiktionary the free dictionary gpu rendering magazine online cgi magazine about advantages of gpu rendering siggraph the acms special interest group in graphics the largest academic and professional association and conference httpswebarchiveorgweb20040923075327httpwwwcsbrownedutor list of links to recent siggraph papers and some others on the web vtefilm crew filmmakingabove the line actor bit actor cameo actor character actor leading actor movie star superstar supporting actor film director screenwriter film producer executive producer line producer below the linepreproduction unit production manager production coordinator production accountant assistant director script supervisor script coordinator casting director production assistant location manager location scout storyboard storyboard artist production design production designer art director costume designer greensman hairdresser makeup artist set decorator set dresser property mastermistress props weapons master visual arts matte painter illustrator scenic design photography cinematographer director of photography camera operator focus puller clapper loader steadicam digital imaging technician second unit gaffer best boy electrical lighting technician key grip best boy grip grip dolly grip sound director of audiography production sound mixer boom operator utility sound technician dialogue editor rerecording mixer foley artist composer music supervisor music editor orchestrator special effects special effects supervisor visual effects supervisor animation animator visual effects modeling rigging layout artist talent acting coach body double dialect coach ensemble cast movement director choreographer extra talent agent actorvoice cast member standin acting instructor stage combat stunt double stunt performer underfive postproduction film editor sound editor colorist animator technical director visual effects vfx creative director visual effects editor compositor computergenerated imagery rendering other unit still photographer vtevisualization of technical informationfields biological data visualization chemical imaging crime mapping data visualization educational visualization flow visualization geovisualization information visualization mathematical visualization medical imaging molecular graphics product visualization scientific visualization software visualization technical drawing user interface design visual culture volume visualization image types chart diagram engineering drawing graph of a function ideogram map photograph pictogram plot schematic skeletal formula statistical graphics table technical drawings technical illustration user interface people jacques bertin stuart card thomas a defanti michael friendly george furnas pat hanrahan nigel holmes christopher r johnson august kekul manuel lima alan maceachren jock d mackinlay michael maltz bruce h mccormick miriah meyer charles joseph minard rudolf modley gaspard monge tamara munzner otto neurath florence nightingale hanspeter pfister clifford a pickover william playfair karl wilhelm pohlke adolphe quetelet george g robertson arthur h robinson lawrence j rosenblum ben shneiderman fraser stoddart edward tufte fernanda vigas ade olufeko howard wainer martin wattenberg bang wong related topics cartography chartjunk computer graphics in computer science graph drawing graphic design graphic organizer imaging science information graphics information science mental visualisation misleading graph neuroimaging patent drawing scientific modelling spatial analysis visual analytics visual perception volume cartography volume rendering vtemajor fields of computer sciencenote this template roughly follows the 2012 acm computing classification systemhardware printed circuit board peripheral integrated circuit very large scale integration systems on chip socs energy consumption green computing electronic design automation hardware acceleration computer systemsorganization computer architecture embedded system realtime computing dependability networks network architecture network protocol network components network scheduler network performance evaluation network service software organization interpreter middleware virtual machine operating system software quality software notationsand tools programming paradigm programming language compiler domainspecific language modeling language software framework integrated development environment software configuration management software library software repository software development software development process requirements analysis software design software construction software deployment software maintenance programming team opensource model theory of computation model of computation formal language automata theory computational complexity theory logic semantics algorithms algorithm design analysis of algorithms algorithmic efficiency randomized algorithm computational geometry mathematicsof computing discrete mathematics probability statistics mathematical software information theory mathematical analysis numerical analysis informationsystems database management system information storage systems enterprise information system social information systems geographic information system decision support system process control system multimedia information system data mining digital library computing platform digital marketing world wide web information retrieval security cryptography formal methods security services intrusion detection system hardware security network security information security application security humancomputerinteraction interaction design social computing ubiquitous computing visualization accessibility concurrency concurrent computing parallel computing distributed computing multithreading multiprocessing artificialintelligence natural language processing knowledge representation and reasoning computer vision automated planning and scheduling search methodology control method philosophy of artificial intelligence distributed artificial intelligence machine learning supervised learning unsupervised learning reinforcement learning multitask learning crossvalidation graphics animation rendering image manipulation graphics processing unit mixed reality virtual reality image compression solid modeling appliedcomputing ecommerce enterprise software computational mathematics computational physics computational chemistry computational biology computational social science computational engineering computational healthcare digital art electronic publishing cyberwarfare electronic voting video games word processing operations research educational technology document management book category portal wikiproject commons 