Projection-Based Hair Rendering for Virtual Agents
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing hair rendering methods are computationally expensive due to large texture sizes and complexities, and suffer from aliasing and deformation issues, particularly when using hair card or strand data.
Innovation Solution
The method involves projecting hair strands to a hair mesh associated with a virtual agent, dynamically generating hair textures across rendering cycles by selectively rendering subsets of hair strands, thereby avoiding aliasing and deformation issues while producing rich textures.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Manufacturing precision
If rendering is based on hair card data, then rich hair textures can be generated, but computational cost increases due to large texture sizes and translation complexities
Solution Approach 1:
The patent segments the continuous hair strands into discrete hair cards at specific intervals along the strand. Each hair card captures the local orientation and properties of the hair at that position. This segmentation allows the system to process hair information in manageable units rather than dealing with continuous complex curves, reducing computational overhead while preserving visual quality.
Solution Approach 2:
The patent creates simplified 2D hair card representations that copy the essential visual information from the 3D hair strands. Instead of rendering full 3D hair geometry, the system generates 2D texture maps (hair cards) that capture the appearance and orientation of hair bundles, significantly reducing computational requirements while maintaining visual fidelity.
2Manufacturing precision
If rendering is based on hair strand data, then detailed hair representation is achieved, but aliasing and strand deformation issues occur
Solution Approach 1:
By dividing hair strands into discrete segments (hair cards) spaced at regular intervals, the patent avoids the aliasing problems that occur with continuous strand rendering. Each hair card represents a bundle of strands at a specific location, and the segmentation ensures that discrete sampling points are distributed evenly, preventing visual artifacts.
Solution Approach 2:
The patent introduces hair cards as intermediary elements between the 3D hair strand geometry and the final 2D rendering. These hair cards serve as intermediate representations that capture the essential visual information while providing a stable, aliasing-free basis for texture generation and rendering.
3Manufacturing precision
If all hair strands are rendered in each cycle, then complete hair coverage is achieved, but processing time increases
Solution Approach 1:
The patent renders only a subset of hair cards in each frame based on visibility and importance criteria, rather than processing all hair strands. This partial action approach maintains complete visual coverage by strategically selecting which hair cards to render, while significantly reducing processing time by skipping redundant computations for occluded or less important hair regions.
Solution Approach 2:
The patent applies different rendering quality levels to different regions of the hair based on their visual importance. Hair cards in foreground or well-lit regions are rendered with higher detail, while those in background or shadowed areas use lower detail representations. This local quality differentiation maintains overall hair coverage completeness while optimizing processing speed.
Data Source
AI summary
A method is performed at an electronic device with one or more processors and a non-transitory memory. The method includes obtaining hair curve data that represents a plurality of hair strands. Each of the plurality of hair strands includes a respective plurality of hair points. The method includes projecting the plurality of hair strands to a hair mesh that is associated with a virtual agent. The method includes rendering a first subset of the plurality of hair strands in order to generate a hair texture based on a corresponding portion of the projection. The method includes rendering the hair texture in association with the virtual agent in order to generate a display render. In some implementations, the method includes changing the number of hair strands rendered during a particular rendering cycle, enabling dynamic generation of hair textures across rendering cycles.


