[發明專利]一種可交互式編輯的實時毛發材質生成方法有效
| 申請號: | 202110738720.8 | 申請日: | 2021-06-30 |
| 公開(公告)號: | CN113345098B | 公開(公告)日: | 2022-12-30 |
| 發明(設計)人: | 林子森 | 申請(專利權)人: | 廣東時諦智能科技有限公司 |
| 主分類號: | G06T17/20 | 分類號: | G06T17/20;G06T15/20;G06T11/00 |
| 代理公司: | 廣州市華學知識產權代理有限公司 44245 | 代理人: | 馮炳輝 |
| 地址: | 510308 廣東省廣州市*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 交互式 編輯 實時 毛發 材質 生成 方法 | ||
1.一種可交互式編輯的實時毛發材質生成方法,其特征在于,包括以下步驟:
S1:在三角網格模型上設置一個表面網格區域,用于在該區域上生成毛發材質;
S2:使用預設的毛發材質建模參數,在表面網格區域上生成預設數量的毛發三角網格,用于模擬毛發,包括以下步驟:
S201:在表面網格區域上使用泊松分布采樣算法,以毛發材質建模參數中的采樣密度參數作為采樣密度,在該表面網格區域上生成采樣點,當采樣點的數量超過設定的閾值時,使用該閾值作為實際生成的采樣點個數,以避免采樣點個數過多導致的毛發材質建模和毛發材質渲染性能下降,保證毛發材質編輯的實時性;
S202:在每個采樣點處構建用于控制毛發形態的毛發引導線,所述毛發引導線劃分為多段線段,根據毛發材質建模參數中的毛發長度及分段個數,計算發引導線的每段線段的長度,在表面網格區域上的采樣點處沿其法線方向生成毛發引導線,并根據毛發材質建模參數對每條毛發引導線進行彎曲、增加重力影響和卷曲操作;
S203:對于每條毛發引導線,首先將毛發材質建模參數中的毛發寬度作為發根寬度,再根據毛發材質建模參數中的毛發錐度,計算發梢位置的毛發寬度,然后采用線性插值計算毛發引導線其他分段點位置的毛發寬度;根據毛發引導線和毛發寬度,毛發引導線的每個分段均生成由兩個三角形組成的四邊形,其長度方向與相應的毛發引導線分段的生長方向平行,其寬度為該毛發引導線分段的毛發寬度,得到毛發引導線對應的毛發三角網格;
S3:使用預設的毛發材質渲染參數,對步驟S2中生成的毛發三角網格進行渲染;
S4:根據毛發材質的生成需要,修改毛發材質建模參數和毛發材質渲染參數;
S5:根據毛發材質建模算法和毛發材質渲染算法,實時更新毛發材質建模效果和毛發材質渲染效果;
S6:重復執行步驟S4和S5,直到得到的毛發材質效果符合毛發材質的制作要求,保存毛發材質建模參數和毛發材質渲染參數,作為可交互式編輯的實時毛發材質的數據內容。
2.根據權利要求1所述的一種可交互式編輯的實時毛發材質生成方法,其特征在于,在步驟S202中,所述對每條毛發引導線進行彎曲操作,具體如下:
若毛發材質建模參數的彎曲度大于零,則預設垂直于毛發引導線延伸方向的單位向量,并將該單位向量乘以彎曲度,構成彎曲向量;對毛發引導線的每個分段點計算彎曲系數,使用彎曲向量和彎曲系數的乘積得到的向量對毛發引導線的每個分段點進行偏移,得到彎曲后的毛發引導線。
3.根據權利要求1所述的一種可交互式編輯的實時毛發材質生成方法,其特征在于,在步驟S202中,所述對每條毛發引導線進行增加重力影響操作,具體如下:
若毛發材質建模參數的重力向量的長度大于零,則對毛發引導線的每個分段點計算重力系數,使用重力向量和重力系數的乘積得到的向量對毛發引導線的每個分段點進行偏移,得到重力影響后的毛發引導線。
4.根據權利要求1所述的一種可交互式編輯的實時毛發材質生成方法,其特征在于,在步驟S202中,所述對每條毛發引導線進行卷曲操作,具體如下:
若毛發材質建模參數的卷曲度和卷曲半徑均大于零,則將卷曲度除以毛發引導線的分段個數,得到毛發引導線的每個分段的軸向旋轉圈數;將表面網格區域采樣點處的切向乘以卷曲半徑,得到發根位置的卷曲向量,將毛發引導線發根位置的分段點使用該卷曲向量偏移得到卷曲后的發根點;
對于毛發引導線其余位置的分段點,將軸向旋轉圈數乘以分段數,得到相應毛發引導線分段點的軸向旋轉圈數,并將該軸向旋轉圈數計算轉換為旋轉角度,以卷曲前的毛發引導線生長方向為軸,將卷曲向量以該旋轉角度沿軸旋轉,得到相應毛發引導線分段點的卷曲向量,使用該卷曲向量偏移相應毛發引導線分段點,得到卷曲后的相應毛發引導線分段點;重復上述步驟對其余毛發引導線分段點進行卷曲操作,直到所有毛發引導線分段點都完成偏移,得到卷曲后的毛發引導線。
5.根據權利要求1所述的一種可交互式編輯的實時毛發材質生成方法,其特征在于,在步驟S203中,根據毛發材質建模參數中的毛發錐度,計算發梢位置的毛發寬度,具體如下:
發梢位置的毛發寬度=發根寬度×(1.0-毛發錐度)。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于廣東時諦智能科技有限公司,未經廣東時諦智能科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110738720.8/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種編織機除油軌道平臺
- 下一篇:一種云邊協同的跨國資源同步方法及系統





