{
"responseHeader":{
"status":0,
"QTime":0,
"params":{
"q":"{!q.op=AND}id:\"712682\"",
"fq":"!embargo_i:1",
"wt":"json"}},
"response":{"numFound":1,"start":0,"numFoundExact":true,"docs":[
{
"thumb_s":"/e6/37/e63757c220df84c6066e0a3d5efee54a1577a27c.jpg",
"description_t":"This report describes an experimental system for designing free-form B-spline surfaces using a head-mounted display. In this system, the interaction with the surfaces takes place in three dimensions as the designed object's shape Is updated in real-time. The report also examines some of the problems that should be solved in building a practical three-dimensional computer-aided geometric design system for surfaces.",
"metadata_cataloger_t":"Joni Clayton",
"restricted_i":0,
"rights_management_t":"James Henry Clark",
"ark_t":"ark:/87278/s6s21bmx",
"identifier_t":"uspace/id/10695",
"creator_t":"Clark, James Henry",
"parent_i":0,
"format_medium_t":"application/pdf",
"file_s":"/ac/6b/ac6b27a8bcb666d72a89beb1db05288bba1e4798.pdf",
"date_t":"1974-09",
"type_t":"Text",
"created_tdt":"2014-09-25T00:00:00Z",
"publication_type_t":"report",
"subject_t":"Computer animation",
"format_extent_t":"134,615,955 Bytes",
"mass_i":1515011812,
"title_t":"3-D Design of free-form B-Spline surfaces (CSTD-74-005)",
"setname_s":"ir_uspace",
"department_t":"J. Willard Marriott Library",
"language_t":"eng",
"id":712682,
"oldid_t":"uspace 10695",
"format_t":"application/pdf",
"modified_tdt":"2021-05-06T23:38:38Z",
"school_or_college_t":"University Libraries",
"filesize_i":134615955,
"_version_":1699054213841027072,
"ocr_t":"UNCLASSIFIED SECURITY CLASSIFICATION OF THIS PAGE (When Data Entered) REPORT DOCUMENTATION PAGE READ INSTRUCTIONS BEFORE COMPLETING FORM 1. REPORT NUMBER r GOVT ACCESSION NO. 3. RECIPIENT'S CATALOG NUMBER liTEC-CSc-74-120 4. TITLE (and Subtitle) S. TYPE OF REPORT 8c PERIOD COVERED 3-D DESIGN OF FREE-FORM B-SPLINE SURFACES TECHNICAL REPORT 6. PERFORMING ORG. REPORT NUMBER 7. AUTHOR(s) 8. CONTRACT OR GRANT NUMBER(s) JAMES EENRY CLARK DAHClS-73-C-0363 9. PERFORMING ORGANIZATION NAME AND ADDRESS 10. PROGRAM ELEMENT, PROJECT, TASK Computer Science Department AREA 8c WORK UNIT NUMBERS University of Utah Salt Lake City, Utah 84112 ARPA Order #2477 11. CONTROLLING OFFICE NAME AND ADDRESS 12. REPORT DATE Defense Advanced Research Projects Agency September 1974 1400 Wilson Blvd. 13. NUMBER OF PAGES Arlington, Virginia 22209 81 14. MONITORING AGENCY NAME 8c ADDRESS(lf different from Controllln~ Office) IS. SECURITY CLASS. (of this report) UNCLASSIFIED I Sa. DECLASSIFICATION/ DOWN GRADING SCHEDULE 16. DISTRIBUTION STATEMENT (of this Report) This document has been approved for public release and sale; its distribution is unlimited. 17. DISTRIBUTION STATEMENT (of the abstract entered In Block 20, If different from Report) 18. SUPPLEMENTARY NOTES 19. KEY WORDS (Continue on reverse side If necessary and identify by block number) computer-aided design, B-Splines, splines, surface design, 3-D graphics 20. ABSTRACT (Continue on reverse side If necessary and Identify by block number) This report describes an experimental system for designing free-form B-spline surfaces using a head-mounted display. In this system, the ' interaction with the surfaces takes place in three dimensions as the designed object's shape is updated in real-time. The report also examines some of the problems that should be solved in building a practical three-dimensional computer-aided geometric design system for surfaces. DO FORM 1 JAN 73 1473 EDITION OF 1 NOV 65 IS OBSOLETE UNCLASSIFIED SECURITY CLASSIFICATION OF THIS PAGE (When. Data Ente.r ed) SECURITY CLASSIFICATION OF THIS PAGE(When Data Entered) SECURITY CLASSIFICATION OF THIS PAGE(When Data Entered) 3-D DESIGN OF FREE-FORM B-SPLINE SURFACES by James Henry Clark UTE 74-12 September 1974 UTEC-CSc-74-120 This research was supported by the Advanced Research Projects Agency of the Department of Defense under Contract No. DAHClS-73-C-0363 and Contract No. F30602-70-C-0300. TABLE OF CONTENTS LIST OF ILLUSTRATIONS iv ABSTRACT v CHAPTER I • INTRODUCTION 1 CHAPTER II. MATHEMATICAL FORMULATIONS 5 11.1 Requirements of a Mathematical Representation 5 11.2 Coons and Bezier Formulations 7 Coons Patches 7 B6zier Patches 11 JJ.3 Local Basis Formulations 15 B-splines. 15 Interpolating Splines. 23 11.4 Computation Algorithms for Local Basis Splines. 27 11.5 Why Use 8-sp I i nes? 30 CHAPTER III. THE 3-0 8-SPLINE DESIGN SYSTEM 35 111.1 System Hardware Configuration 35 111.2 The 3-0 Environment. 37 Head-Mounted Display. 37 3-0 Wand. 42 Display Equipment. 45 111.3 Communication ~ith the System. 47 ii System Features. Human Factors. Off- I ine Shaded Pictures. CHAPTER IV. CONCLUSION AND SUMMARY IV.l S~etam Evaluation IV.2 Other Usee for the Head-Mounted Display IV.3 Lessons in Hardware. REFERENCES APPENDIX 1 POSITION DETECTION COMPUTATIONS Al.l Head-Mounted Display Computations A1.2 Wand Computations APPENDIX 2 3-D DIGITIZING IN REAL-TIME ACKNOWLEDGEMENTS FORM DD1473 iii 47 52 54 57 57 60 61 63 65 65 67 71 75 76 LIST OF ILLUSTRATIONS 2.1 Boundary Curves for Coone Patch 9 2.2 Binomial Baele Functions 13 2.3 Example of Bezier Curve 14 2.4 Bezier Control Net and Surface 16 2.5 Quadratic B-spl ine Basis Functions 21 2.6 Biquadratic B-spl ine Basis Functions 22 2.7 B-spl ina Quadratic Curve 24 2.8 Biquadratic B-spline Surface 25 2.9 Convex Hul I for Cubic B-spline 33 3.1 System Hard~are Configuration 36 3.2 Display System 38 3.3 Head-Mounted Display Mechanism 40 3.4 Head-Mounted Display Function Diagram 41 3.5 3-D Wand 48 3.6 Pictures from CRT 50 3.7 Klein Bottle 56 A1.1 Transformation Matrix Chart 66 A1.2 Diagram for Wand Computations 68 A2.1 Configuration for Finding 3-D Coordinates of LED 72 iv ABSTRACTt This report describes an experimental system for designing free-form 8-sp II ne surfaces usIng a head-mounted d I sp I ay. In this system, the interaction with the surfaces takes place In three dimensions as the designed object's shape Is updated In real-time. The report also examines some of the problems that shou I d be so I ved in bu i I ding a pract I ca I three-d i mens i ona I computer-aided geometric design system for surfaces. tThis report reproduces a dissertation of the same title submitted to the department of Computer Science, University of Utah, in part i a I fu If I I I ment of the requIrements for the cle ~wee of Doctor of Philosophy. v CHAPTER I INTRODUCTION Typ i ca II y, three-dimensional computer-aided geometric design (CAD) systems have primarily been experiments on the feaslbll ity of a particular mathematical representation I ike the Coons patch or B~zier patch U,2,3,4,5,22J. This study focuses pr i mar i I y on the prob I ems of 3-0 interaction in a three-dimensional environment using a head-mounted display and 3-0 wand. The part i cuI ar mathemat i ca I formu I at ion on which much of this study is based is the 8-spline (for Basis-spline}, which was first proposed in a computer-aided geometric design context by R. F. Riesenfeld[6J. Thle work has been done with three global objectives in mind. The first objective was that the interaction with the 3-0 surfaces actually take place in three dimensions rather . than with various two dimensional orthographic and perspective projections. The devices used to accomp I ish th i s object i ve were a head-mounted display and a 3-0 wand. The head-mounted display wee bui It by Ivan E. Sutherland and coworkers at 2 Harvard Un i vera i ty [7] • Th i e d i ep I ay ~o~as moved to the Univerei ty of Utah ~o~hen Ivan Sutherland joined the faculty here. This 3-0 interaction objective also required that a device be avai I able that al lo~o~s the user to communicate the geometric positional information to the system. A 3-0 ~o~and to al lo~o~ this type of interaction ~o~as constructed at the University of Utah and ueed in this eyetem. The second objective in building this system ~o~as that it be very c I oee to rea 1-t I me In response. The system shou I d appear to the user to respond I nstantaneoue I y, or at I east delays in response should be no greater than one or t~o~o seconds in the ~o~orst case and far less in most cases. In my opinion, this requirement is a very important one to impose on a computer-aided design system. When ~o~e sculpture an object in clay ~o~e al~o~ays get Immediate response. To be forced to ~o~ait four or five seconds to see the results of deformations made to an object can be very frustrating, as anyone ~o~ho has used a CAD system that responds in th i e ~o~ay kno~o~s. The user can I ose eight of creative i deae durIng these ~o~a it i ng peri ads. Therefore, In this system I have attempted to shorten the computation algorithms for the B-spline surfaces and leave as much of the computation as possible to a special purpose 3 graphics processor. The third objective of this system was to provide a mathemat l ca I formu I at ion for the user that requires I itt I e or no mathematical background on hie part in order that he be able to use it effectively. This restriction seems easy to satisfy. However, when coupled with the requirement that the formulation aleo eatiefy the physical needs of derivative continuity and the subjective attribute of \"fairness\", which is important from a designer's point of view, the requirement is more difficult to eat i sfy. A II of these things ehou I d be present in the mathematical representation with no e><(t), y(t), z(t) l, where t I e a parameter that varies bet~o~een 9 and 1. This formulation le a><,y) ie, ho~o~ever, unsuited to the needs of geometric CAD. A form that is suitable for this class of problems is f (s, t) • [ ><(e, t), .y(e, t), z(s, t) l, where both a and t are parameters that vary bet~o~een 9 and 1. Prior to the period in ~o~hich Coons and others did their initial ~o~orK ~o~ith surfaces for geometric CAD, doubly curved surfaces ~o~ere avoided ~o~henever possible in design systems because of the d iff i cuI ties in representing these surfaces by plane projections and because of the cost of manufacturing them. When comple>< fi I let surfaces ~o~ere needed to blend portions of castings together, the job of interpreting them ~o~as left to the pattern maKer. In the aircraft industry ~o~here the shape of the surface is critical for aerodynamic reasons, a technique Kno~o~n as \"lofting\" ~o~as used. This lofting procedure was carried out by specifying families of mathematical curves 7 at a number of para II e I pI ane sect i one and i nterpo I at i ng a surface through these curve sections. This technique of course breaks down when the surface is comp I e>< enough to prevent definition by plane parallel curves. 11.2 Coone and B6zier Formulations. Coons Patches. One of the earliest attempts to use the computer in geometric computer-aided design resulted from investigations Into surface represent at i one by Steven A. Coons at M. I. T. In hie report[ll, he describes a technique for blending the boundary curves of patches together in a way that ensures derivative and positional continuity under conditions that can easily be specified. Hie work was used as the basis for computer aIded design systems by Arm it [4], Ferguson [51 , and Peters[22l. The method of surface description developed by Coons consists of building up a piecewise continuous surface by aesembl ing together eur~ace patches. It . is an interpolation approach because each patch is defined by a bivariate Hermite type interpolation to boundar~ conditione that consist of 8 functions of a single variable. Each patch is specified by four boundary curves and pose i b I y higher order cond i t ions on these boundaries. The only restriction on these boundary curves is the \"compatibility constraint\" that they intersect at four corners. They are not restricted to be planar curves. A patch side may even be degenerate, thus allowing asymmetric triangular patches. Also, patches may be split so that complexity is Introduced only where the shape is complex. The following discussion of the Coons formulation closely fo I I owe Forrest [19]. In this discussion, Q's are used to denote the boundary curves that define the surface and P's are used to denote the defined surface. The boundary curves of a Coons patch are denoted by QC9,v), QCl,v), Q(u,B) and Q(u,l). They intersect at the pointe 0(9,9), 0(9,1), 0(1,9) and Q(l,l) (see Figure 2.1). Ue i ng an abbreviated notation, we I et i ·B or 1 and jcB or 1. The boundary curves are then represented by Q(i,v) and Q(u,j) and the four corners by Q ( i, j). The cross boundary (tangent) tlopee are represented by CuCi,v) and Cv(u,j). We can now construct the canonical form of a Coons patch satisfying the boundary cohditions Q(i,v), Outi,v), Q(u,j) and Ov (u, j) : 9 Q(1A.,1) Q(14.,o) y Figure 2.1 Boundary Curves for a coons Patch P ( u, v) • a< i , v) f, ( u) + au ( i , v) g, < u) + a__ • -tz + t 3• (2.2) The auvll,j) terms in (2.1) are the cross partial derivatives at the four corners. Coons calls these the \"t~o~ist vector\" terms. They eliminate un~o~anted quasi-flat regions at the corners of a patch. The main advantage of the Coons patch of (2.1) is that it is extremely general. The boundary curves may be of any form ~o~hatever. The Coons patch can therefore be joined to a prev i oue I y defined surface very eaa i I y so I ong as the curve defining the boundary of the surface Ia parametrized. 11 The main disadvantage of the form of (2.1> is the Inclusion of the twist vector term. These terms, representing the cross partial derivative of the surface with respect to the two parameters at the corners, are d iff i cuI t for even the mathematician to use. Of course if the twist vector terms are not explicitly dealt with . by the designer in a system, that is if the system keeps them hidden from the user, then they present no special problem aside from the computation. B~zier Patches. P. B~zier of Regie Renault in Paris has developed a system for curve and surface representation [111. It is not quite as general as the Coons method, but it does not require that the user have as detailed a knowledge of the formulation as with the Coons formulation. Some people consider this feature an advantage. Arguments for this point of view wi I I be discussed in section 11.5. 86zier methods are discussed here because they form the basis of a system that is actually used to design automobl lee at Renault and because of their relation to 8-ep I I nee. A 86zier space curve is a vector-valued polynomial approximation to a polygon, or sequence of points, v9 , v., ••• , v.,, of the form 12 B.(e) • fe(e) Ve + f, (e) v, + ••• + f .. (s) v .. , (2.3) where the fJ(e) turn out to be the binomial probability density functions (Bernstein polynomials[SJ). Figure 2.2 shows the binomial basis functions for m-5. Note that since all of the functions except fe are zero when s•B, the curve interpolates, or passes through, the point ve. Likewise, since all except f .. are zero when s•l, the curve Interpolates at v... AI I other pointe control the global shape of the curve in the amount of the weights they are given by their respective basis functions. An i I lustration of a B~zier curve is shown in Figure 2.3. An Important feature of thl s type of curve is that it . I i es ent 1 reI u withIn the convex hu II of the points. The curve follows the global shape of the \"control polygon\", yet it is much smoother. A surface can · be generated by a two dimensional array of control points, using for the weighting functions the tensor product of the univariate weighting(or basis) functions. The tensor product basis functions are (2.4) BINOMIAL DISTRJBUTI~N FOR N = 5 Figure 2.2 Bernstein Basis for Polynomials of degree 5. 15 giving for the surface equation S •. n(s,t) •fee(s,t} Vee+ fet(S,t} Vet+ ••• + f...,(s,t} V~.n• A two dimension a I con tro I point array and the generated B~zier surface are shown in Figure 2.4. Since this is a tensor product form, the surface interpolates the points at the corners of the control net. The boundary curves are the univariate curves associated with the bounding points in the control net. 11.3 Local Basis Formulations. B-sp II nee. The first work with B-splines in a computer aided geometric design context was done by Richard F. Riesenfeld and is reported in his Ph.D. thesis at Syracuse University[6J. In the following discussion of B-splines we will use an approach that more closely follows a development due to Coons[12J. In defining the shape of an object we might I ike to be ab I e to define the poe it i one of a number of 'points on it and 16 Figure 2.4 Bezier Surface and Control Point Array. 17 have the computer program use a suitable formulation to \"fi j1 In\" the regions of the object not e> (m+H • 2m+5, or r • 1 + 3/(m+lL (2. 8) Obviously this implies r•m•2, since r and m must both be integers. From the conditions of (2.7), the normalization condition and the restriction of m•2, the basis functions are determined to be: Be(s) • U-s) 2/2, Bde) • (-2e2 + 2e + 1) /2, Bz(e) • e 2/2. (2. 9) 20 A plot of these functions is sho~n in Figure 2.5. The same argument holds for higher degrees of continuity. WIth the addition to (2.6) of the requirement that P\"J•t (1) • P\"J (0), ~e see that for this case the functions are 8e(s) • 83U-s), 8t(s) •8zU-s), 8z(s) • (-s3 + 3sz + 3s + 1) /6, 83(s) • s 3/6. (2.10) The usual tensor product form for surfaces yields for the bivariate 8-spl ine: (2.11) A halftone picture of the bivariate basis corresponding to (2.9) Is sho~n In Figure 2.6. This picture ~as generated using the WatKins process£131 by breaKing each patch into 16 polygons. This is a plot of the functions in parameter space. Each function has been plotted separately in its o~n coordinate system, and the coordinate systems have been displaced in such a ~au as to I I lustrate each function separately and at the same time she~ the tangent continuity conditions bet~een functions. t Figure 2.5 Quadratic B-spline Basis Functions N ....... Figure 2.6 Tensor Product of Quadratic B-spline Basis 23 Figure 2.7 ehowa a set of points that has been appro>< le Indicated by an ><. Notice that the curve interpolates at the endpoints. This is because multiple vertices occur there, and hence the curve is degenerate there. Figure 2.8 shows a surface that was generated using their bivariate form. The control I ing points for the surface are shown by the control net in the same figure. I nterpo I at i ng Sp II nee. E. gett lng Catmu I I and R. Rom have described a method for Interpolating sp I ines with a local basis formulation[141. The form of the basis functions for interpolating splines can be obtained in a way similar to the 8-spl ine development above. Suppose we have a sequence of points, ve, vlt ••• , v.,, that we wish to fit with a piecewise cubic curve that is of the form Pn(e) • fe(e) Vn + ft (a) Vt+n + fz(s) Vz•n + fll(a) Va+n• If we impose the constraints (2.12) Figure 2.7 Quadratic B-spline curve; Tangent continuity Figure 2.8 Control Point Array and Generated Biquadratic B-spline Surface. Pn (0) • Vt+nt Pn(l) • Vz+nt P'n(0) • c(vz+n - Vn)' P'nU> • c(v3+n- Vt+n), 26 (2.13) where c le a positive constant, we find that the basis functions are determined to be fe(s) • c (-s3 + 2s2 - s), ft(s) • (2-c)s3 + (c-3) sz+ 1, fz(e) • ft U-s), f:~(e) • feU-e). (2.14) The remaining parameter, c, can be adjusted to control the magnitude of the tangent of the curve at its ends. The value c•l/2 was arbltrarl ly chosen for all of the work described in this thesis. However, this remaining parameter might be adjusted to improve the subjective \"goodness of fit\". As with 8-splines, the bivariate form for these functions Is obtained by using the tensor product of the univariate basis funct I one. 27 11.4 Computation Algorithms for Basis type splines. The surface formu I at ion for both the 8-sp I i nes and the interpolating splines discussed in section 11.3 is, for cubics, of the form 3 \"'\\:\"\"\"\" s •. n(s, t) • LJ i , j = 0 (2.15) It is interesting to look at the number of computations required to find a point on the surface. We choose a particular value fore and t, evaluate the sixteen bicubic functions fJk(s,t) for this choice of sand t, and perform the sum over j and k from B to 3. Each part of the sum involves 3 mul tip I ies, one for each coordinate. In addition, each point influences the shape of 16 different surface patches S ... n• Therefore, each time a point's coordinates are changed, the above computations must be performed 16 times for each value of s and t at which the surface is to be evaluated. One of the goals of· the system described in this thesis was to be ab I e to · update the surface in 1120 second or I ess when a control point is moved. Obviously this goal cannot be met if the number of computations cannot be reduced from the number mentioned above. 28 Since the graphical equipment used in t~is system is capable of dra...,ing only straight I ine segments, a parametric I lne on a surface patch is dra'\"'n as a sequence of straight I ine segments. The number of straight line segments per parametric I lne and the number of parametric lines per patch determine the number of pointe at '\"'hich the surface equation must be evaluated. The first step in reducing the arithmetic in the computations is to choose appropriate intervals for values of the parameters e and t and form a table of precomputed values for each of the lS basis functions. If for example '\"'e choose I nterva I e of 1/5 for s and t, then a tab I e of 3S va I ues for each function is generated, corresponding to these values of s and t. We can then do a table lookup instead of evaluating the function. The next step in reducing the arithmetic is to maKe use of the local character of the approximations that the basis sp I I ne s g i ve. the surface's A given point influences only a I imited part of shape. Thus, for a particular choice of parameter Intervale for the basis functions, the surface can be comple~ely evaluated at initialization time and stored in tablular form. When a point is moved, only those patches it I nf I uencee need to be a I tared. For the parameter spacing 29 mentioned above, this means that 3B,•t3 storage I ocat ions are needed for each patch. The final reduction in arithmetic ie obvious when we recognize that a movement of one point causes only one of the terms In (2.15) to change. That is, if point (q,r) is changed by Av~, then the surface changes by (2.16) for j,k•9,1,2,3. Thus for the parameter spacing mentioned above, if a point is moved, 16 patches must be updated. A minimum of 30 points on each must be re-evaluated. (We can omit one boundary parametric line per patch since it would be evaluated twice.) Each of these evaluations Involves 3 multiplies and 3 adds, one for each coordinate. Thus 1440 multiplies and 1440 adds must be performed. The POP-19 instruction time required for this number of operations is appro~lmately 25 mi I lieeconds. This ie · wei I within the 59 mi llleecond requirement mentioned above. 30 11.5 Why Use B-splines? In the previous sections of this chapter, the essential points of most of the major mathematical representations that are in uee In CAD eyetems today were discussed. B-spl ines were choeen for the major mathematical formulation in this worK. From Section 11.2 and from the form of (2.1), we see that the Coons patch i e the most genera I formu I at ion of those discussed. The boundary ·functions Q(i,v), Q(u,j), OuCi,v) and Cv(u,j) may be any parametric functions. For example, the space curves might be semi-circles or parts of a complex molding. This fle>ced in degree. It is a local appro)(imation. The amount a given point influences the surface is limited in e)(tent by the weight of its basis function. For the purposes of the free-form goals In this work, this feature was considered desirable. Another reason that 8-eplines are preferred over the others is that 8-spline surface patches are automatically continuous with adjacent patches. This is true if they share boundary pointe, and It Is an intrinsic property of the local 32 basis approach. With both Coons and Bezier patches, the continuity between patches is explicitly dealt with by matching tangent vectors, or tangent boundary functions, at the boundaries of the patches. Of course this is implicitly what we do with B-spllnes when we cause adjacent patches to share boundary points, but it is less distracting to deal with points than with relative ve~tors. When a control point of a B-spl ine surface is moved, its Influence on the surface is local, and moving it does not alter the continuity. This is not true of the other approaches. AI I of the advantages of B-spl ines discussed to this point are a I eo shared by the Catmu 11-Rom lCR) i nterpo I at i ng ep I i nes discussed before. Actually, these functions might be cons i dared preferab I e to B-sp I i nes because they i nterpo I ate. However, there is a very important property that B-spl ines have that is not shared with the CR sp I i nes. A B-sp I i ne curve always I ies within the convex hul I of the points it is approMimating. The convex hull for a cubic curve is shown in Figure 2.9. The reason for this property is that the B-spl ine curve Is a weighted average of the vertex coordinates with the basis functions as weights. Since the basis functions are always Ieee than unity and are positive for alI values of the parameter, the curve lies inside their convex hul 1. Figure 2.9 Convex Hull for a Cubic B-spline Curve 34 The f ina I cr i ter ion in choosing B-sp I i nes &.~as the ease with which they can be calculated incrementally. This is true of both B-splines and the interpolating type. In fact, the computations for both are identical; only .the basis tables must be changed to go from one to the other. CHAPTER III THE 3-0 B-'SPLINE DESIGN SYSTEM 111.1 System Hardware Configuration Figure 3.1 shows the hardware configuration for the design system. The main computing engine for the system is the POP-lB computer. This machine controls the operation of the rest of the eyetem.Ourlng normal operation, the POP-1B program stays in a I oop in which it reads the counter va I ues for the head position and wand position, the function switches and the wand buttons. This is done through the POP-lB 1/0 Buss interface. From these counter values, the main program computes the separate matrices that maKe up the head position matrix and finds the wand position. Then if any changes must be made to the surface, the incremental computation is done; and the display fl le for the display processor is updated. The secondary computer in the system is the LOS-1 display processor. This machine's only tasK is to generate the composite viewing transformation and execute the drawing PDP-10 1/0 BUSS PROCESSOR DISPLAY MEMJRY r PK>CESSOR FUNCTION SWITCHES 1/0 BUSS INTERFACE MATRIX MULTIPLIER Figure 3.1 Hardware Configuration for the Line-drawing System. CLIPPING DIVIDER LINE GENERATOR WAND COUNTER IDGIC HEAD MOUNTED DISP~ 37 instructions in the display fi Je. It has access to the main memory via the PDP-18 Memory Buss. Figure 3.2 is a picture of the display processor and 1/D Buss interface equipment. When the work described in this thesis first began, the system as shown In Figure 3.1 did not exist. There were two principal components missing: the Matrix Multiplier and the Clipping Divider. In addition, the display processor, the counter logic and the I ine generator did not worK properly. The Matrix Multiplier was purchased from Systems Concepts, and the Clipping Divider was designed and bui It at the University of Utah[151. When both of these devices were operational, the rest of the system was repaired. 111.2 rhe 3-D Environment Head-Mounted Display. The principal hardware component of the 3-0 environment is the head-mounted display. This display was the first of its Kind ever to be built. As mentioned before, it was brought to the University of Wtah when Ivan Sutherland joined the faculty here In 1968. Figure 3.2 Picture of Display Hardware, including counter logic and I/O and Memory Buss Interfaces. 39 Figure 3.3 Is a picture of the head-mounted display, which prov idee the three-d i mens i ona I d i sp I ay environment. The mechanism of the head-mounted display permits the computer to sense the position of the observer in the room and the angular attitude of his head. Consequently, the computer \"Knows\" what the observer ought to be able to see and presents the appropriate scene on two miniature CRT's, one for each of the observer's eyes. If there is a three-dimensional object defined \"in\" the computer, the observer can see it, walK around It, move closer or farther away, or even walK through it. The display uses six shaft encoders to measure the independent quantities needed to determine the six degrees of I freedom that one rigid body has relative to another. The six quantities determine the orientation of the viewing part of the head-moun ted d i sp I ay reI at i ve to the room. There are five angu I ar measurements and one d i sp I acement measurement. The first of these determines the angle of rotation of the entire display mechanism relative to the room(see Figure 3.4). The next two are the angles of rotation about the axes of a universal joint, which Is located at the top of the room. Then the d i sp I acemen t measurement i s made from the un i versa I joint at the top of the room to one located just above the viewing mechan i em. The I ast two measurements are the ang I es in the Figure 3.3 Head-Mounted Display Viewing Mechanism. 4o 41 0( -~-Upper U-joint \" E. _,Lower U-joint ' Di-splay Electronics Figure 3.4 Function Diagram for Head-Mounted Display Position Sensing Mechanism 42 lower universal joint. A more detailed description with the appropriate transformation matrices shown is given in Appendix 1. When the system le first initialized, the head-mounted display Is placed In a calibration stand. The counters for the six ehaf t encoders are then preset to the ca I i brat ion va I ues that fix the location of the origin of the room-fixed coordinate system relative to the CRT headset. Movements of the di~play mechanism cause the shaft encoders to send pulses to their respective counters causing them to count up or down. The counters are trIggered whenever a pu I se comes from the shaft encoders. The counter values are read by the main POP-lB program each time the head position matrix is to be calculated. The va I ues are then used to compute the matrices, which are comb I ned by the matrix mu It i p II er to form the head poe it ion matrix. Detai Is of these computations are given in Appendix 1. 3-0 Wand. A substantial effort has been made at the University of Utah to build a good, real-time, 3-0 digitizer that has no mechanical constraints. One such effort has been an attempt by several students to build an acoustical digitizer, or 3-0 43 tablet, using a method like that used in the SAC Tablet£161. Three very I ong cy I i ndr i ca I microphones were mounted a I ong mutually perpendicular axes, and the appropriate electronics were used to find the 3-D coordinates of the SAC spark pen. Because of the difficult~ and expense in , maintaining the microphones, this project was abandoned. The moat recent 3-D digitizer attempt made at the University of Utah was the Burton Box by Robert Burton£171. This system consisted of 4 rotating disks with email radial elite cut in them. Behind each disk were two photomultiplier tubes and an opt i c;a I system. As the disks rotated, a I i ght emitting diode (LEO) was very brief I y turned on. The LED and the s I it that passed in front of the photomu It i pI i er define a plane containing the LED. If the LED is \"visible\" by all of the photomultipliers, then the system simultaneously solves 8 planar equations for ~n intersection · point. This point represents the location of the LED. The problems with this system were numerous. The worst problem wae that the standard deviation of the 3-D coordinates of a ~tationary LED was 7 millimeters. Stated in other terms, one out of every 199 samplings of the coordinates of the po i nt would be outside of the radius of a ping-pong ball. Another annoying problem with the Burton Box was that it could not be 44 in operation fer more than 30 minutes at a time due to excess heat generated by the motors that ..,ere rotating the disKs. This heat caused the photomultiplier outputs to be excessively noisy. Much has been learned about the 3-0 digitization problem through the efforts described above. believe that an approach that utilizes some of the ideas in Burton's thesis ..,iII lead to a system that can accurately determine 3-0 coordinates in real-time. A possible system that accomplishes this Is proposed In Appendix 2. The only reliable 3-0 ..,and to be bui It at the University of Utah I e based en a mechan i ca I poe it ion sene i ng mechanism. In this device, the wand poe it ion i e found by measuring the lengths of 3 ..,ires attached to a point on the handle of the wand and extending to three housings mounted on the ce i I i ng. The housings are located at the corners of an isoceles triangle. Inside each housing is a drum around ..,hich the ..,ire le wrapped, a negator-spring motor, and a shaft encoder. The shaft encoder records the angular displacement of the drum, and from this measurement the amount of wire extending from the housing Is determined. The purpose of the spring motor is to maintain a constant tension In the wire for varying lengths. The wand poe it ion is computed from the intersection of three 45 spheres with centers at the three housings and radii equal to the lengths of wire. The detai Is of the computation wi II be found in Appendix 1. Oleplay Equipment. The line drawing display equipment used in this system is bul It around the Evans and Sutherland LDS-1 display processor. This processor Is a special purpose computer that has access to the PDP-1B storage by way of the Memory Buss(see Figure 3.1}. The processor-to-processor communication taKes pI ace over the PDP-1B I /0 Buss. The LDS-1 processor is initialized by commands issued over the 1/0 buss by the controlling PDP-1B program.These commands initialize various configuration and status registers in the processor, Matrix Multiplier, and Clipping Divider. Then a command is issued to start the processor at a certain storage location, and the LDS-1 begins executing the display program. AI I drawing commands and pipeline device commands for the Matrix Multiplier and Clipping Divider are passed on to the command pipeline. If the command is to draw a line, the Matrix Multiplier transforms the endpoints of the I ine into the viewing coordinate system and passes it on to the Clipping 46 Divider. The Cl i~ping Divider then clips the I ine to the pyramid of vision, thereby eliminating part or alI of the I ine, and performs the perspective division on the endpoints of the clipped line. The resulting line is scaled to scope coordinates and given to the I ine generator, 1-1hich generates the ana I og ramps for beam def I ect ion and sends them to the deflection electronics for the scope. This LOS-1 Display Processor is a very po1-1erful device. A number of Its features have made the implementation of this eystem· much easier. Probably its most inportant feature is that It is a processor and it executes its o1-1n program. This means that It can Interrogate memory locations and has its o1-1n instruction eet. Since the LDS-1 instruction 1-1ord has the same boundaries as the PDP-19 instruction 1-1ord, it can be programmed by maKing OPDEFS in the MACR019 Assembler. It also has a stacK and subroutine capability. Another useful feature of this display system is that the Matrix Multiplier can multiply matrices together. For example, in finding the vie1-1ing transformation matrix each frame, the POP-19 program generates 8 matrices and the Matrix Multiplier combines these separate transformations to form the composite vie...,ing transformation. 47 111.3 Communication with the System. AI I communication with the basis spline design system is through a set of five buttons on the handle of the wand (see Figure 3.5), a panel of 18 switches, and the teletype. When the system is Initialized, it allows the user to select a file to start the design. These files are stored on DECTAPE. The fl le selected Is read into storage and the corresponding surface is created and entered in the display file. The user can then interact with the surface by moving the control points. Interaction with the surface in this system consists of free, i.e. unrestricted and unconstrained, movements of the centro I pointe. A.fter comp I et i ng some stage of the design, intermediate results of the design can be saved, and the user may continue designing. System Features. A number of features were added to the first version to make it easier to design objects with the system. Since the objects designed with this system might be larger than the space defined by the I i mite of the mechan i ca I head pes it i on sensors, the ability to rotate and translate the object was added. This is done by selecting the appropriate switch on the switch canso I e. The f i ret two buttons on the wand are then Figure 3.5 Handle for 3-D Wand. 49 treated as a two bit speed control. The switch on the bacK of the handle Is used to reverse direction. The object is rotated or translated by maKing the appropriate changes to its transformation matri~ rather than by changing the data. In normal operation, the system displays only lsoparametric curves(rendered as collections of straight I ine segments) in the surface and emphasized dots to represent the control points. Figure 3.S shows some typical views as seen on the d i sp I ay. As contra I points are moved, the appropriate surface patches are updated in real-time. This gives the user Immediate feedback on the shape of the object. The control net Is not d i ap I ayed because there wou I d then be too much deta i I being displayed, and the object would be difficult to see. However, since the user is allowed to move the control points freely, It occasionally happens that the connectivity of the control points becomes confusing. In these cases, it is almost essential to have the cont~ol net displayed. Therefore another switch was added that allows the user to select either the control net or the surface to be displayed. In order to be able to update the surface in real-time, a special computation algorithm had to be used. The detai Is of this algorithm were discu~sed in Section 11.4. Since the LOS-1 uses fi~ed point . arithmetic, this algorithm suffers from 50 Figure 3.6 Typical views of design objects as seen by the user. The upper left picture is the CR interpolating surface. The lower left picture shows the control point array for the upper right. The lower right is a Klein Bottle designed with the system. 51 round-off problems. As a result of accumulated round-off errors, the part of the surface influenced by a given point beglne to look ragged after the point has been moved around a lot. When the surface begins to look too ragged, the user can cause the surface to be comp I ete I y computed over again by pressing one of the wand buttons. This computation usua I I y takes from 2 to 5 seconds of computer time. To keep the PDP-10 loop under 50 milliseconds alI of the time, a special searching method is employed to find when the wand is close enough to a point to grasp it. A search through the comp I ete set of contro I points is performed on I y in two cases: 1) if both buttons 1 and 2 on the wand are pressed or 2) if the wand is not already grasping a point. In this way, the main program does not usually have to both find which point(s) the wand Is near and also update the surface for the point(s} being moved. The only case for which the update must be done ~o~h i I e searching for points is when both buttons 1 and 2 are pressed. This exception allows the user get additional points ~o~hi le also holding onto those he has. Another special case arises when the user decides he ~o~ants to separate two {or more} points that he has merged together. To al lo~o~ this kind of control, button 1 is used to grasp only 1 point at a time, and button 2 is used to get more 52 than one point. Human Factors. Severa I prob I ems have been encountered by the. peep I e who have used this system. The most annoying of these problems is that the wires for the L-~and get tangled in the position sensing mechanism for the head-mounted display. This makes it difficult to maneuver around in the room as freely as one L-~ould I ike. Another problem is that it is not easy to attach the vieL-~lng portion of the h~ad-mounted display to the head. This i e because of the tension in the mechan i ca I poe it ion sans i ng mechanism. The user must hold onto the head position sensing mechani em L-~i th one hand and onto the L.~and L-~i th the other. These difficulties in using the system L.~ere accepted since to improve the situation L-Ie L.~ou I d have to improve the sensing mechanism and perhaps make it non-mechanical, L.~hich is a complete problem in itself. An interesting problem arises L-~hen L-~e try to use the L.~and to graep a point in the room. When the first version of the aye tem was wr i tten, the wand was d i ep I ayed as a sma I I cube about 3/4 inch per side, and the control points for the surface were d i ep I ayed as dots. To grasp a point, the user had to manipulate the wand unti I one of the control points was inside 53 the cube and then press a button on the wand handle. A I ternate ltJ, he cou I d f i ret press the button and then search for the point. This was done by holding the wand so that, from the user point of view, the point was inside the boundaries of the cube on the diplay, then moving the wand forward and backward unti I the depth of the point was found. This procedure proved to be very tiresome. The f i ret change to this procedure was to draw a cross hair inside the cursor cube that is about four times the size of the cube. As a que that the wand is close to a point, when the wand gets less than 4 inches from any point, the cross hair decreases In size as the Manhattan distance (that is the rectangular distance) to the closest point decreases. This addition makes It much easier to find a point with the wand. One f ina I improvement that was made was to draw a I i ne from the center of the cursor cube to the nearest point when the cursor is I ess than five inches from any point. This provides additional aid in finding the depth of the point. A number of improvements in this aspect of the system have been suggested by people who have used the system. One of the best suggestions was to use the wand as an aiming device. Used In this way, the wand can make relative movements to points by 54 aiming at the point and grasping-at-a-distance ~hen a button is pressed. Another suggestion ~as to display the control points as sma II cubes rather than dots, thereby giving a good depth cue ~ith the displ~y of the point. Another ~as to display the environment in stereo. A II of these suggest i one seem to be reasonable attempts at solving the problems of finding a control point ~ith the ~and. Ho~ever, improvements of this sort come from an endless source, and none of them attacK the real problem. The real problem is that one needs a multiple point ~and and more freedom to move about in the 3-0 environment than this system ~iII al lo~ because of the mechanical position sensing mechanisms. Off-line Shaded Pictures. A II of the surfaces in this system ~ere rendered by dra~ing some of the parametric I ines in the surface patches. No attempt ~as made to remove any hidden parts of the surfaces or provide any type of shading. The reason that the surfaces ~ere rendered l n this fashIon is that smooth shaded hidden surface a Igor i thms take too I ong to compute to be usefu I in a real-time system. (Actually, ~ith enough hard~are, thts could be done in real-time. Shaded picture systems exist that provide this type of response [18].) None the I ess, a mechanism 55 has been provided that a II o~o~e the user to record a design sequence in real-time and reconstruct the sequence in a smooth-shaded, halftone picture movie. An Interrupt service routine ~o~as incorporated in the design system as a selectable feature. Each 1/12 second, both the head position transformation matri>< and all incremental changes to the coordinates of control points that have taKen place since the last frame are ~o~ritten on disK. Another set of programs that uses the WatKins hard~o~are then uses this information to create a halftone movie. Figure 3.7 is a halftone picture of a Klein bottle generated by this process. Several sequences have been recorded in this fashion, including a wa I k through a K I e in bot tIe. These sequences and sever a I I ive action sequences, ~o~hich ~o~ere taken from the face of the CRT during a design sequence, have been submitted as part of th i a thee i e [19]. Figure 3.7 Halftone picture of the Klein bottle produced with the system. CHAPTER IV CONCLUSION AND SUMMARY IV.l System Evaluation. The system described in this thesis is an e><-d) 2 + y2 + zz, Subtracting the r 3 equation from the rz equation we obtain >< • (rl - ri) I 4d. Then eliminating z from the first two equations we get for y: Then z is obtained from any of the three equations using the prev I oue I y computed va I ues of >< and y. S i nee a square root mue t be taKen In any case, the e i gn is negative because the wand is a I ways assumed to be be I ow the pI ane containing the housings. 7G Biles routines to find the head position matrix and the wand position are available in the directory at UTAH-19 under fl le name HMOW.BLI. APPENDIX 2 3-0 DIGITIZING IN REAL-TIME It ~as mentioned in Chapter 4 that a real-time multi-point 3-0 digitizer ~ould maKe it possible to eliminate the mechanical position sensors for the head mounted display. Here ~e look at a possible method for finding 3-0 coordinates in rea I-t i me. Reticon Inc. no~ produces a linear array of photodiodes that has 512 light sensitive elements. Each element is 1 mi I square •. so the entire sensitive portion of the device is e.ea1 inches ~ide and 0.512 inches long. If ~e mount the device ~ith a cylindrical lens in front of it as eho~n in Figure A2.1, then a portion of the room is divided into 512 planes that e>< i mate I y 1/SB second, ~hi ch is c I oser to the required time. The obvious problem ~ith this approach is in the optics. If there ~ere some optical system that ~auld focus the entire field of vie~ in the room onto a I ine, then ~e ~auld gain several orders of magnitude in energy incident on an element in 74 the array, thereby reducing the integration time. A simple cyl lndrlcal lens does not do this. It ~Ill focus one point in the room onto a line in the image apace of the lens, but If the point Is moved, the line moves. The result is that a cyl indrlcal lens focuses the room onto a plane. Nonetheless, this approach appears to be a promising method for real-time position detection. ACKNOWLEDGMENTS This study came about as the result of a seminar given by Steven A. Coons at the University of Utah in which he gave a stimulating presentation of the B-spl ine work being carried out at Syracuse University by R. F. Riesenfeld. thank Steve. also thank Ivan Sutherland for encouraging me to get aquainted with Steve, for encouraging me to pursue this work, and for being my committee chairman. It has been stin1ulating to work with him. I also thank David Evans and Rich Riesenfeld for sitting on my thesis committee. I could not have made a better choic e . This work required a considerab l e effort in hardware design. thank Malcolm Blanchard for his wi II ingness to implement the design of the Clipp i ng Divider. e speciaii!J th.Jnk Martin Newell, without whom this project mig h t not hav e been completed. Martin was a source of constant encouragement, help, and ideas. In many ways, he was my resident advisor. UNCLASSIFIED SECURITY CLASSIFICATION OF THIS PAGE (When Data Entered) REPORT DOCUMENTATION PAGE READ INSTRUCTIONS BEFORE COMPLETING FORM 1. REPORT NUMBER r GOVT ACCESSION NO. 3. RECIPIENT'S CATALOG NUMBER UTEC-CSc-74-120 4. TITLE (and Subtitle) S. TYPE OF REPORT a PERIOD COVERED 3-D DESIGN OF FREE-FORM B-SPLINE SURFACES TECHNICAL REPORT 6. PERFORMING ORG. REPORT NUMBER 7. AUTHOR(s) 8 . CONTRACT OR GRANT NUMBER(s) JAt'vffiS HENRY CLARK DAHClS-73-C-0363 9. PERFORMING ORGANIZATION NAME AND ADDRESS 10. PROGRAM ELEMENT, PROJECT, TASK Computer Science Department AREA a WORK UNIT NUMBERS University of Utah ARPA Order #2477 Salt Lake City, Utah 84112 11. CONTROLLING OFFICE NAME AND ADDRESS 12. REPORT DATE Defense Advanced Research Projects Agency September 1974 1400 Wilson Blvd. 13. NUMBER OF PAGES Arlington, Virginia 22209 81 14. MONITORING AGENCY NAME a ADDRESS(if different from Controlling Office) 15. SECURITY CLASS. (of this report) UNCLASSIFIED 15a. DECL ASS I Fl CAT I ON/ DOWNGRADING SCHEDULE 16. DISTRIBUTION STATEMENT (of this Report) This document has been approved for public release and sale; its distribution is unlimited. 17. DISTRIBUTION STATEMENT (of the abstract entered In Block 20, if different from Report) 18. SUPPLEMENTARY NOTES 19. KEY WORDS (Continue on reverse aide if necessary and Identify by block number) computer-aided design, B-Splines, splines, surface design, 3-D graphics 20. ABSTRACT (Continue on reverse side If necessary and Identify by block number) This report describes an experimental system for designing free-form B-spline surfaces using a head-mounted display. In this system, the interaction with the surfaces takes place in three dimensions as the designed object's shape is updated in real-time. The report also examines some of the problems that should be solved in building a practical three-dimensional computer - aided geometric design system f or surfaces . DO FORM 1 JAN 73 1473 EDITION OF 1 NOV 65 IS OBSOLETE UNCLASSIFIED Figure 2.6 Tensor Product of Quadratic B-spline Basis Figure 2.8 Control Point Array and Generated Biquadratic B-spline Surface. Figure 3.2 Picture of Display Hardware, including counter logic and I/0 and Memory Buss Interfaces. Figure 3.3 Head-Mounted Display Viewing Mechanism. Figure 3.5 Handle for 3-D Wand. Figure 3.7 Halftone picture of the Klein bottle produced with the system. Figure 2.6 Tensor Product of Quadratic B-spline Basis Figure 2.8 Control Point Array and Generated Biquadratic B-spline Surface. Figure 3.2 Picture of Display Hardware, including counter logic and I/0 and Memory Buss Interfaces. Figure 3.3 Head-Mounted Display Viewing Mechanism. Figure 3.5 Handle for 3-D Wand. Figure 3.7 Halftone picture of the Klein bottle produced with the system."}]
}}
__