假設要畫出 3D image, 那麼只能在單個眼睛成像的近物就不用畫出來, 因為畫了也不會有立體感, 這個砍掉無用訊號的步驟就叫做 culling.
假設綠色線表是兩眼的距離, 紅色線表示螢幕的寬度. Z 要砍到哪裡呢? 根據我女兒在國二學的數學, 左上和右下的兩個三角形 (或是左下和右上) 符合三個角都相等 (AAA) 的相似三角形.
所以
Z / (I / 2) = (D - Z) / (W / 2)
Z / I = (D-Z) / W
Z = D / (1 + W/ I)
對於近在眼前而 “跳出螢幕" 的 object, 只需要畫出藍色的三角形. 螢幕 (W) 超大的時候, Z 可以忽略不計 (case A). 有嚴重的鬥雞眼 (I → 0), Z 也會隨之減小 (case B).
不過照公式, 兩眼近到等效只有一隻眼睛的時候, Z 趨近於 0, 反而全部 object 都要畫. 但是此時已經沒有所謂的立體感了 (兩隻眼睛才有立體感), 大家有看出哪裡不對嗎?
我想: case A 中, 交叉點隨著螢幕變大而往左移, case B 中是眼睛往交叉點移, 所以並沒有多畫.
我有一個猜測不知道對不對?
把眼睛想成一個變焦鏡, 所以每個焦段"f"都有對應的最近對焦距離"Dmin(f)",
至少Dmin(f)>f, 因為"物距<焦距"會形成虛像, 我想虛像應該不會造成立體感,
所以 Z=max{D/(1+W/I), Dmin(f)}
這樣就不會有caseB的矛盾了.
Isometry 最近真是相當地狂熱啊~~~ 難怪能拍出厲害的麒麟花.