Re: [幾何] blending surfaces的問題

看板 Math
作者 mantour (朱子)
時間 2024-10-30 18:00:46
留言 78 ( 1推 0噓 77→ )
回文 2則
※ 引述《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
Re: [幾何] blending surfaces的問題
: 就是為什麼要除以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
Re: [幾何] blending surfaces的問題
: 大概只知道他是要把兩個曲面sdf的差要做標準化,然後再丟進多項式 : 希望版上大大可以解惑 : 另外如果有不錯的電腦圖學、幾何代數相關的書可以推薦給我,原文也可以 : 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.165.22.208 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Math/M.1730282448.A.FB4.html

回文

[幾何] blending surfaces的問題
2 20 math phoenixlife
2024-10-30 11:03:37
Re: [幾何] blending surfaces的問題
1 78 math mantour
2024-10-30 18:00:46

留言

※ 編輯: mantour (118.165.22.208 臺灣), 10/30/2024 19:02:40
musicbox810 請問m大(1-2/a) = 2/a要怎麼推得? 10/30 20:29 1F
musicbox810 懂了 10/30 20:33 2F
phoenixlife 看懂了 感謝! 10/30 21:53 3F
musicbox810 雖然是看懂裡面的過程,可是還是不知道f3的意思 10/31 00:48 4F
mantour 我的f3就是原本連結裡面的m 10/31 10:11 5F
mantour f3=m(f1,f2,k)=0 就是f1,f2融合的曲面 10/31 10:12 6F
mantour 這裡的f3就是 m(f1,f2,k) 10/31 10:13 7F
mantour 如果要融合三個曲面可以先融合前兩個, 得到的結果再 10/31 10:15 8F
mantour 跟第三個融合 10/31 10:15 9F
musicbox810 謝謝m大的解釋 10/31 23:07 10F
musicbox810 m大可以解釋一下f3的實際意義嗎? 10/31 23:07 11F
mantour musicbox那請問你min(f1,f2)的部分也有問題嗎, 還是 11/01 18:37 12F
mantour 只有後面有k的那部分有問題? 11/01 18:37 13F
musicbox810 都有問題,如果是min(a(x,y),b(x,y))可理解是兩曲面 11/01 23:10 14F
musicbox810 間垂直高度差,可是當a(x,y,z),b(x,y,z)就不知道怎 11/01 23:11 15F
musicbox810 麼解釋 11/01 23:11 16F
mantour 就是兩個三維空間中的純量場的差啊 11/02 01:27 17F
mantour 例如f1,f2分別代表是兩個不同重力場的位能好了,那 11/02 01:35 18F
mantour min(f1,f2)這個場的等位面,就是f1等位面的一部分 11/02 01:35 19F
mantour 跟f2等位面的一部分接起來,只是接的部分不平滑 11/02 01:35 20F
mantour f1-f2=0是空間中的一個曲面,這個曲面會包含f1=0和 11/02 01:37 21F
mantour f2=0這兩個曲面的交點 11/02 01:37 22F
mantour |f1-f2|<k就是這個曲面往兩邊增加厚度k的一個厚度2 11/02 01:41 23F
mantour k的殼 11/02 01:41 24F
mantour f3在殼的一邊等於f1,另一邊等於f2,然後殼中間的 11/02 01:42 25F
mantour 部分用一個平滑的函數把它連起來 11/02 01:42 26F
mantour 對不起更正厚度的部分,厚度不是2k 11/02 01:55 27F
mantour 大約是k除以f1-f2在垂直f1-f2=0的方向上的梯度,不 11/02 01:58 28F
mantour 過這個厚度實際是多少也無關緊要,就是某個厚度 11/02 01:58 29F
musicbox810 那請問m大為什麼要用min(a,b)去減後面那一項?而且怎 11/02 08:15 30F
musicbox810 怎麼確定min(a,b)的地方就一定是a和b最接近的地方? 11/02 08:15 31F
musicbox810 我的意思是a和b最小的地方跟實際上圖形最接近的地方 11/02 08:17 32F
musicbox810 一定有相關聯嗎?是否a、b必須有額外的性質? 11/02 08:18 33F
musicbox810 重力位能有相同基準,但是兩顆球的方程式有各自起點 11/02 09:11 34F
musicbox810 就算a=b,也不代表a面和b面相接觸吧? 11/02 09:13 35F
musicbox810 我應該是也不懂為什麼會需要有min(a,b)來做黏合 11/02 09:23 36F
musicbox810 重力位能有相同基準面,所以a-b可以有距離的解讀 11/02 09:25 37F
musicbox810 任意a, b,兩函數相減的意義,我就看不太出來 11/02 09:25 38F
musicbox810 還有m(a,b)設為=0的意義我也不了解。抱歉這麼多問題 11/02 09:29 39F
musicbox810 麻煩m大了 11/02 09:30 40F
mantour 沒錯啊,這裡預設原本兩個曲面的方程式分別是f1=0 11/02 11:05 41F
mantour 跟f2=0,如果不是m就要改一下 11/02 11:05 42F
mantour 兩個曲面相交的曲線的方程式是f1=f2=0,一定會包含 11/02 11:06 43F
mantour 於f1=f2這個曲面上 11/02 11:06 44F
mantour f1(x,y,z),f2(x,y,z)只是一個三維的純量場,f1(x, 11/02 11:09 45F
mantour y,z)=0和f2(x,y,z)=0才是要融合的曲面 11/02 11:09 46F
mantour 融合後的曲面是 m(f1,f2,k)=0 11/02 11:15 47F
mantour 所以你說二維f1(x,y),f2(x,y)講得也怪怪,此時要 11/02 11:18 48F
mantour 融合的是f1(x,y)=0跟f2(x,y)=0這兩條曲線,而不是z 11/02 11:18 49F
mantour =f1(x,y) 跟z=f2(x,y)這兩個曲面 11/02 11:18 50F
musicbox810 如果a,b標量場沒有長度或距離的意義,|a-b|有什麼樣 11/02 16:49 51F
musicbox810 的意義?搞不好a=0,b=0差得很遠,但是|a-b|可以很大 11/02 16:49 52F
musicbox810 或很小 11/02 16:49 53F
musicbox810 以原PO的desmos內容f1=0和f2=0都沒有相交,就算f1=0 11/02 16:54 54F
musicbox810 和f2=0在某曲線上相交,這與|a-b|多大多小好像也沒 11/02 16:54 55F
musicbox810 有一定要是大還是小,a,b的大小取決於a,b自己的函數 11/02 16:55 56F
musicbox810 不知道我哪個地方想法有誤? 11/02 17:00 57F
mantour 如果f1=0跟f2=0本來沒相交, 那k夠小的時候 11/03 17:21 58F
mantour f3就等於min(f1,f2) 11/03 17:23 59F
mantour min(f1,f2)=0 要等於f1=0和f2=0的聯集應該有一定的 11/03 17:25 60F
mantour 條件不是任意的f1,f2都成立 11/03 17:25 61F
mantour 假如F1=-f1, F2=-f2, 那F3就要取max(F1,F2)+ 11/03 17:30 62F
mantour min(0,|a-b|-k)^2/4k 才會有一樣的效果 11/03 17:30 63F
mantour https://www.desmos.com/3d/zvv5rbe8db 11/03 17:31 64F
mantour 所以我想這邊應該沒辦法很一般性的去解釋它 11/03 17:32 65F
mantour 至少我沒有想到很好的規則 11/03 17:32 66F
mantour 不過你說的|a-b|我是這樣想的 11/03 17:46 67F
mantour 把 k 想成一個 tolerance value 11/03 17:47 68F
mantour a-b = L 是一個曲面族 11/03 17:51 69F
mantour ΔL 可以視為是曲面族中的兩個曲面之間的一種"距離" 11/03 17:52 70F
mantour 在局部上有ΔS = |ΔL|/|▽(a-b)| 的關係 11/03 17:55 71F
mantour 我可能再想清楚一點直接回一篇 11/03 18:48 72F
phoenixlife https://www.desmos.com/calculator/czw5xooa54 11/03 21:53 73F
phoenixlife https://i.imgur.com/r46injM.jpeg 11/03 21:54 74F
Re: [幾何] blending surfaces的問題
74F
phoenixlife 用2D去看或許比較直觀 11/03 21:54 75F
phoenixlife 球面只要過綠線就會開始變形做平滑 11/03 22:00 76F
phoenixlife 當 (f1-f2)/k=1 時,會是右綠線 11/03 22:25 77F
phoenixlife 當 (f1-f2)/k=-1 時,會是左綠線 11/03 22:25 78F

最新文章

[耍冷] 曹丕岳父喝醉酒
joke eric30526
2024-11-22 01:18:57
[創作] 我們的目的良善
poem icegino
2024-11-21 23:37:10