GAMES101 學習12——曲面與陰影

      網友投稿 758 2025-04-04

      一、曲面

      1.1 Mesh subdivision 網格細分

      在計算機圖形學中,網格細分指的是給定已知粗糙表面(由網格構成),通過某種方法生成光滑的表面。為什么需要細分?因為對于簡單模型來說,當紋理的頻率高于模型的面數時,如果直接使用高分辨率的紋理會導致失真(紋理出現拉扯的情況),這時就需要更加精細的模型,由此引入了網格細分。

      網格細分本質上往模型引入更多的三角形,它是遞歸的,它通過一定的細分方案重新對原有網格進行劃分,生成更多的面和邊來讓表面變得光滑。同時,它還會根據附近舊頂點的位置計算網格中新頂點的位置,在某些細分方案中,舊頂點的位置也可能會改變。

      這是一種針對三角形網格進行細分的方案,主要步驟分為兩步:①添加頂點 ②更新頂點位置

      添加頂點

      對于每個三角形網格,分別在每條邊的中點上添加頂點,此時會把該網格分成四個三角形。將添加的頂點看做新的頂點,原來的頂點看作舊的頂點,這兩種頂點分別用不同的更新方案對位置進行更新。

      更新頂點位置

      ①新的頂點:

      如圖所示,考慮一般情況,假設新的頂點為白點,那么它一定被兩個三角形所共享,分別找到這兩個三角形。設和白點同邊的頂點為 A ,B;不同邊的頂點為 C,D;那么新的點(白點)的更新方案為:

      3

      /

      8

      ?

      (

      A

      +

      B

      )

      +

      1

      /

      8

      ?

      (

      C

      +

      D

      )

      3 / 8*(A+B)+1 / 8*(C+D)

      3/8?(A+B)+1/8?(C+D)

      ②舊的頂點:

      如圖所示,以白點為例。不考慮新增加的頂點,首先找到它所有相鄰的三角形中舊的頂點,設為 u , n表示白點的度數(在圖論中,一個頂點在圖中的度 (degree)為與這個頂點相連接的邊的數目),白點的更新規則如下:

      (

      1

      ?

      n

      ?

      u

      )

      ?

      o

      r

      i

      g

      i

      n

      a

      l

      P

      o

      s

      i

      t

      i

      o

      n

      +

      u

      ?

      n

      e

      i

      g

      h

      b

      o

      r

      P

      o

      s

      i

      t

      i

      o

      n

      S

      u

      m

      (1-n*u) * originalPosition + u*neighborPositionSum

      (1?n?u)?originalPosition+u?neighborPositionSum

      originalPosition 表示這個點原來的位置,neighborPositionSum表示相鄰點位置的和。這個公式的意義為:舊的點的更新需要考慮鄰接點和自身的權重,當鄰接點較多時,那么自身的權重就可以減少一些。

      Loop Subdivision 適用于三角形網格細分,而 Catmull-Clark Subdivision 更加一般化,適用于非三角形網格。

      ①定義:

      quad face:四邊形面

      Non-quad face:非四邊形面

      Extraordinary vertex :奇異點(degree != 4,即度不為4的點)

      如圖所示: 非四邊形面指的就是沒有四個頂點的面(圖中橙色三角形),奇異點指的是度不為4的點(圖中紫色圓點)

      細分規則:

      在每個面中添加一個頂點(面的重心),在每條邊中添加一個中點。對于每個面來說,將面中添加的頂點與邊中添加的中點依次連接;得到的結果如圖所示:

      由此可以得出 Catmull-Clark Subdivision 的性質:

      在進行第一次 Catmull-Clark Subdivision 后,細分前的非四邊形面消失了,且新增了奇異點數,增加的頂點個數為細分前非四邊形的面數。在后續的 Catmull-Clark Subdivision 中,不會再增加奇異點。

      頂點更新公式:

      Catmull-Clark Subdivision 將頂點分為三類進行更新,分別是 Face point、Edge Point 和 Vertex Point,如圖所示:

      1.2 Mesh Simplification 網格簡化

      網格簡化指的是通過某種方法,將復雜的網格變得簡單,即減少一部分頂點和面,同時還需要保留原有網格的形狀與外觀。在游戲中,復雜的網格模型往往包含更多的頂點和面,但是如果這個模型距離相機較遠,我們就只需要簡單的包含物體輪廓的模型來顯示。

      邊坍縮指的就是將網格中的兩個點捏成一個點,有將某個點合并到另一個點,也有將兩個點合并到他們的中點,如圖所示:

      如何選定需要進行坍縮的那條邊呢?這里就引入了二次度量誤差來進行尋找。

      本質是使得坍縮后得到的頂點到原本鄰接面的二次誤差最小,而這里的二次誤差采用的就是坍縮后的頂點到原本鄰接面的距離的平方和,所以我們只需要找到使得二次誤差最小的那條邊,對其進行坍縮即可。

      需要注意的是每次坍縮會影響鄰接邊的二次誤差,所以需要對鄰接邊的二次誤差進行重排。

      因此在工程實現上需要使用優先隊列或者堆結構。

      1.3 Mesh Regularization 網格正規化

      網格正則化通過修改頂點的位置,讓模型中的三角形更加趨于正三角形(更平滑)。

      二、shadow mapping 陰影(光柵化階段)

      Shadow mapping 是圖形學中計算陰影的過程。它本質上是一種圖像空間的算法,即在計算陰影的過程中不需要知道場景中的幾何關系。

      GAMES101 學習12——曲面與陰影

      理解 Shadow mapping 中最核心的一點是:如果物體不在陰影中,那么它肯定能被相機看見且被燈光照射到。此處說的是硬陰影(點光源情況下,邊緣銳利),軟陰影(有過度)后邊會涉及。

      陰影按類型可分為硬陰影和軟陰影,硬陰影是由點光源產生的,軟陰影是由范圍光源產生的。

      2.1 硬陰影

      渲染步驟:

      第一步: 從光源處出發,假設光源處有一個相機,計算光源處看向場景的深度,渲染成深度圖保存(記錄看到點的深度);

      第二步: 從實際相機(眼睛)出發,計算相機看向場景的深度后,投影回光源處的相機空間(常稱為光源空間),并與第一步得到的深度進行比較。如果第二步得到的深度大于第一步得到的深度,那么說明該點在陰影內,反之不在。

      ①從光源看

      ② 記錄深度(Depth buffer/z-buffer)

      ③真正的相機看到的,對比shadow map和實際深度的關系

      →④最終場景

      ①為什么需要投影回光源空間?

      因為兩個相機看到的深度需要處于同一空間下進行比較

      ②如何將第二步看到的頂點變換到光源空間?

      將第二步中得到的處于世界坐標系下的頂點乘以光源空間下的 PV矩陣即可(投影和視角)

      ③在計算陰影時的比較問題

      如圖所示,非綠色部分表示陰影,圖中陰影部分明顯出現了較多的噪聲。這是因為深度緩沖區的深度采用的是浮點表示,而浮點比較會存在精度問題,無法直接判斷相等。

      2.2 軟陰影

      軟陰影是由范圍光源產生的。相比硬陰影,軟陰影的邊界更加模糊。

      軟陰影是由自然中叫penumbra(半影)造成的。

      軟陰影一定是因為光源有大小(點光源不可能有軟陰影)

      VR視頻 圖像處理 渲染 游戲開發

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:生產制造型企業名錄(生產制造型企業名錄表)
      下一篇:JS函數(上上) 9
      相關文章
      最新亚洲成av人免费看| 亚洲日韩在线第一页| 亚洲AV区无码字幕中文色| 国产亚洲色婷婷久久99精品91| 色欲色欲天天天www亚洲伊| 亚洲 暴爽 AV人人爽日日碰| 亚洲成a人片在线观看播放| 久久精品国产亚洲AV无码麻豆| 亚洲国产人成在线观看69网站| 亚洲av无码不卡一区二区三区| 精品亚洲一区二区| 久久精品国产亚洲av成人| 亚洲Av熟妇高潮30p| 亚洲av片劲爆在线观看| 久久水蜜桃亚洲av无码精品麻豆| 亚洲狠狠综合久久| 久久久国产精品亚洲一区| 亚洲美免无码中文字幕在线| 亚洲日本在线播放| 亚洲国产日韩在线人成下载| 激情综合亚洲色婷婷五月| 最新亚洲春色Av无码专区| 亚洲av无码专区在线观看亚| 国产亚洲漂亮白嫩美女在线 | 亚洲国产精品自在线一区二区| 亚洲av日韩av无码| 中文字幕亚洲色图| 亚洲国产av一区二区三区丶| 亚洲13又紧又嫩又水多| 亚洲欧洲免费无码| 国产成人+综合亚洲+天堂| 亚洲伊人久久综合影院| 亚洲精品tv久久久久久久久| 亚洲成年人在线观看| 亚洲国产视频网站| 伊人久久亚洲综合影院首页| 精品韩国亚洲av无码不卡区| 国产偷国产偷亚洲高清日韩 | 亚洲夂夂婷婷色拍WW47| 亚洲爆乳成av人在线视菜奈实| av无码东京热亚洲男人的天堂|