Procedural Geometry Union on the GPU.

Uploaded on:
Category: People / Lifestyle
Procedural Geometry Combination on the GPU Patrick Lacz and John C. Hart College of Illinois, Urbana-Champaign
Slide 1

Procedural Geometry Synthesis on the GPU Patrick Lacz and John C. Hart University of Illinois, Urbana-Champaign We exhibit a method for making and rendering procedurally produced geometry, for example, that made by a L-framework, totally on the GPU utilizing the late render-to-vertex-cluster usefulness. Highlights:  Symbols, representation state put away in composition.  Productions coded as piece projects  Iteration through render-to-surface  Rendering by means of render-to-vertex-cluster Texture Memory Vertex Shader Fragment Shader

Slide 2

Transformation of a L-System L → a L f[+ L ] L f[-L ] L Goal: Generate geometry coming about because of emphasis of a solitary creation that develops each tube shaped section into a fanning example of five portions Trick: Decompose the creation into set of preparations every yielding a solitary section L → { a L ,af + L ,af L ,aff − L ,aff L } Note: Each generation alters state, then occurrences itself (L) a : scale f : move forward + : rotate CCW – : rotate CW [ : push state ] : pop state

Slide 3

Scene-Graph Transformation Productions in this structure (left) can be changed into a scene chart (right). Non-terminal image on production’s LHS relates to a union hub. State-changing terminal images on generation right-hand side are joined into single relative change hub. Two emphasess of these creations results in 25 examples of a barrel shaped fragment. 2 iters. L →a L →af + L →af L →aff − L →aff L an af+ af aff-aff L Union hub Transformation hub

Slide 4

Encoding Into Fragments & Texture In this structure, creations take the type of a scene chart: every hub is ventured into a gathering of tyke hubs, each with a total change encoded here as x,y position, revolution point and scale L→ { aL , af + L , afL , aff − L , affL } Each hub comprises of an image and its amassed state, and is put away as a solitary pixel in a profound 1-D surface, called the image state composition . Every section above is an image state composition. A solitary use of the creations on an image state surface produces another image state composition.

Slide 5

Representation Each cushion can contain just a constrained measure of information. To store all the obliged information, we utilize a profound cradle . We keep up a few cradles for which there is a pixel-level correspondence; the information is appropriated over this arrangement of supports. For our calculation, this implies we must apply our projects once per cradle. The 2-D cradle is handled in 1-D utilizing measured number juggling. Connection touchy preparations can likewise be upheld by inspecting the 1-D neighbors. 6 7 8 3 4 5 6 7 8 7 0 1 2 3 4 5 6 8 0 1 2 3 4 5 connection touchy lookups can be made information for one image 0 1 2 composition 0 surface 1

Slide 6

GPU Production Iteration All preparations are connected to all image state components. Preparations that don’t match the data image yield a Ø-image. A<x=0,y=0, q =0> B<0,0,+90> Ø <0,0,+180> B<0,0,- 90> Ø <0,0,0> A → +B A → - B → fA Ø <1,0,0> Ø <0,1,+90> Productions: (coded as frag. progs) Ø <0,0,0> Ø <0,0,- 180> Ø <0,- 1,- 90> A<0,1,+90> p = # of preparations Input image state surface = n profound pixels Output image state composition = p*n profound pixels For every generation i = 0 … p-1 Execute frag. prog. i on pixels i*n + (0 … n-1) A<0,- 1,- 90> Ø <2,0,0> This is a considerable measure of work and space for two results!

Slide 7

Remove Ø passages from image state composition Use impediment question to focus # of non-Ø images Maintain unique request generally to protect setting affectability Ø <0,0,+180> A<0,1,+90> Sort Cull Ø <0,0,0> A<0,- 1,- 90> Ø <0,1,+90> Ø <0,0,+180> Ø <0,0,0> Ø <0,0,0> A<0,1,+90> Ø <0,0,- 180> Ø <0,1,+90> A<0,- 1,- 90> Ø <0,- 1,- 90> Ø <0,0,0> A<0,1,+90> Ø <0,0,- 180> A<0,- 1,- 90> Ø <0,- 1,- 90> Ø <2,0,0> Ø <2,0,0> Symbol-State Processing by means of Sorting

Slide 8

Multistage Bitonic Sort A bitonic sort makes a sorting system obliging no stream control choices which makes it perfect for SIMD preparing. We execute different phases of the bitonic sort in a solitary piece system to diminish setting switch overhead. On a NV30, this improvement quickens the sorting of up to 2048 components. 0 1 2 3 4 5 Stage part program section program

Slide 9

Convert terminal images to geometry straightforwardly on the illustrations card to stay away from exorbitant readback Use bitonic sort to gather terminal images and their related state (e.g. make one accumulation of branches and another of leaves) Vertex shader gets to state put away in surface memory and cases pre-put away filed face-set at the best possible position, scale and introduction Rendering

Slide 10

References Buck I., Purcell T.: A toolbox for calculation on GPUs. In GPUGems : Programming Techniques, Tips, and Tricks for Real-Time Graphics, Fernando R., (Ed.), first ed. Addison-Wesley, 2004. Hart J. C.: The article instancing worldview for direct fractal displaying. In Proc. of Graphics Interface (1992), Morgan Kaufmann, pp. 224–231. Karwowski R., Prusinkiewicz P.: Design and Implementation of the L+C Modeling Language. PhD theory, University of Calgary, 2003. Luis F. Ortiz R. Y. P., Pinter S. S.: An exhibit dialect for information parallelism: Definition, accumulation, and applications. Diary of Supercomputing 5, 1 (1991), 7–29. M ĕ ch R., Prusinkiewicz P.: Generating subdivision bends with l-frameworks on a GPU. In Proc. of the SIGGRAPH 2003 gathering on Sketches & applications (2003), ACM Press, pp. 1–1. Purcell T. J., Donner C., Cammarano M., Jensen H. W., Hanrahan P. : Photon mapping on programmable illustrations equipment. In Proc. of the AC

View more...