An Efficient And Controllable Blob Function

2y ago
94 Views
4 Downloads
3.65 MB
13 Pages
Last View : 16d ago
Last Download : 3m ago
Upload by : Rosemary Rios
Transcription

Vol. 6, No.4: 41-54Downloaded by [University of Waterloo] at 12:28 03 April 2013An Efficient and ControllableBlob FunctionGladimir V. G. BaranoskiUniversity of WaterlooJon RokneUniversity of CalgaryAbstract. A tunable blob function is proposed which is comput at ionally simplesin ce it is a rational fun ction of low degree. The blob fun ction is dependent ona parameter d which can be used to control the blob function making it suitablefor computer graphics applications such as implicit surface generation. The mainproperties of the blob function are descr ibed and graphed. When the parameterd is large, the blob function can be used to generate a three-dimensional spike byrotating it around the z-a xis.1.IntroductionIn Tri cks of the Trade: Andrew Glassn er 's Notebook [Glassner 01], Glassnerdiscusses some functions that he calls blob functions. These functions are "radially symmetric, smo oth shapes-t he sort of thing you'd get if you ploppeda spoonful of pudding onto a dish " [Glassner 01]. These functions are usefulin computer graphics, for example, for implicit surface generation and generalfiltering (see [Bloomenthal 95], [Hartman 01], [Muraki 91]).The original work on blob functions was done by Blinn [Blinn 82] and Perlin[Perlin 01] in 1980-1982 under the name of field fun ctions. A K Pelers, Ltd.411086-7651197 0 .50 per page

journal of graphics tools42Here we desir e a blob fun ction to have certain properties t hat ens ur e smoothness of blends. Hen ce we define a blob fun cti on to be a funct ion b(1') whereb(O )1,b' (0)0,b(I )b'(I )0,0,b'(1' )0, whe n 0 r 1, Downloaded by [University of Waterloo] at 12:28 03 April 2013b(- 1' )b(1' ),0, when 11'1 tf- [0, 1],b(1')1C 2 [0, 1]b E1b(1' )d1'1 (a n optional nor malizin g condit ion) .These condit ions restrict the possible blob fun cti ons to fun cti ons t hat have areversed "s"-shape. They also imply that there are t hree numbers B 1/, , B, 1/ E [0, 1J such t hat b' ( ) b" (B) b' (1/) -1. In ot her words, t he slopeof t he fun ction is equal to t he slope of t he line betw een (0, 1) and (1, 0) at twopoin t s, an d t he second deri vative has t he slope of t he sa me line at one point .The blob fun cti onb (1') { 1 - (221,2 - 171'4 41'6) / 9 if 11'1 . 1,w0otherwise,(1)wh ich was originally published in [Wyvill et al. 86], sa t isfies t hese requirements. Additionally, t his blob fun cti on sat isfies bw (I /2 ) 1/ 2. It closelyapproximates anot her blob fun ction ,b (1') { (1 cos(T7r)) / 2 if 11'1 .1,10othe rwise,(2)wh ich also has t he required pr op er ti es. Glassn er graphs both of these blobfun ctions [Glassner OI J.Bloom enthal notes [Blooment hal 97J t hat it might be desirable to be able tocont rol blends in im plicit sur face based com pute r animation . This can be don eby blob fun ction s with tunable paramet ers. An int erpolat ing Catmull-Romspline with t hree control poin t s is suggested by Bloomenthal [Blooment hal 97Jwh ere t he center cont ro l poin t cont rols t he slop e at t hat point.Glassner also not es [Glassner OI J t hat Equat ion (1) has no tunab le paramet ers , and two alternat e possibilities for blob fun ction s(1 cos(T7r)) / 2)P if 11'1 1,0ot herwise ;P2(e- (7'p)2 e- )/ (I e- p2) if 11'1 1,0otherwise ,bp(1'){cp(1'){(3)(4)

Baranoski and Rokne: An Efficient and Controllable Blob Function43both of which have a tunable parameter p, are provided (where e is Euler'sconstant). Glassner gives examples for several values of p [Glassner 01].Graphs comparing several blob functions can be found in [Bourke 97], andan early survey of blob functions can be found in [Wyvill, Wyvill 89].Downloaded by [University of Waterloo] at 12:28 03 April 20132.The Blob FunctionWhen blob functions are used for implicit surface blending [Bloomenthal 97],they are evaluated possibly several times whenever a surface point is required.Small changes in the computational cost of a blob function might thereforeaffect the computational cost of generating an implicit surface. Therefore weprovide another blob function which is tunable and which is computationallysimple since it is a rational function of low degree . Letb (r) { (a brd02 cr4)/(1 dr 2 )if Irl 1,otherwise.(5)Then Equation (5) has 4 tunable parameters a, b, c, and d. The requirementthat bd(O) 1 means that a 1 and b (O)0 are identically satisfied.Conditions bd(l) b (I) 0 result inb c2b 4cfrom which b -1,(6)0,(7)- 2 and c 1. From this we get the new blob functionb (r) { ((r - 1)2(r 1)2)/(1 dr 2) if [r] 1,d0otherwise,(8)which has one tunable parameter. The parameter d has to satisfy d -1 sinced -1 results in singular values in (0,1) by the fact that the denominator ofEquation (8) is 9 1 dr 2 and 9 0 at r 2 -1/d.As noted above, Equation (8) will have to be optionally normalized so thatthe area under the curve from zero to one is unity. This is accomplished bydividing by the scaling factor:s Vd(3 5d) (1 d)2atanVd3d5 / 2.(9)(Note that Equation (9) is indeterminate for d O. However, applyingl'Hopital's rule to Equation (9) results in s 8/15 which is the same result as found by direct integration of Equation (8) with d 0).If the selection of an appropriate blob function is made by varying the parameter d, then we obtain the graph in Figure 1. In the graph, the parameterd (2i)2 with i 0, . ,5.

journal of graphics tools44-ab lobva l ue1--- 4- - -1 6- -36- - 64-- lOaDownloaded by [University of Waterloo] at 12:28 03 April 20130 .40. 20.20.40.60 .81rFigur e 1. T he paramet er d (2if with i 0, . . . ,5.Similarly, Figure 2 shows t he progression of blob fun ction shape when t hepa rameter d (2i)3 wit h i 0, . . . , 5. We can also let the parameter d benegative, vary ing it as d - 0.19 - 0.2i wit h i 0, . . . , 4, obtaining t he graphsin Fi gur e 3.b lobva luea,1\-- - 8\- - -64\\\\ \0 .8 \\ \III\II \\- - 216\0 .6 \-- 5 1 2\\\I \0 .4\\ \\\\"\\ \0 .2\\-- 1 0 0 0\\\\ 0 .2\",, ,--- --0 .4F igure 2. P lotted with d0.60.8 (2i ?with i1r 0, . . . ,5.

Baranoski and Rokne: An Efficient and Controllable Blob Functionblobvalue45d -0.191d - 0.39d -0.590 .8d - 0 .790 .6d -0.99Downloaded by [University of Waterloo] at 12:28 03 April 20130 .40 .20 .20 .40.60 .8r1Figure 3. Negative valu es of d.blobva1ue-- - - --- . d O . 61\\\ "-\ -,\\\\\\\\0 .6- - --- d 40\\'\"\\',,\\' ,,'\\'\\0 .8"-,"\\\\\\\eq. ( 3 ) , p 3'"\ \\\\ '\\\\\\\\\\\\\\0.4eq. ( 1 )\\\\'- '"\\\\ \\,,\\\\\\\eq. (4), p 3'"-,'"'\\' \ ," -,"- "'--:--.0.2-'",\ \0.2-0 .4--0 .6\\----""-,0 .8 ,"- "1Figure 4. Comparing the blob fun ction (8) to (1) ,(3) and (4).r

Downloaded by [University of Waterloo] at 12:28 03 April 201346journa l of graphics toolsT he paramet er d t herefore enables control over blob function (8), making itsu itable for compute r graphics applications such as implicit sur face generation .The new blob function (8) is now compared visually to t he blob functions(1), (3) , a nd (4) in Figure 4. T wo valu es, d 0.6 and d 40, wer e selectedfor t he comparison. It should be not ed t hat for d 0.6, t he new blob fun ctionis very close to blob fun cti on (1). T he fun cti ons (3) and (4) a re close to eachot her, but differ in shape from t he new blob fun cti on wit h t he par am eterd 40 (and for ot he r valu es as well). The blob fun cti on (2) was not graphedsince it was very close to blob fun cti on (1).When blob functi ons are used t o generate impli cit sur faces, the cont ribut ions for each of t he blob fun ctions are added and compared to a fixed cutoffvalue. This value is normally x 0.5, but it can be any valu e in t he ran ge(0, 1]. The shape at x det ermines the "hardness" or t he "soft ness" of theblend (see also [Bloomenthal 95] pp . 247-248) where the more negative t heslope is at x, t he harder t he blend.The parameter d can be used to cont rol t he slope of blob fun cti on (8) at,for example, x 1/ 2. This slope isb (0. 5 ) - 1.5/(1 d/4) - 0.5625d/ (1 d/4)2 .(10)Set ti ng b (0. 5 ) p and solving for d we get two roots, one of which isd - 15 - 8p 12)1.5625 P2p,(11)t he ot her result ing in an impossibl e value of d less t ha n - 1.Equ ati on (11) also shows t hat t he slope can never be less t ha n - 1.5625at x 0.5. This restrict s t he control of Equ ati on (8) to a limi t ed rangeof derivati ve values at x 0.5, as shown in Figure 5 as a fun cti on of t hepar a meter d.derivative value2.5151015Figure 5 . T he curve for b ( O .5) as a funct ion of d .

47Baranoski and Rokne: An Efficient and Controllable Blob Functionblobvaluep - 1 .56 25 , d 0.81p - 1 .5 , d 2 .0,0.8p - 1 .0 , d 8 .0p -0 .5 , d 23 .36930.60.4Downloaded by [University of Waterloo] at 12:28 03 April 20130.20 .20 .40 .80 .6Figure 6. Varying t he slope at xr1 1/ 2.In F igure 6, t he plot s a re given for the blob funct ions gene rated wit h slopesp ::;:: -1.5625, -1.5, -1.0, -0.5 at x 0.5. Among t hese curves the hardestblend for an implicit surface is given by d 23.3693, and the softest wit hd 0.8.In Figure 7, t he der ivati ve is varied at t he point x so t hat x 0.2 0.li, i 0,1 , 2, 3. This point corres ponds to t he cutoff poi nt for implicit blends. Wenot e that t he ran ge of variation ru ns from abo ut -2.5 to -1.5 as x ranges from0.2 to 0.5. That is, t he closer we choose t he point of evaluation to t he origin,t he steeper t he slope can be chose n. T he range of possible curves does notchange; however , the range of variation in har dness of blend does change byt he fact t hat the cutoff point is changed.As another example of t he use of t hese blob functions, a rotation surface isshown in Figure 8 where the paramet er d 23.3693.derivative---- x O. 2-0.5 \-1-1 .5-2- 2. 5\\ \\\ \,./,./ ,, --\ \ /.------------ ---» -- - x 0 .3-- - x 0 .4- . x 0. 5' - - - - - -""- -- -- -- - Figure 7. Var ying the point of derivative control.

Downloaded by [University of Waterloo] at 12:28 03 April 201348journal of graphics toolsFigure 8. A three-dimensional symmetric surface gene r at ed with a blob function .The sur face in Figure 8 may be normalized so that the integral under thesurface is equal to 1 dividing by the constant 1.47218.For an implementation, Equation (8) is chang ed toif Irl 1,otherwise,(12)which is implemented asrlr 2,r2rlr3r4r52r6-1,r 2,dr l,1 r4,r2/ r5,resulting in four multiply/divide and two add (increment/decrement by 1).In comparing the cost of the new blob function to the other blob functions,Equation (1) is rewritten asbw(r) {2((42201 - r/9r - 17/9)r 22/9)if Irl 1,otherwise,with the constants 4/9, 17/9 and 22/9 being precalculated.(13)

Baranoski and Rokne: An Efficient and Controllable Blob Function49cost of evaluationmpy / divadd/subfen callsremarkbd(r)bw(r)bp(r )ep(r)42433211tunablenot t unablet unablet unable22Downloaded by [University of Waterloo] at 12:28 03 April 2013Table 1. Comparison of evaluation costs for Equations (8), (1), (3), and (4) .The cost of evaluating t he four different blob fun cti ons is given in Table 1for the four blob fun cti ons (8), (1), (3) , and (4) (excluding the test for inclusion/exclusion in [0,1] whi ch is the same for all of the fun cti ons).The comparison shows that Equation (8) is slightly less expensive to calculate t han Equation (1), with the added advantage of being tunable. It isass umed t hat Equations (3) and (4) are more expensive due to the fun ctioncalls.Some a ttempt s were mad e t o generalize Equati on (8), however , t hey werenot successful because the resul ting fun ctions tended to have singularities inthe dom ain [0,1].3.Implicit Surface ExamplesThree sets of examples of three-dimension al implicit sur faces were generated using t he new blob fun cti ons based on point primitives. With thepoin t primitive locat ed at (x o, Yo, zo), the implicit sur faces are defined byf (x , y , z) - 0.5 0 where f (x , y, z) bd(J(x - xo)2 (y - Yo)2 (z - zO)2 ),i.e., the Euclidean distance from the point primitive is used as the parameterfor t he blob fun ction. An implicit surface generated from several point primit ives is similarly defined by adding the cont ribut ions from each primitive. Allof t he t est images are of peanut -like shapes.Figure 9 . The effect of varying the d value for two point primitives. (a) 2, (b) 8,(c) 24, (d) 26, and (e) 32.

50journal of graphics toolsFigure 10. Varying the separation between two point primitives. (a) separation 0.6,Downloaded by [University of Waterloo] at 12:28 03 April 2013(b) separation 0.8, and (c) separation 1.0.In the first set of images in Figure 9, the point primitives are 0.6 unitsapart. Five images are displayed with d values 2.0,8.0,24.0,26.0,32 .0. Theeffect of increasing d is that the blob functions drop off more rapidly (see alsoFigure 3), which means that the 0.5 cutoff will become closer to the pointprimitives.From Figure 9 c) to 9 d) the blobs separate. The separation occurs whenat the distance 0.3, the value of the blob functions drop below the threshold0.5 because the configuration is symmetric. The d value at the separation istherefore found by solving 2bd(0.3) 0.5 for d resulting in d 24.88.In the second set of images in Figure 10, the d value is kept constant,whereas the separation between the point primitives is 0.6,0 .8, and 1.0.The third set of images in Figure 11 uses different d values for the twopoint primitives. The left point primitive uses d 1, whereas the right pointprimitives have d 16.0,32.0,1024.0,2048.0.4.SpikeAnother potential use for function (8) for large values of d is to generatespikes which have smooth peaks. The graphs in Figure 12 are computed byFigure 11. The effect of different d values for the right point primitives. (a) d(b) d 32, (c) d 1024, and (d) d 2048. 16,

51Baranoski and Rokne: An Efficient and Controllable Blob Functionspikevalue1d lO,d lOO\\,\\\ \d lOOO,,0 .8 , \III "\II \Downloaded by [University of Waterloo] at 12:28 03 April 2013d lOOOOO, \I\ \I\ \II \1\,,\0.2 \ \\,,,\\\\\d lOOOOOO,,0.6 I "0 .4d lOOOO,,,,,'.\,,,,,,,-,\- , .0 .20 .40.60 .81rFigure 12. Increasing the parameter by multiplies of 10.letting d increase by multiples of 10. When these functions are rotated aboutthe y-axis , surfaces, which we call spikes, are generated. Spikes can be usedfor a number of modeling purposes such as creating textures by scaling andrepeating the spike, modeling slime molds, branching processes, etc.Note that the higher values of d produce a shape that "hugs" the y-axisand drops quickly towards the x-axis, then asymptotically goes to zero as rtends to 1.Clearly, any rational form p(x)j(l dnxm ) will have this property whenn , m 0 as long as d is large enough. function (8) is distinguished fromthese functions because it is computationally simple and has the smoothnessconditions stated in the previous section. This cannot be seen in Figure 12.We therefore use a mathematical magnifying glass and display a closer lookat the situation around x 0 in Figure 13, showing that even with very largevalues of d, the spike will have the required smoothness properties.As a final example, we display a spike where d 1000 in Figure 14.Acknowledgements. Thanks are due to the anonymous referees who providedvaluable criticism of the first draft of the paper and to Ryan Schmidt who generatedthe implicit surface examples. The authors are also grateful for funding through theNational Sciences and Engineering Council of Canada.

52journal of graphics toolsspikevaluer- --- - - --- - - 1 .10- 6.---.-,""""""""""\\-- - --d 100000- - - -d 1000000\\\Downloaded by [University of Waterloo] at 12:28 03 April 2013\\\\\\\\0.999999Figure 13. A clos er look at t he to p of spikes.Figure 14. A spike wit h d 1000 .

Baranoski and Rokne: An Efficient and Controllable Blob Function53References[Blinn 82] Jim Blinn. "A generalization of algebraic sur face drawing." ACM Transactions on Gmphics 1(3) : 235-256 (1982) .[Bloomenthal 95] Jules Bloomenthal. "Bulge elimination in implicit surface blends."InImplicit Surfaces '95, The First International Workshop on Implicit Surfaces,Grenoble, Fmnce, pp. 7-20, 1995.[Blooment ha l 97] Jules Bloomenthal. In troduction to Impl icit Surfa ces. San Francisco: Morgan Kaufmann Publish ers, Inc. , 1997.Downloaded by [University of Waterloo] at 12:28 03 April 2013[Bourke 97] P. Bourke. /implicitsurf/ (1997) .[Glassn er 01] A. Glassner. "Tricks of the trade. Andrew Glassner's Notebook."IEEE Computer Graphics and Applications 21(2): 80--87 (2001).[Hartman 01] E. Hartmann. "Paramet ricVisual Computer 17: 1-13(2001).en blending of curves and surfaces."Th e[Muraki 91] M. Muraki. "Volumet ric shape description of range data using ' BlobbyModel. '" Computer Gmphics 25: 227-235 (1991).[Perlin 01] K. Perlin. Personal commun ication (2001).[Wyvill et al. 86] G. Wyvill , McPheeters , B. Wyvill. "Dat a structure for soft objects." The Visual Computer 2: 227-234 (1986) .[Wyvill, Wyvill 89] B. Wyvill, G. Wyvill . "Field functions for implicit surfaces."Th e Visual Computer 5:75-82 (1989) .Web Information: http://www.acm .org/jgt/papers/BaranoskiRokneOlGladimir V. G. Baranoski, Department of Computer Science, University of Waterloo,Waterloo, Ontario, Canada N2L 3Gl (gvgbaranoski@cgl.uwaterloo.ca)Jon Rokne, Department of Computer Science, The University of Calgary, Calgary,Alberta, Canada T2N IN4 (rokne@cpsc. ucalgary.ca)Received May 21, 2001; accepted in revised form February 1, 2002.

In Tricks of the Trade: Andrew Glassner's Notebook [Glassner 01], Glassner discusses some functions that he calls blob functions. These functions are "ra dially symmetric, smooth shapes-the sort of thing you'dget ifyou plopped a spoonful of puddi

Related Documents:

A lot of words use the bluh sound say after me: (If you need more words, try: block, blink, blow, blood, blank, blend and blond.) 4 bl 5 My name is the. I am a of gum. Someone spat me on the ground, and I m the your shoe has found. Bob Blob blob blob b b b bl

are Azure Event Hub , Azure IoT Hub and Azure Blob Storage.Multiple input Data Streams are supported. Advanced options lets you configure how the Job will read data from the input blob (which folders to read from, when a blob is ready to be read, etc). Reference data is usually static or changes very slowly over time.

Implementing an async blob copy 256 Configuring the Content Delivery Network 257 Designing blob hierarchies 258 Configuring custom domains 258 Scaling Blob storage 259 Working with Azure File storage 259 Objective summary 260 Objective review 260 Objective 4.2: Implement Azure Storage tables. 261 Using basic CRUD operations 261

(new high-res GUI), Subwoofer, Bass, Mid-range and Treble are now individually controllable from the radio screen, direct to the ZEN-V. Added controls & options (VW vehicles: MIB 2 STD) For VW vehicles, an extra sound control menu is added. Subwoofer, Bass and Treble are now individually controllable from the radio screen, direct to the ZEN-V.

CONTROLLABLE CHECK VALVES EA KF Brass check valve with test and drain options. Safety class EA. Connection: Compression Material specifi cations Body brass Plugs brass Nuts brass Connection unions brass Check valve plastic Seal rubber Pressure spring stainless steel Technical specifi cation

PHYSICAL REVIEW A 93, 032337 (2016) Controllable single-photon transport between remote coupled-cavity arrays Wei Qin 1,2 and Franco Nori 3 1CEMS, RIKEN, Wako-shi, Saitama 351-0198, Japan 2School of Physics, Beijing Institute of Technology, Beijing 100081, China 3Department of Physics, University of Michigan, Ann Arbor, Michigan 48109-1040, USA (Received 20 December 2015; revised manuscript .

Rev 1.1 November 2020 www.aosmd.com Page 1 of 23 AOZ2231CQI-23 I2C Controllable 28V/4A Synchronous EZBuckTM Regulator General Description The AOZ2231CQI-23 is an I2C controllable, high efficiency, easy-to-use DC-DC synchronous buck regulator capable of operation from a 6.5V to 28V input

STM32 MCUs listed in Table 1. Outsourcing of product manufacturing enables original equipment manufacturers (OEMs) to reduce their direct costs and concentrate on high added-value activities such as research and development, sales and marketing. However, contract manufacturing puts the OEM's proprietary assets at risk, and since the contract manufacturer (CM) manipulates the OEM's intellectual .