WO2022005302A1 - Method for computation of local densities for virtual fibers - Google Patents
Method for computation of local densities for virtual fibers Download PDFInfo
- Publication number
- WO2022005302A1 WO2022005302A1 PCT/NZ2020/050161 NZ2020050161W WO2022005302A1 WO 2022005302 A1 WO2022005302 A1 WO 2022005302A1 NZ 2020050161 W NZ2020050161 W NZ 2020050161W WO 2022005302 A1 WO2022005302 A1 WO 2022005302A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- vertices
- computing
- virtual
- fiber
- computer
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/30—Polynomial surface description
Definitions
- the present disclosure generally relates to computer-generated imagery and more particularly to computations of virtual surfaces of fiber collections for use in generating imagery representing the fiber collections.
- VFX visual effects
- Some algorithms cannot scale to a high-enough number of fibers to allow for realistic simulation of individual fibers required in hair or a furry animal due to the heavy geometry of the models involved.
- a human groom can contain up to 10,000 strands of hair, with each strand potentially containing hundreds of vertices.
- computer rendering resources, operations, and systems may not be capable of performing such rendering of hair and other fibers as required by groom animations and/or effects.
- a computer-implemented method in a computer graphics generation system may compute a representation of a virtual surface for a fiber clump in a set of virtual fibers, wherein virtual fibers in the set of virtual fibers are represented by fiber curves or splines, such as a piecewise curve represented in a computer animation system as a combination of multiple polynomials.
- the computer graphics generation system may receive a set of vertices along the curve or spine, wherein vertices of the set of vertices are associated with virtual fibers of the set of virtual fibers.
- a first virtual fiber may be represented in the set of vertices as a first plurality of virtual fiber vertices defining a first fiber curve and including a first vertex
- a second virtual fiber may be represented in the set of vertices as a second plurality of virtual fiber vertices defining a second curve and including a second vertex.
- the computer graphics generation system may obtain an artist parameter representing a desired artist effect and compute a bounding volume hierarchy from the set of vertices based on associations of vertices in the set of vertices with fiber curves and based on the artist parameter.
- the computer graphics generation system may compute a set of relevant vertices of the set of vertices, using the bounding volume hierarchy.
- the computer graphics representation system may compute a pair of orthogonal gradients to produce a plurality of gradients, computed from a selected vertex and the set of relevant vertices.
- the computer graphics representation system may compute the virtual surface of a clump of the set of virtual fibers from the plurality of gradients.
- Computing the set of relevant vertices may comprise pruning the bounding volume hierarchy and limiting the set of relevant vertices to vertices within a specified distance from the selected vertex.
- the specified distance may be specified by the artist parameter or based on the groom and/or scene in which the groom is placed and rendered.
- the computer graphics generation system may receive a table of precomputed values, computed from an inverse of (2k+l), an inverse of a square of the artist parameter, and a binomial coefficient of n and k, for some integers k and n with 0 ⁇ k ⁇ n.
- the virtual surface may be based on a normal to a gradient field comprising the plurality of gradients.
- Computing the pair of orthogonal gradients may comprise computing a finite-support kernel.
- Computing the pair of orthogonal gradients may comprise using a local frame that is aligned and perpendicular to a direction of a line from the first vertex to the second vertex with the first vertex and the second vertex being members of the set of relevant vertices.
- a computer-implemented method for generating an animated image may comprise the method and rendering an animated image using the representation of a virtual surface for a fiber clump in a set of virtual fibers.
- a computer system may comprise one or more processors and a storage medium storing instructions, which when executed by the at least one processor, cause the system to implement this method rendering an animated image using the representation.
- This computer-implemented method therefore allows for faster and more coordinated rendering of computer animated images and videos, while requiring less intensive computational resources. Therefore this representation of the virtual surface reduces computing time and resource cost while maintaining realistic computer animations for certain surfaces having fibers including grooms of hair or other fibers on characters.
- FIG. 5 illustrates a system for utilizing local densities of groom fibers to provide surfaces for groom rendering and shading techniques within a computer animation in accordance with an embodiment.
- FIG. 7 illustrates an example visual content generation system as might be used to generate imagery in the form of still images and/or video sequences of images in accordance with an embodiment.
- hair strands herein are not so limited and could be used for simulation of other sets of fibers, such as fur, feathers, braids, rope, scales, and the like.
- a groom may be a set of fibers that are intended to represent hair, fur, pelt, or other surface feature of a character (or possibly a noncharacter object) that might be simulated.
- This method need not be limited to hairs and corresponding grooms (e.g., hairstyles, furs, or pelts having clumps of fibers), but could apply to any large set of like elements that are modeled by fibers. While examples herein might refer to hair, it should be understood that unless otherwise indicated, the examples can apply to fur, fur-like elements, hair-like elements, and similar sets of like elements such as strands, wires, etc.
- a polyline composed of multiple segments, which may also be represented as a curve or spline in the computer animation system.
- Each polyline can be represented in memory by an ordered list of vertices along the polyline and/or corresponding curve/spline.
- a segment may be a portion of a polyline between two vertices.
- the density field should be stable across frames, and the density value should evaluate quickly. In one embodiment, there may be millions of evaluations per frame.
- surface normals e.g., normal vectors
- This provides for efficient simulation of large numbers of like elements, such as hairs within the computer animation system without computationally intensive animating and rendering operations with characteristics and effects directly on the groom of fibers.
- the computer animation and rendering system may reduce time and resource cost in animating and rendering a groom of fibers having certain effects over those grooms of fibers.
- One piecewise polynomial kernel f that may be used is:
- FIG. 1 shows the definition of the local frame B 100 used in the evaluation of the convolution integral.
- F and VF may be simplified using an appropriate frame in order to reduce computational time and resources used in performing the computations in a computer animation and rendering system.
- frame B 100 of FIG. 1 at point p defined by vectors (e 1; e 2 ) (110, 112, respectively) in FIG. 1 and as represented by: ab llabll - (pa ⁇ eje !
- the gradient VF also has an interesting expression in frame B.
- translating p along e x is equivalent to translating both a and b along -ei as illustrated in Equation 4.
- Equation 5 is also satisfied.
- Equations 4 and 5 would still hold even if a' or b' he on the sphere of radius R centered at p. This is due to f having vanishing derivatives at R as explained herein. Hence this does not require any special handling, making branch-free implementations possible.
- VF ⁇ (e 1 x e 2 ) 0 due to the symmetry of the problem.
- real-time or near real-time animating and rendering of grooms of fibers with certain characteristics or effects may be accomplished faster and with less resources by the computing systems
- R may be used to control the overal specular reflections in order to adjust the overall characteristics or effects of the hair between different amounts of specular reflections.
- the kernel radius might be an artist parameter that might be determined from an artist input corresponding to a desired result the artist is seeking.
- FIG. 3 illustrates different BVHs over fiber strands made up of individual segments having vertices, which may correspond to evaluation points for the strand structures.
- a BVH 300 is shown having bounding boxes corresponding to strand segments, while a BVH 302 is shown having bounding boxes corresponding to the evaluation points (e.g., the vertices along the strand). Partitionning the strands as described above can improve performance of the computer animation and rendering system, reducing processing cost and time in performing such calculations and operations with grooms of fibers. Further performance improvement of computing systems can be realized by building the partitioning tree structure over the evaluation points as shown in BVH 302 instead.
- this structure can be traversed in order to quickly prune groups of points whose distance from s is larger than R.
- This improves performance because there are roughly as many evaluation points (strand vertices) as there are strand segments.
- the spatial extent of a point is zero, while segments have a non-zero extent.
- a partitioning structure built over the evaluation points will be more efficient at splitting the data into disjoint sets than a partitioning structure built over the strand segments (that is, it will cull the empty space better). It is usually much faster to traverse a partitioning structure with non-overlapping nodes.
- a sparser positioning structure may be determined by looking individually over the strand at evaluation points, or vertices of the strand for individual segments that make up the strand. By utilizing the vertices or the evaluation points, number and space of the bounding boxes may be reduced. Thus, the computer animation and rendering system may instead sort evaluation points along the strand or corresponding space fitting curve in order to determine whether points intersect and/or are nearby when creating the bounding box information and BVH.
- FIG. 4 shows a method in accordance with an embodiment.
- One or more steps, processes, and methods described herein of FIG. 1 may be omitted, performed in a different sequence, or combined as desired or appropriate.
- the computer system receives a groom.
- the groom may correspond to hair or a hairstyle of a character that includes many different fibers or individual strands of hair.
- modeling the groom is computationally intensive as the groom may be made of 10 5 or higher individual fibers.
- FIG. 4 includes steps of a corresponding method that represents clumps of fibers as a smooth surface using surface normal to compute a smoothing function that allows for representation of a groom for specular light reflections.
- step 404 the system computes the bounding volume hierarchy. This may be done using the individual evaluation points or vertices along each individual strand and correlating those with a nearby other evaluation point or vertices.
- other processes may be used to determine and/or calculate correlations of the vertices for individual strands with nearby evaluation points or vertices. For example, a linear searching approach may be used, but approximate solutions may also increase the speed and efficiency of the searching for nearby vertices and correlations of the vertices. Thus, any search and/or searching mechanism to find nearby points of vertices and correlate those vertices may be used.
- an acceleration structure used to more quickly correlate vertices with nearby vertices such as the aforementioned bounding volume hierarchy, may be used. This allows for faster computation of the correlations between vertices, which increases computing speed and reduces computing resources and processing requirements.
- bounding box information may be determined using the evaluation points instead of the strand segments, reducing the area of bounding boxes and overall number in the BVH.
- Various input parameters may also be received by an artist or other user of the computer animation and rendering system in order to define the overall look of the groom having the smooth surface from surface normal.
- An input parameter, R can represent a smoothing radius that might be set by an artist after viewing rendering results. In implementations as described herein, larger values of R result in larger clumps of hair resulting in more specular reflection and in turn resulting in a particular characteristic or effect with the corresponding hair or groom.
- Another input parameter, n is used to indicate a desired quality factor.
- n 4.
- a partitioning tree structure e.g., the BVH
- the system computes a pair of orthogonal gradients at each vertex of each fiber.
- a function for density gradient might be selected to provide for smoothness (large variations in surface normals do not occur over small distances), time stability (no large changes over small time periods), and computational efficiency.
- One such density function uses a convolution surface.
- the computed gradients are combined to produce a gradient field, from which a normal to a surface may be computed.
- the output may be provided to a Tenderer to determine ray reflection based on the surface normals. This may be done in order to represent a groom having a characteristic or effect within an animation and rendering system, such as one or more frames of a computer animated character and/or scene.
- an animation and rendering system such as one or more frames of a computer animated character and/or scene.
- FIG. 5 illustrates a system 500 for calculating gradient densities of clumps of fibers in a groom within a computer animation, in an embodiment.
- System 500 includes a dataset 502, a groom processing unit 506, a Tenderer 518, a user interface (UI) 520, and an input groom data 522.
- UI user interface
- Dataset 502 may store data for different fibers and grooms that may be stored and/or loaded, such as characters, creatures, or objects.
- Dataset 502 may be loaded with data from a source of an animation, such as a tessellated mesh, subdivision surface, or the like used to define a groom or other object of fibers (e.g., a pelt, coat, robe, cloak, etc.).
- Groom processing unit 506 may utilize the methods and processes described herein to take input groom data 522 with any additional groom data from dataset 502, and perform the operations for determining surface normals, thereby more easily animating a groom to have specular lighting effects.
- the groom processing unit 506 may clump fibers by their surface normals, which may be used then to create normal vectors used to determine a smooth surface from clumps in the groom as described herein. Further, a surface radius to determine an effect factor or parameter may be provided as input, such as an artist-defined factor or parameter, as described herein.
- Groom processing unit 506 includes a processor 510 that executes program code 512 to cluster fibers in BVHs 514 to local density surfaces 516. Groom processing unit 506 may further groom output data 508 to dataset 502 so that the corresponding local density surfaces 516 from BVHs 516 may be stored for later use, such as with Tenderer 518 when rendering a scene having the groom that may have specular lighting effects during animation and rendering. For example, groom processing unit 506 may initiate the process by taking input groom data 522 with any additional data from dataset 502, and thereafter determining local density surfaces 516 through surface normals. Based on local density surfaces 516, groom processing unit 506 may then provide any groom and clumping data as groom output data 508 for storage by dataset 502.
- Groom processing unit 506 may then move to the next groom designated by user 540 and further perform additional determination of density gradients and surfaces as requested.
- the resulting grooms, clusters, fibers, and the like that have been animated and stored by dataset 502 may further be rendered by rendered 518 and/or output to user 540 to inspect the results.
- Still images that are output by visual content generation system 600 might be represented in computer memory as pixel arrays, such as a two-dimensional array of pixel color values, each associated with a pixel having a position in a two-dimensional image array.
- Pixel color values might be represented by three or more (or fewer) color values per pixel, such as a red value, a green value, and a blue value (e.g., in RGB format).
- Dimensions of such a two-dimensional array of pixel color values might correspond to a preferred and/or standard display scheme, such as 1920-pixel columns by 1280-pixel rows or 4096-pixel columns by 2160-pixel rows, or some other resolution.
- a stored video sequence might include a plurality of images such as the still images described above, but where each image of the plurality of images has a place in a timing sequence and the stored video sequence is arranged so that when each image is displayed in order, at a time indicated by the timing sequence, the display presents what appears to be moving and/or changing imagery.
- each image of the plurality of images is a video frame having a specified frame number that corresponds to an amount of time that would elapse from when a video sequence begins playing until that specified frame is displayed.
- a frame rate might be used to describe how many frames of the stored video sequence are displayed per unit time.
- Example video sequences might include 24 frames per second (24 FPS), 50 FPS, 140 FPS, or other frame rates.
- frames are interlaced or otherwise presented for display, but for clarity of description, in some examples, it is assumed that a video frame has one specified display time, but other variations might be contemplated.
- One method of creating a video sequence is to simply use a video camera to record a live action scene, i.e., events that physically occur and can be recorded by a video camera.
- the events being recorded can be events to be interpreted as viewed (such as seeing two human actors talk to each other) and/or can include events to be interpreted differently due to clever camera operations (such as moving actors about a stage to make one appear larger than the other despite the actors actually being of similar build, or using miniature objects with other miniature objects so as to be interpreted as a scene containing life-sized objects).
- While computer-generated imagery might be creatable by manually specifying each color value for each pixel in each frame, this is likely too tedious to be practical.
- a creator uses various tools to specify the imagery at a higher level.
- an artist might specify the positions in a scene space, such as a three-dimensional coordinate system, of objects and/or lighting, as well as a camera viewpoint, and a camera view plane. From that, a rendering engine could take all of those as inputs, and compute each of the pixel color values in each of the frames.
- an artist specifies position and movement of an articulated object having some specified texture rather than specifying the color of each pixel representing that articulated object in each frame.
- a rendering engine performs ray tracing wherein a pixel color value is determined by computing which objects he along a ray traced in the scene space from the camera viewpoint through a point or portion of the camera view plane that corresponds to that pixel.
- a camera view plane might be represented as a rectangle having a position in the scene space that is divided into a grid corresponding to the pixels of the ultimate image to be generated, and if a ray defined by the camera viewpoint in the scene space and a given pixel in that grid first intersects a solid, opaque, blue object, that given pixel is assigned the color blue.
- determining pixel colors - and thereby generating imagery - can be more complicated, as there are lighting issues, reflections, interpolations, and other considerations.
- a live action capture system 602 captures a live scene that plays out on a stage 604.
- Live action capture system 602 is described herein in greater detail, but might include computer processing capabilities, image processing capabilities, one or more processors, program code storage for storing program instructions executable by the one or more processors, as well as user input devices and user output devices, not all of which are shown.
- cameras 606(1) and 606(2) capture the scene, while in some systems, there might be other sensor(s) 608 that capture information from the live scene (e.g., infrared cameras, infrared sensors, motion capture (“mo-cap”) detectors, etc.).
- live action capture system 602 might output live action footage to a live action footage storage 620.
- a live action processing system 622 might process live action footage to generate data about that live action footage and store that data into a live action metadata storage 624.
- Live action processing system 622 might include computer processing capabilities, image processing capabilities, one or more processors, program code storage for storing program instructions executable by the one or more processors, as well as user input devices and user output devices, not all of which are shown.
- Live action processing system 622 might process live action footage to determine boundaries of objects in a frame or multiple frames, determine locations of objects in a live action scene, where a camera was relative to some action, distances between moving objects and fiducials, etc.
- the metadata might include location, color, and intensity of overhead light 614, as that might be useful in post-processing to match computer-generated lighting on objects that are computer-generated and overlaid on the live action footage.
- Live action processing system 622 might operate autonomously, perhaps based on predetermined program instructions, to generate and output the live action metadata upon receiving and inputting the live action footage.
- the live action footage can be camera-captured data as well as data from other sensors.
- Animation creation system 630 is another part of visual content generation system 600.
- Animation creation system 630 might include computer processing capabilities, image processing capabilities, one or more processors, program code storage for storing program instructions executable by the one or more processors, as well as user input devices and user output devices, not all of which are shown.
- Animation creation system 630 might be used by animation artists, managers, and others to specify details, perhaps programmatically and/or interactively, of imagery to be generated.
- animation creation system 630 might generate and output data representing objects (e.g., a horse, a human, a ball, a teapot, a cloud, a light source, a texture, etc.) to an object storage 634, generate and output data representing a scene into a scene description storage 636, and/or generate and output data representing animation sequences to an animation sequence storage 638.
- objects e.g., a horse, a human, a ball, a teapot, a cloud, a light source, a texture, etc.
- Animation creation system 630 might be interactive, allowing a user to read in animation sequences, scene descriptions, object details, etc. and edit those, possibly returning them to storage to update or replace existing data.
- an operator might read in objects from object storage into a baking processor 642 that would transform those objects into simpler forms and return those to object storage 634 as new or different objects.
- an operator might read in an object that has dozens of specified parameters (movable joints, color options, textures, etc.), select some values for those parameters and then save a baked object that is a simplified object with now fixed values for those parameters.
- Animation sequence data might be in the form of time series of data for control points of an object that has attributes that are controllable.
- an object might be a humanoid character with limbs and joints that are movable in manners similar to typical human movements.
- An artist can specify an animation sequence at a high level, such as “the left hand moves from location (XI, Yl, Zl) to (X2, Y2, Z2) over time T1 to T2”, at a lower level (e.g., “move the elbow joint 2.5 degrees per frame”) or even at a very high level (e.g., “character A should move, consistent with the laws of physics that are given for this scene, from point PI to point P2 along a specified path”).
- a rendering engine 650 can read in animation sequences, scene descriptions, and object details, as well as rendering engine control inputs, such as a resolution selection and a set of rendering parameters. Resolution selection might be useful for an operator to control a trade-off between speed of rendering and clarity of detail, as speed might be more important than clarity for a movie maker to test some interaction or direction, while clarity might be more important than speed for a movie maker to generate data that will be used for final prints of feature films to be distributed.
- Rendering engine 650 might include computer processing capabilities, image processing capabilities, one or more processors, program code storage for storing program instructions executable by the one or more processors, as well as user input devices and user output devices, not all of which are shown.
- Visual content generation system 600 can also include a merging system 660 that merges live footage with animated content.
- the live footage might be obtained and input by reading from live action footage storage 620 to obtain live action footage, by reading from live action metadata storage 624 to obtain details such as presumed segmentation in captured images segmenting objects in a live action scene from their background (perhaps aided by the fact that green screen 610 was part of the live action scene), and by obtaining CGI imagery from rendering engine 650.
- a merging system 660 might also read data from rulesets for merging/combining storage 662.
- a very simple example of a rule in a ruleset might be “obtain a full image including a two- dimensional pixel array from live footage, obtain a full image including a two-dimensional pixel array from rendering engine 650, and output an image where each pixel is a corresponding pixel from rendering engine 650 when the corresponding pixel in the live footage is a specific color of green, otherwise output a pixel value from the corresponding pixel in the live footage.”
- Merging system 660 might include computer processing capabilities, image processing capabilities, one or more processors, program code storage for storing program instructions executable by the one or more processors, as well as user input devices and user output devices, not all of which are shown.
- Merging system 660 might operate autonomously, following programming instructions, or might have a user interface or programmatic interface over which an operator can control a merging process.
- an operator can specify parameter values to use in a merging process and/or might specify specific tweaks to be made to an output of merging system 660, such as modifying boundaries of segmented objects, inserting blurs to smooth out imperfections, or adding other effects.
- merging system 660 can output an image to be stored in a static image storage 670 and/or a sequence of images in the form of video to be stored in an animated/combined video storage 672.
- visual content generation system 600 can be used to generate video that combines live action with computer-generated animation using various components and tools, some of which are described in more detail herein. While visual content generation system 600 might be useful for such combinations, with suitable settings, it can be used for outputting entirely live action footage or entirely CGI sequences.
- the code may also be provided and/or carried by a transitory computer readable medium, e.g., a transmission medium such as in the form of a signal transmitted over a network.
- the techniques described herein are implemented by one or more generalized computing systems programmed to perform the techniques pursuant to program instructions in firmware, memory, other storage, or a combination.
- Special-purpose computing devices may be used, such as desktop computer systems, portable computer systems, handheld devices, networking devices or any other device that incorporates hard-wired and/or program logic to implement the techniques.
- FIG. 7 is a block diagram that illustrates a computer system 700 upon which the computer systems of the systems described herein and/or visual content generation system 600 (see FIG. 6) may be implemented.
- Computer system 700 includes a bus 702 or other communication mechanism for communicating information, and a processor 704 coupled with bus 702 for processing information.
- Processor 704 may be, for example, a general-purpose microprocessor.
- Computer system 700 further includes a read only memory (ROM) 708 or other static storage device coupled to bus 702 for storing static information and instructions for processor 704.
- ROM read only memory
- a storage device 710 such as a magnetic disk or optical disk, is provided and coupled to bus 702 for storing information and instructions.
- Computer system 700 may be coupled via bus 702 to a display 712, such as a computer monitor, for displaying information to a computer user.
- a display 712 such as a computer monitor
- An input device 714 is coupled to bus 702 for communicating information and command selections to processor 704.
- a cursor control 716 is Another type of user input device
- cursor control 716 such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 704 and for controlling cursor movement on display 712.
- This input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane.
- Computer system 700 may implement the techniques described herein using customized hard- wired logic, one or more ASICs or FPGAs, firmware and/or program logic which in combination with the computer system causes or programs computer system 700 to be a special- purpose machine. According to one embodiment, the techniques herein are performed by computer system 700 in response to processor 704 executing one or more sequences of one or more instructions contained in main memory 706. Such instructions may be read into main memory 706 from another storage medium, such as storage device 710. Execution of the sequences of instructions contained in main memory 706 causes processor 704 to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions.
- Non-volatile media includes, for example, optical or magnetic disks, such as storage device 710.
- Volatile media includes dynamic memory, such as main memory 706.
- Common forms of storage media include, for example, a floppy disk, a flexible disk, hard disk, solid state drive, magnetic tape, or any other magnetic data storage medium, a CD-ROM, any other optical data storage medium, any physical medium with patterns of holes, a RAM, a PROM, an EPROM, a FLASH-EPROM, NVRAM, any other memory chip or cartridge.
- Various forms of media may be involved in carrying one or more sequences of one or more instructions to processor 704 for execution.
- the instructions may initially be carried on a magnetic disk or solid-state drive of a remote computer.
- the remote computer can load the instructions into its dynamic memory and send the instructions over a network connection.
- a modem or network interface local to computer system 700 can receive the data.
- Bus 702 carries the data to main memory 706, from which processor 704 retrieves and executes the instructions.
- the instructions received by main memory 706 may optionally be stored on storage device 710 either before or after execution by processor 704.
- Computer system 700 also includes a communication interface 718 coupled to bus 702.
- Communication interface 718 provides a two-way data communication coupling to a network link 720 that is connected to a local network 722.
- communication interface 718 may be a network card, a modem, a cable modem, or a satellite modem to provide a data communication connection to a corresponding type of telephone line or communications line.
- Wireless links may also be implemented.
- communication interface 718 sends and receives electrical, electromagnetic, or optical signals that carry digital data streams representing various types of information.
- Network link 720 typically provides data communication through one or more networks to other data devices.
- network link 720 may provide a connection through local network 722 to a host computer 724 or to data equipment operated by an Internet Service Provider (ISP) 726.
- ISP 726 in turn provides data communication services through the world wide packet data communication network now commonly referred to as the “Internet” 728.
- Focal network 722 and Internet 728 both use electrical, electromagnetic, or optical signals that carry digital data streams.
- the signals through the various networks and the signals on network link 720 and through communication interface 718, which carry the digital data to and from computer system 700, are example forms of transmission media.
- Computer system 700 can send messages and receive data, including program code, through the network(s), network link 720, and communication interface 718.
- a server 730 might transmit a requested code for an application program through the Internet 728, ISP 726, local network 722, and communication interface 718.
- the received code may be executed by processor 704 as it is received, and/or stored in storage device 710, or other non-volatile storage for later execution.
- Processes described herein can be performed in any suitable order unless otherwise indicated herein or otherwise clearly contradicted by context.
- Processes described herein may be performed under the control of one or more computer systems configured with executable instructions and may be implemented as code (e.g., executable instructions, one or more computer programs or one or more applications) executing collectively on one or more processors, by hardware or combinations thereof.
- the code may be stored on a computer-readable storage medium, for example, in the form of a computer program comprising a plurality of instructions executable by one or more processors.
- the computer-readable storage medium may be non-transitory.
- the code may also be provided carried by a transitory computer readable medium e.g., a transmission medium such as in the form of a signal transmitted over a network.
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Mathematical Analysis (AREA)
- Algebra (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
Description
Claims
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CA3184376A CA3184376A1 (en) | 2020-07-02 | 2020-12-01 | Method for computation of local densities for virtual fibers |
EP20830001.2A EP4176415A1 (en) | 2020-07-02 | 2020-12-01 | Method for computation of local densities for virtual fibers |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063047832P | 2020-07-02 | 2020-07-02 | |
US63/047,832 | 2020-07-02 | ||
US17/098,221 US11315299B1 (en) | 2020-11-13 | 2020-11-13 | Method for computation of local densities for virtual fibers |
US17/098,221 | 2020-11-13 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022005302A1 true WO2022005302A1 (en) | 2022-01-06 |
Family
ID=74096033
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/NZ2020/050161 WO2022005302A1 (en) | 2020-07-02 | 2020-12-01 | Method for computation of local densities for virtual fibers |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP4176415A1 (en) |
CA (1) | CA3184376A1 (en) |
WO (1) | WO2022005302A1 (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190266781A1 (en) * | 2018-02-23 | 2019-08-29 | Ephere Inc. | Method of rendering computer graphics curves |
-
2020
- 2020-12-01 WO PCT/NZ2020/050161 patent/WO2022005302A1/en active Application Filing
- 2020-12-01 CA CA3184376A patent/CA3184376A1/en active Pending
- 2020-12-01 EP EP20830001.2A patent/EP4176415A1/en not_active Withdrawn
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190266781A1 (en) * | 2018-02-23 | 2019-08-29 | Ephere Inc. | Method of rendering computer graphics curves |
Non-Patent Citations (3)
Title |
---|
KELLY WARD ET AL: "A Survey on Hair Modeling: Styling, Simulation, and Rendering", IEEE TRANSACTIONS ON VISUALIZATION AND COMPUTER GRAPHICS, IEEE SERVICE CENTER, LOS ALAMITOS, CA, US, vol. 12, no. 2, March 2007 (2007-03-01), pages 213 - 234, XP011157907, ISSN: 1077-2626 * |
LEONHARD GRÜNSCHLOSS ET AL: "MSBVH: an efficient acceleration data structure for ray traced motion blur", HIGH PERFORMANCE GRAPHICS, ACM, 2 PENN PLAZA, SUITE 701 NEW YORK NY 10121-0701 USA, 5 August 2011 (2011-08-05), pages 65 - 70, XP058006582, ISBN: 978-1-4503-0896-0, DOI: 10.1145/2018323.2018334 * |
WOOP SVEN ET AL: "Exploiting Local Orientation Similarity for Efficient Ray Traversal of Hair and Fur", EUROGRAPHICS/ ACM SIGGRAPH SYMPOSIUM ON HIGH PERFORMANCE GRAPHICS, June 2014 (2014-06-01), pages 41 - 49, XP055788269, Retrieved from the Internet <URL:http://diglib.eg.org/handle/10.2312/hpg.20141092.041-049> [retrieved on 20210322], DOI: 10.2312/hpg.20141092 * |
Also Published As
Publication number | Publication date |
---|---|
CA3184376A1 (en) | 2022-01-06 |
EP4176415A1 (en) | 2023-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230025285A1 (en) | Method for Generating Simulations of Fluid Interfaces for Improved Animation of Fluid Interactions | |
US11625882B2 (en) | Method for simulating fluids interacting with submerged porous materials | |
US11010952B1 (en) | Method and user interface for generating tangent vector fields usable for generating computer-generated imagery | |
US11423613B2 (en) | Method for generating splines based on surface intersection constraints in a computer image generation system | |
US11803998B2 (en) | Method for computation of local densities for virtual fibers | |
US11710270B2 (en) | Method for scattering points in a uniform arbitrary distribution across a target mesh for a computer animated creature | |
US11682156B2 (en) | Method for controlling digital feather growth between two manifolds in a computer simulated creature | |
US11600041B2 (en) | Computing illumination of an elongated shape having a noncircular cross section | |
EP4176415A1 (en) | Method for computation of local densities for virtual fibers | |
CA3143520C (en) | Method of computing simulated surfaces for animation generation and other purposes | |
WO2023285874A1 (en) | Computing illumination of an elongated shape having a noncircular cross section |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20830001 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 3184376 Country of ref document: CA |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2020830001 Country of ref document: EP |
|
ENP | Entry into the national phase |
Ref document number: 2020830001 Country of ref document: EP Effective date: 20230202 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |