Re: [幾何] blending surfaces的問題
※ 引述《phoenixlife (All in AAPL)》之銘言:
: 最近看到電腦圖學的數學
: 是有關把兩個曲面可以融在一起
: 方法叫smooth minimum
: 看到一位作者Inigo Quilez 是採用quadratic polynomial
: 開了desmos測試一下
: https://www.desmos.com/3d/s1nmvi8frp?lang=zh-TW
: 但數學式子有個地方看不懂
: https://i.imgur.com/yx3GGPZ.jpeg
: 就是為什麼要除以4,而且我只要改成其他數字,邊界就會出問題
設S1: f1(x,y,z)=0 , S2: f2(x,y,z)=0
f3(x,y,z) = min(f1,f2) - max(0, k-|f1-f2|)^2/ak, k>0
我們觀察一下f3在不同範圍的樣子
1. 在 |f1-f2|>k 的區域
f3 = min(f1,f2) , 所以S3: f3(x,y,z)=0 在S1, S2 分得夠遠的地方就是兩個曲面的聯
集, 符合我們想要的性質
2. 在 |f1-f2|<k 的區域
f3 = min(f1,f2) - (k-|f1-f2|)^2/ak
若 f1>f2
f3 = f2 - (k-f1+f2)^2/ak
▽f3 = ▽f2 + 2(k-f1+f2)/(ak) ▽f1 - 2(k-f1+f2)/(ak) ▽f2
在f1-f2 ->0 時
▽f3 -> 2/a ▽f1 + (1 - 2/a) ▽f2
反之 當f2>f1
在f1-f2 ->0 時
▽f3 -> (1 - 2/a) ▽f1 + 2/a ▽f2
因為 ▽f3 是曲面的法向量
如果我們希望曲面是平滑的
那 ▽f3 在跨過 f1-f2 = 0 的曲面兩邊要連續因此邊界條件為:
(1-2/a) = 2/a => a = 4
cubic的情形類似計算可得 a=6
: cubic polynomial 則是要除以6,不然邊界會出問題
: https://i.imgur.com/5BszvZO.jpeg
: 大概只知道他是要把兩個曲面sdf的差要做標準化,然後再丟進多項式
: 希望版上大大可以解惑
: 另外如果有不錯的電腦圖學、幾何代數相關的書可以推薦給我,原文也可以
: 謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.165.22.208 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Math/M.1730282448.A.FB4.html
留言