CS 563 Advanced Topics in Computer Graphics The Wonderful World of Birds and Feathers by Brad Goodwin Over-View Introduction Feather structure Technique Using Bezier Curves Technique Using L-system Introduction Mimic the complexity of nature Two tasks Model and render an individual feather (covered in all techniques) Growing Feathers on birds (covered only by L-systems) Feather Structure Techniques use biological model to structure feather Feather Types Four main types: A) Filoplume Specialized B) Contour Flying C) Plume Barbs longer than rachis D) Semiplume Contour/plume First Technique Only models a single feather Bezier Curves Parameters of Feather (biological) Rendering Bezier Curves Simple Math Four points Two endpoints Two control points Two equations One for Y and one for X All controlled by time t If you need more than that check out: http://www.moshplant.com/direct-or/bezier/ Defineing Bezier Curves Bezier for both Vanes with 5 control points Bezier for Rachis Define a single barb with four points P0, P3 on vane and rachis Random (v1,v2)(v3,v4) determine P1, P2 Parameters that affect barbs Parameters Nb Number of barbs for each vane (2000 in practice) Parameters Continued Fpv – Use to vary the length of the barbs So 0 is no change and 1 is the largest change Parameters Continued Fb -Used to control v1, v2, v3, v4 for each barb So affects P1, P2 scaling the distance from P0 to P3 Boolean Parameters Sv -T or F symmetry of vanes Uf -T or F uniform barbs (same shape or dif) Uc -T or F modify length for each barb If T then Fpv isn’t modified for each barb Is -(not boolean) allows the division of Rachis into two segments to create an irregular feather. Rendering Non-photorealistic No texture map Just a stick figure Photorealistic Texture map Set up with map for both sides Two parameters s,t S is 0 to 1 along the barb T is 0 at base and 1 at top Samples L-System Technique Individual and growing Mesostructure including barbules Modeling and Rendering with BTF (Bidirectional Texture Function) Remember Techniques use biological model to structure feather Shape interface control Allows user a lot of control on the shape of the feather 1 -rachis; 2 -left and right barbs; 3 –texture; 4 -outline Curve Illustration O -Outline left and right b -Barb left and right r -Rachis All are controlled in the User interface L-System Model N – length of feather and density of Barbs ML and MR – Define lengths of left and right Barbs R(0) generates feather based on Rachis and barb curves P1 generates first segment of rachis and two barbs P2 generates left barb segment P3 generates right barb segment L-System Continued This set up is modified to take into account variations in the feather Example if a twig were to brush through the barbs Little hooks called cilium that hold barbs Good for fiying Final L-System Random force Fe which if it exceeds threshold of FL or FR then the barb is rotated by some random degree theta BTF BTF – Bidirectional Texture Function 6 Dimensions Viewing direction v Lighting direction l at surface point (x, y) BTF - Continued Set on X axis so only 5D but renders just as well in most cases Considers Opacity and difuse and Specular Relflections Allows for detail up close Can model Oil film interference and iridescence An Entire Bird Skeleton Structure Growing Positions Tried just at poly-mesh vertices and looked bad Used turk’s algorithm to divide polygons Growing Direction Interpolate the rest Adding Wing Feathers Growth Collision Recursive Collision Detection Rotates until no collision and moves along the edge to a connected vertex Questions??????? References Chen Y et al, "Modeling and rendering of realistic feathers ", Proc. ACM SIGGRAPH 2002 Franco C.G. and Walter M., "Modeling and Rendering of Individual Feathers", Proc. SIBGRAPI 2002 Franco C.G. and Walter M., "Modeling the Structure of Feathers", Proc. SIBGRAPI 2001 http://www.moshplant.com/director/bezier/ http://www.geocities.com/cocoo_chen/