# Register now to access 7 million high quality study materials (What's Course Hero?) Course Hero is the premier provider of high quality online educational resources. With millions of study documents, online tutors, digital flashcards and free courseware, Course Hero is helping students learn more efficiently and effectively. Whether you're interested in exploring new subjects or mastering key topics for your next exam, Course Hero has the tools you need to achieve your goals.

23 Pages

### Animation Morphing

Course: CIS 665, Fall 2009
School: UPenn
Rating:

Word Count: 921

#### Document Preview

and Morphing Animation GPU Graphics Gary J. Katz University of Pennsylvania CIS 665 Adapted from articles taken from ShaderX 3, 4 and 5 And GPU Gems 1 Morphing Vertex Tweening two key meshes are blended varying by time. Morph Targets vertex tweening applied only to local displacements. Represent morph targets by relative vectors from the base mesh to the target meshes Morph Target Animation Morph...

Register Now

#### Unformatted Document Excerpt

Coursehero >> Pennsylvania >> UPenn >> CIS 665

Course Hero has millions of student submitted documents similar to the one
below including study guides, practice problems, reference materials, practice exams, textbook help and tutor support.

Course Hero has millions of student submitted documents similar to the one below including study guides, practice problems, reference materials, practice exams, textbook help and tutor support.
and Morphing Animation GPU Graphics Gary J. Katz University of Pennsylvania CIS 665 Adapted from articles taken from ShaderX 3, 4 and 5 And GPU Gems 1 Morphing Vertex Tweening two key meshes are blended varying by time. Morph Targets vertex tweening applied only to local displacements. Represent morph targets by relative vectors from the base mesh to the target meshes Morph Target Animation Morph Target Animation one base mesh can morph into multiple targets at the same time. Facial animation Muscle Deformation Morph Target Animation 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 Linear Interpolation: Relative: PositionOutput = PositionSource + (PositionDestination * Factor) Absolute: PositionOutput = PositionSource + (PositionDestination PositionSource)*Factor Relative vs. Absolute 3 4 < 7, 3, 9 > < 4, 3, 5> Relative Absolute Constraints 1. 2. 3. 4. 5. Number of vertices must be the same Faces and attributes must be the same Material must be equal Textures must be the same Shaders, etc must be the same Useful only where skinning fails! Data Structures for Morphing DirectX allows for flexible vertex formats Unsure if OpenGL supports flexible formats Position 1 holds the relative position for the morph target D3DVERTEXELEMENT9 pStandardMeshDeclaration[] = { { 0, 0, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0 }, { 0, 12, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 1 }, { 0, 24, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_NORMAL, 0 }, { 0, 32, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 0 }, D3DDECL_END() } Skeletal Animation Hierarchical animation 1. 2. Mesh vertex is attached to exactly one bone Transform vertex with the inverse of the bone's world matrix Buckling occurs at regions where two bones are connected Issues Skeletal Subspace Deformation Vertices are attached to multiple bones by weighting 1. 2. 3. Move each vertex into every associated bone space by multiplying the inverse of the initial transformation Apply current world transformation Resulting vertices are blended using morphing Shader Model 2.0 Approach Go into Dawn demo here GPU Animation Can skip the processing of unused bones or morph targets Need hardware support for: Dynamic branching Can separate the modification and the rendering process Need hardware support for: Four component floating-point texture formats Multiple render targets Normal Map Position Map Tangent Map Method 1 Hold the vertex data in texture arrays Manipulate the data in the pixel shader Re-output to texture arrays Pass the output as input to vertex shader Storage Procedures If: vertex array is one-dimensional frame buffer is two-dimensional index2D.x = index % textureWidth; index2D.y = index / textureWidth; index = index2D.y * textureWidth + index2D.x; Redefining the View Draw a rectangle of coordinates (0,0), (0,1), (0,1), (1,1) (-1, 1), (1,1), (-1,-1), (1,-1) Remap them using the following vertex program float4 VS(float4 index2D: POSITION0, out float4 outIndex2D : TEXCOORD0) : POSITION { outIndex2D = index2D; return float4(2 * index2D.x 1, 2 * index2D.y + 1, 0, 1); } GPU Animation Pixel Shader float2 halfTexel = float2(.5/texWidth, .5/texHeight); float4 PS(float4 index2D TEXCOORD0, : out float4 position : COLOR0, out float4 normal : COLOR1, ...) { index2D.xy += halfTexel; float4 vertAttr0 = tex2Dlod(Sampler0, index2D); float4 vertAttr1 = tex2Dlod(Sampler1, index2D); ... ... // perform modifications and assign the final // vertex attributes to the output registers } Analysis Advantage Keeps vertex and geometry processing units workload at a minimum Why is this good? Good for copy operations and vertex tweening Disadvantage Per-vertex data has to be accessed through texture lookups Number of constant registers is less in pixel shader (224) than vertex shader (256) Can not divide modification process into several pieces because only a single quad is drawn Therefore, Constant registers must hold all bone matrices and morph target weights for entire object Method 2 Apply modifications in the vertex shader, do nothing in the pixel shader Destination pixel is specified explicitly as a vertex shader input Still writing all vertices to a texture Advantage Can easily segment the modification groups Disadvantage Speed issues make this method impractical Accessing Modified Data Do NOT want to send the data back to the CPU, except in one case Solution: Direct-Render-To-VertexBuffer The problem: Direct-Render-To-VertexBuffer doesn't exist yet (but we can always dream) Solution 2: Transfer result from render target to vertex buffer object on graphics card Use OpenGL's ARB_pixel_buffer_object Solution 3: Use RenderTexture capability and then access the texture in the vertex shader Store the texture lookup in the vertices texture coordinates Problem: Vertex textures are SLOW Can not execute vertex texture lookups and other instructions in parallel Performance Issues Preferable to perform modification and rendering in single pass Accessing vertex attributes using vertex texturing is always slower than performing a fast copy within video memory Accessing morph in a vertex texture makes t...

Find millions of documents on Course Hero - Study Guides, Lecture Notes, Reference Materials, Practice Exams and more. Course Hero has millions of course specific materials providing students with the best way to expand their education.

Below is a small sample set of documents:

UPenn - CIS - 665
Havok FX Physics on NVIDIA GPUsWhat is Effects Physics?Physics-based effects on a massive scale10,000s of objects Rigid bodies Particles Fluids Cloth and moreTightly coupled with renderingPhysics on this scale requires simulation to be done cl
UPenn - CIS - 665
CIS 665: GPU Programming and ArchitectureGary Katz and Joseph Kider February 12, 20071Project GuidlinesThe idea of this project is to take on a more intricate problem involving computations on the GPU, and demonstrate a plausible, efficient im
UPenn - CIS - 665
CIS 665: GPU Programming and ArchitectureOriginal Slides by: Suresh Venkatasubramanian Updates by Joseph KiderAdministriviaInstructor Joseph Kider (kiderj _at_ seas.upenn.edu) Office Hours: Tuesdays 3-5pm Office Location: Moore 103 HMS LabM
UPenn - CIS - 665
CG Programming TutorialCIS 665 GPU Programming and Architecture Joseph KiderCG Tutorialhttp:/www.seas.upenn.edu/~cis665/Schedule and resource pagesSlides, links, more details of what I am talking about today.CG Tutorial (thanks too.)Slide i
UPenn - CIS - 665
CG Programming TutorialCIS 665 GPU Programming and Architecture Joseph KiderCG Tutorialhttp:/www.seas.upenn.edu/~cis665/Schedule and resource pagesSlides, links, more details of what I am talking about today.CG Tutorial (thanks too.)
UPenn - CIS - 665
Functional Simulation of the nVidia G80 GPGPU pipelineCIS 665 PROJECT DESIGN DOCUMENTArun Raghavan University of PennsylvaniaPROJECT ABSTRACTFunctional simulation has long been used by CPU architects to study the effects of architectural and mic
UC Davis - SS - 0708
Agenda: March 10, 2008Technical documents Business lettersAcademic Vocabulary Workplace documents: business letters, contracts, instruction manuals, and memorandums (short notes). Technical documents: howto instructions, installation procedu
UC Davis - SS - 0708
Drama &amp; Shakespeare's Julius Caesar Unit Timeline: April 14- May 23 (final May 28) Standards: -Reading 3.1 Articulate the relationship between the expressed purposes and the characteristics of different forms of dramatic literature (comedy and traged
UC Davis - SS - 0708
Drama and Julius Caesar Final (100 points) Multiple Choice (30 points) Assessment book p. 240-41 [15 questions] True/False (20 points) [2 questions from each act's study questions] 1. A soothsayer warned Caesar to &quot;beware the ides of March.&quot; 2. The t
UC Davis - SS - 0708
Puja Arora Spring 2008 Field Memo 1 Context I am trying to get my seniors to connect with and enjoy Hamlet on personal level. In an attempt to move from merely relaying the events of the play to encouraging students to make connections I assigned a l
New Mexico - ME - 306
%!PS-Adobe-2.0 %Creator: dvipsk 5.58f Copyright 1986, 1994 Radical Eye Software %Title: cs.dvi %Pages: 10 %PageOrder: Ascend %BoundingBox: 0 0 596 842 %DocumentPaperSizes: A4 %EndComments %DVIPSCommandLine: dvips -o cs.ps cs %DVIPSParameters: dpi=600
New Mexico - ME - 561
It's the Architecture, Stupid!Who really holds the key to the global thermostat? The answer might surprise you.by Edward MazriaOne of the keys to slowing global warming on our beautiful little blue planet may be educating architects and other bui
New Mexico - ME - 530
New Mexico - ME - 530
%!PS-Adobe-2.0 %Creator: dvipsk 5.58f Copyright 1986, 1994 Radical Eye Software %Title: exam3.dvi %Pages: 3 %PageOrder: Ascend %BoundingBox: 0 0 596 842 %DocumentPaperSizes: A4 %EndComments %DVIPSCommandLine: dvips -o exam3.ps exam3 %DVIPSParameters:
New Mexico - ME - 530
New Mexico - ME - 530
New Mexico - ME - 530
New Mexico - ME - 504
3.19.nb1First linear element psi1 40. psi2 40. x dpsi1 40. dpsi2 40. N2 4 100 50 0.02 D psi2, x D psi1, x x 0.025 x 0.025 0 0 0.0250.025 x 0400. K111 Integrate dpsi1 dpsi1 N2 psi1 psi1, x, 0, 0.02543.3333 K121 Integrate dpsi1 dpsi2 N2 psi1
New Mexico - ME - 306
%!PS-Adobe-2.0 %Creator: dvipsk 5.58f Copyright 1986, 1994 Radical Eye Software %Title: kinem_sum.dvi %Pages: 5 %PageOrder: Ascend %BoundingBox: 0 0 596 842 %DocumentPaperSizes: A4 %EndComments %DVIPSCommandLine: dvips -o ks.ps kinem_sum %DVIPSParame
New Mexico - ME - 306
%!PS-Adobe-2.0 %Creator: dvipsk 5.58f Copyright 1986, 1994 Radical Eye Software %Title: kinet_sum.dvi %Pages: 11 %PageOrder: Ascend %BoundingBox: 0 0 596 842 %DocumentPaperSizes: A4 %EndComments %DVIPSCommandLine: dvips -o kt.ps kinet_sum %DVIPSParam
Duke - PHY - 318
Physics 318 Electromagnetism Helmholtz &amp; Laplace Equations Solution Summary The Helmholtz equation is (2R.G. Palmer 2/8/08+ k 2 ) = 0 If k = 0, then is called the Helmholtz equation. k 2 is usually positive in other applications. If k = 0, t
Duke - PHY - 318
Physics 318 Electromagnetism Legendre Polynomials Pl (x)R.G. Palmer 2/15/0810.5-1-0.5 -0.50.51-1Dierential Equation (1 x2 ) Explicit Series P0 (x) = 1 P1 (x) = x 1 P2 (x) = 2 (3x2 1) 1 P3 (x) = 2 (5x3 3x) 1 P4 (x) = 8 (35x4 30x2
Toledo - CSC - 209
Data Exchange between ProcessesInter-Process Communication (IPC)Lecture 9 After fork() is called we end up with two independent processes We cannot use variables to communicate between processes since they each have separate address spaces, and
Duke - ECON - 343
Econometrics III, Econ 343 (395), Tauchen, Fall 20087 Tauchen Fall 20087Econometrics III: Econ 343 (395)Description: This is the foundational course for the asymptotic theory of parametric models with some nonparametric topics considered as the ne
Duke - ECON - 139
Economics 139D/239: Introduction to Econometrics Fall Quarter 2005 Prerequisites: Economics 2, 2A, 2D, 52D or 55D; Statistics 101 or 103. Lectures: Tuesday-Thursday, 8:30-9:45 AM, 136 Social Sciences Instructor: Paul Ellickson, 210 Social Sciences (p
Duke - ECON - 343
Economics 343 Tauchen Problem Set 4 Problems are due Wednesday, September 27Fall 20061. This problem refers to the handout on the Laplace Likelihood distributed on Monday, September 18. A typo-corrected version will posted on Blackboard. A. Show
Duke - ECON - 343
Economics 343 Tauchen Problem Set 4 Due Wednesday, October 18Fall 2006The first three questions pertain to the midterm. It has been posted on Blackboard. 1. Regarding Question 1. ^ a In reference to 1-D, why does /n have to be used for the upper
Duke - ECON - 343
Economics 343 Tauchen Problem Set 7 Due Wednesday, November 1 1. Consider the non-linear least squares model yt = f (xt , 0 ) + utFall 2006where 0 is p1, E(ut |Ft ) = 0, xt is in Ft , but Var(ut |Ft ) = 2 (xt ) is not necessarily constant. For s
Duke - ECON - 343
Economics 343 Tauchen Problem Set 8 (Corrected) Due Wednesday, November 8Fall 2006WARNING: Start early. This project entails substantial computer work. You may consult with each other, but each student must write his/her own programs and answers
Duke - ECON - 343
Economics 343 Tauchen Midterm Examination Three Questions, 100 points, plus a 10 point bonus problem.Fall 2006 Note: For all questions on the following pages, full credit requires clear explanations and derivations. Point allocations are shown i
Duke - ECON - 158
Economics 158 Tauchen Problem Set 1 Assigned Problems are Due Wednesday, January 28Spring 1998I Assigned due January 28.I-1 Elton and Gruberpp. 67 68: 1 I-2 Elton and Gruber pp. 67 68: 3 Hint: Apply the formula at the bottom of p. 60. I-3 Elto
Duke - ECON - 158
Economics 158 Tauchen Problem Set 2 Assigned Problems are Due Wednesday, February 4Spring 1998I Assigned due February 4.I-1 Suppose random returns r1; r2; : : : ; rN are generated according to the modelri = ai + V + Ui ;1where ai is a const
Duke - ECON - 158
Economics 158 TauchenSpring 1998 Problem Set 4 Assigned Problems are Due Wednesday, February 18I Assigned due February 18.WARNING: The assigned problems require using the computer and a package like Excellor a regression package. You may work
Duke - ECON - 158
Economics 158 TauchenSpring 1998Problem Set 6 Assigned Problems are Due Wednesday, March 11 Note on terminology: We have been calling the line in ; space that de nes the e cient frontier the securities market line. This line is = rf + m , rf
Duke - ECON - 158
Economics 158 TauchenSpring 1998 Problem Set 8 Assigned Problems are Due Wednesday, April 1I Assigned due April 1.I-1Elton and Gruber, pp. 399 400 1. I-2 Elton and Gruber, pp. 399 400 3. I-3 Elton and Gruber, pp. 399 400 6.II Workout Problem
Duke - ECON - 158
Economics 158 TauchenTo see the consistency between the CAPM and the APT, we again use a K = 2 factor model for the returns: ri = i + bi1F1 + bi2F2 + i; i = 1; 2; : : : ; N: 1 We want to show that under the APT the mean return i satis es i = rf + m
Duke - ECON - 158
Economics 158 TauchenSpring 1998Notes on the CAPMThe capitalization of the largest stocks in the S&amp;P 500 Index in June 1997:FIRM NAME GENERAL ELECTRIC CO COCA-COLA CO MICROSOFT CORP EXXON CORP INTEL CORP MERCK &amp; CO PHILIP MORRIS COS INC ROYAL
Duke - ECON - 158
Economics 158 TauchenInterest Rate RisksSpring 1998 April 22, 1998Let denote the price at time t of a pure discount bond that pays \$1 in period t + n: According to the expectations theory, 1 ,1 = =0 1 1 + r + :tn n s tn e f t;t swhere r +
Duke - ECON - 158
Economics 158 TauchenNotes on Roll's CritiqueSpring 1998 March 13, 1998The essence of Roll's critique is that given historical data on means and variances of returns, we can always nd a portfolio that plays the role of a market&quot; portfolio. For e
Duke - ECON - 158
Economics 158, Tauchen, Spring 1998Computing Statistics in a Simple CaseReturn (%) Conditions Bad Ave Good Asset #1 7 8 20 Asset #2 6 7 8 Probability 0.25 0.50 0.25mu1 var1 sigma1 mu2 var2 sigma2 cov12 rho1210.75 28.69 5.36 7.00 0.50 0.71 3.25
Duke - ECON - 158
Economics 158 TauchenNotes on Yields and Bond PricesSpring 1998 April 15, 1998BondsA typical coupon bond has coupon payment C; principle V and terminal payment V: At issue, a 10-year bond with y = 6 percent yield is priced as 1000 1000 = 1 +6
Duke - ECON - 158
Economics 158 TauchenSpring 1998Midterm Examination Four Questions, 100 points Note: For all questions, full credit requires clear a explanations or derivations. Very little credit partial will be given for unsubstantiated statements, correct or
Duke - ECON - 158
Economics 158 TauchenSpring 1998Final Examination Seven Questions, 200 points Note: For all questions, full credit requires clear explanations or derivations. Very little partial credit will be given for unsubstantiated statements, correct or not
Duke - ECON - 343
Econometrics III Tauchen Candidate Midterm ProblemsFall 20071. Let {Xn } be a sequence of random variables such that Xn = 0 with probablility 1 n an with probablility nwhere 0 &lt; n &lt; 1 for all n, and an as n . 1-A. Show that n 0 Xn 0. 1-B
Duke - ECON - 342
%!PS-Adobe-2.0 %Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software %Title: 342_03.dvi %Pages: 1 %PageOrder: Ascend %BoundingBox: 0 0 596 842 %EndComments %DVIPSWebPage: (www.radicaleye.com) %DVIPSCommandLine: dvips 342_03.dvi -o 342_03.ps %DV
Duke - ECON - 157
Economics 157 TauchenFall 1999Midterm Examination Four Questions, 100 points Note: For all questions, full credit requires clear explanations or derivations. Very little credit partial will be given for unsubstantiated statements, correct or not.
Duke - ECON - 200
Duke - ECON - 200
%!PS-Adobe-2.0 %Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software %Title: 03_yldf.dvi %Pages: 2 %PageOrder: Ascend %BoundingBox: 0 0 596 842 %EndComments %DVIPSWebPage: (www.radicaleye.com) %DVIPSCommandLine: dvips 03_yldf.dvi -o 03_yldf.ps
Duke - ECON - 200
%!PS-Adobe-2.0 %Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software %Title: 06_cpr.dvi %Pages: 2 %PageOrder: Ascend %BoundingBox: 0 0 596 842 %EndComments %DVIPSWebPage: (www.radicaleye.com) %DVIPSCommandLine: dvips 06_cpr.dvi -o 06_cpr.ps %DV
Duke - ECON - 200
%!PS-Adobe-2.0 %Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software %Title: 08_fixd.dvi %Pages: 2 %PageOrder: Ascend %BoundingBox: 0 0 596 842 %EndComments %DVIPSWebPage: (www.radicaleye.com) %DVIPSCommandLine: dvips 08_fixd.dvi -o 08_fixd.ps
Duke - ECON - 200
%!PS-Adobe-2.0 %Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software %Title: 09_blks1.dvi %Pages: 3 %PageOrder: Ascend %BoundingBox: 0 0 596 842 %EndComments %DVIPSWebPage: (www.radicaleye.com) %DVIPSCommandLine: dvips 09_blks1.dvi -o 09_blks1.
Duke - ECON - 342
%!PS-Adobe-2.0 %Creator: dvipsk 5.58f Copyright 1986, 1994 Radical Eye Software %Title: 342fin00.dvi %Pages: 3 %PageOrder: Ascend %BoundingBox: 0 0 612 792 %EndComments %DVIPSCommandLine: dvips 342fin00.dvi -o 342fin00.ps %DVIPSParameters: dpi=300, c
Duke - ECON - 342
%!PS-Adobe-2.0 %Creator: dvipsk 5.58f Copyright 1986, 1994 Radical Eye Software %Title: 342mid00.dvi %Pages: 2 %PageOrder: Ascend %BoundingBox: 0 0 612 792 %EndComments %DVIPSCommandLine: dvips 342mid00.dvi -o 342mid00.ps %DVIPSParameters: dpi=300, c
Duke - ECON - 157
Economics 157 TauchenSpring 1999Final Examination Seven Questions, 200 points Note: For all questions, full credit requires clear explanations or derivations. Very little partial credit will be given for unsubstantiated statements, correct or not
Duke - ECON - 342
%!PS-Adobe-2.0 %Creator: dvipsk 5.86 p1.5d Copyright 1996-2001 ASCII Corp.(www-ptex@ascii.co.jp) %based on dvipsk 5.86 Copyright 1999 Radical Eye Software (www.radicaleye.com) %Title: 342_03.dvi %Pages: 1 %PageOrder: Ascend %BoundingBox: 0 0 596 842
Duke - ECON - 342
%!PS-Adobe-2.0 %Creator: dvipsk 5.86 p1.5d Copyright 1996-2001 ASCII Corp.(www-ptex@ascii.co.jp) %based on dvipsk 5.86 Copyright 1999 Radical Eye Software (www.radicaleye.com) %Title: 342_04.dvi %Pages: 1 %PageOrder: Ascend %BoundingBox: 0 0 596 842
Duke - ECON - 157
Economics 157 TauchenFall 1999Notes on Expected UtilityExpected Utility:0Let U W denote the utility function of end-of-period wealth. It is reasonable to assume U W 0; and, for a risk averter, U 00W 0: According to expected utility theory
Duke - ECON - 157
Economics 157 TauchenFall 1999Notes on the Portfolio Possibility Curve PPC2 2 Suppose there are two risky assets with returns r1 and r2 such that 1 2 and 1 2 : Let w 0 denote the proportion invested in portfolio 2: Then p = 1 , w1 + w2 2 2 2 2
Duke - ECON - 157
Economics 157 TauchenFall 1999Diversi cationLet rp = PN wiri denote a portfolio return and recall that the portfolio variance Bodie, i=1 Kane, Marcus p. 213 isRisksp=2N X w2 i=1i i+2N N XXw w i=1 j =i6i j ij :Consider equal inves
Duke - ECON - 157
Economics 157 TauchenNotes on Telser's CriterionFall 1999Telser's criterion is to maximize subject top = Erp ;Prrp rL ; where rp is the portfolio return, is a small number, e.g., = 0:05 and rL is some predetermined lower limit. If returns
Duke - ECON - 157
Economics 157 TauchenFall 1999Suppose the returns generating process isriFirst Look at APT= i + biF +rpi;i= 1; 2; : : : ; Ni;2where EF = 0; VarF = is whereF;2E i = 0; Var i =CovF; i = 0: The portfolio returnPN p=i=1 w