Chpt. 9 Viewing -2-: A Model of the Rendering Process

Chpt. 8 presented viewing by analogy w / camera Chpt. 9 looks at uniagl quality vuwer ub digital image synthesis First --> curved surfaces Second --> producing pixels Third --> special effects (motion blurd depth_of_field) Surface Approximation even surfaces that are defined as implicit (Qradrics) or Patches are converted to polys called Upolys when rendered. - want adaptive process ie move polys for higher curvature can set this by RiGeometric Approximaton ( type, value ) where type = flatness value = amount poly deviates from true curved surface ( default = 0.5 ) Look at how Renderman actually renders image ref. Cook, Carpenter, Cutmull " The Reyes Image Rendering Archict " SIGGRAPH '87 Design Principles 1. Natural Coordinates --> calcs should be done in most nad. coord. eg. texture mapping in U V space for patches, visible surface defintion in pixel coord (Screen Space) 2. Vectorization - should be able to exploit vect, parallelism & pipelining 3. Common Representation - single object - everything is turned into micropolygous - flat - shaded sub-pixel sized, quadrilaterals prman 9 -- 2 4. Locality - Geometric & texture with very large models some rendering techniques can arbitrarily access any object which may meccitate disk - memory paging ( eg. ray trseing ) -so use other methods (reflection maps, shadow maps) for non-local shading 5. High quality images common to use point sampling at higher resolution than final image --> ****** but still have aliasing so use stochastic sampling w/ jitfored samples - may divide pixel into 16 sub-pixels with each sample jitboo from centry. - all u polys that overlap sub-pixel are sampled w/ depth kept in Z -buffer U-polys are 1 / 2 pixel on a side : 1 / 2 a pixel is Nyquist limit for an image (thus) can use 1 color / upoly a geometric premitive is converted to upolys ( dicing ) in most natural coord. system - eg. forh patch the upolys are // to u & v - so get a 2 D gird of u polys - done in eye space ( camera space ) w/ fineness of dicing definition by esy. size in pixel space( 1/2 pixel ) Shading done for every upolys (except for back -face wll) so many u polys will be shaded that aren't visible - other possibility is to shade only visible upolys, but then might be jumping from surface to surface prman 9 -- 3 Advantages to this shading enties surface - easier to vectorize - texture locality - just using one texture map ( are large) so no thrashing ( Upstill ) prman 9 -- 4 image formed in PRman is a ruster --> rectangular grid of pixels - each pixel represents a finite area which may contain several surface --> so somehow must devids "best" color for pixel hased on "average" of surfaces -simplest - point sample at center of pixel **** -->this is color of pixel --> bads to aliaring ********* ********* then pixel color ( $ --> 1.0) is quentied --> usually 0-->255 RGE defalut is a linear mapping to integer steps represent equal differences in original color. Problem: at low levels loads to high contrast given by (c1 - c2) / (c1 + c2) if c1 = 15, c2 = 10 then --> 5 / 25 = 1 / 5 if c1 = 250 c2 = 245 --> 5/495=1/99 at low levels exaggreate diff eg. c1 = 0.05 * 255 = 12.75 = 13 c2 = 0.04 * 255 = 10.2 = 10 give c = (13 -10) / 23 = 3 / 23 = 0.13 ~~ 20% enor but actual c = (0.05-0.04) / 0.09 = 0.01/0.09 = 1/9= 0.11 prman 9 -- 5 Look at complete imaging pipeline ( fig 9.1) Filtering & Sampling ideal would be to integrate all surfaces in pixel & definition. average color ********* Note: eye integrates colors over small areas to give overall color So instead supersample **** or supersample with jiffering **** than filter the samples |__> coments aliasing to noise default is 4 u polys /pixel & 1 jiffered sample /upoly or 4/pixel can change by Ripixel Samples (X samples Y samples) so default --> RiPixel Samples (2, 2) then combine samples using a filter fn. simplest is box filter ie. color = **** all have equal weight many filter over multiple pixels can specify filter fn by RiPixel Filter( function, xwidth, ywidth ) width gives #pixels so = 1 only samples within a single pixel influence color of pixel look at standard PRman filters Fig 9.2 triangle & box filters are symmetric --> pyramid & cube --> not / piped so /=(Y,Y ) = min ( f(x), f(y)) but sine, C - R, Gaussian are circularly symmetric so /=( x, y ) = f((x**2 + y**2)**1/2) prman 9 -- 6 Note ---> triangle, box, Curresion are widrred or nerrowed by width parameter -- C - R & sine have some shape but are clipped - can write your own files function & pass to interface Problem with general super sampling -- may waste time by over sampling eg. --fig-- or --fig-- -- -- so really want to highlysupersamplesome over & not others ---> use adaptive supersapling - from statistics we ( statistics ) can estimate the accurent of computed pixel value(various) ---> so we can det the level of the various by better--> Ri Pixel various( varioul) where -- this modifier the respoel to in coming light -- in general systems (film, videotape, monitors) are not linear output in intensity with incoming signal. ex. for most monitors I = V ** r w/r /= 1 & different for different monitors. Also, remenber human eye is not linear but log coriltimic if linear the ^- brightness would be constant from one quant. level to next but for eye ratios are constant ie I2/I1 = I3/I2 = I4/I3 =r -so different between levels 3 & 4 is much greater than between levels 203 & 204 prman 9 - 7 Whereas for linear encoding level 3->4 & 203->204 would give some brightness change We can change to non linear encoking by RiExposive (gain>=-, gamma>=-) default -1 then each color component of every pixel is (color) output = (colon input * gain) Ygamma --fig 9.4-- Next pixel colons are passed through on imaging procens unvolevel b - 1 RiImager (mame, prono) where name is name of a shader - can do different manipulations - eg. transform from RCB to CMYle for printing Next is Color Quantization ->map from float to integer & reduce error use RiQuantize (type, one, min, max, ditheramplitude ) type is "ryba" or "z" each fp value (--1 | ivalue = fvalue * one + diirtheromplitusts * random default 0.5 so +- 1 prman 9 - 8 Depth of Field - Cameras have this as a function of f-stop ( size of opertoo admittion light - so no longer use pin hole came

 


HyperGraph Table of Contents.
HyperGraph Home page.

Last changed February 09, 1997, G. Scott Owen, owen@siggraph.org