頂點法線計算的幾種方式

2021-10-02 15:29:53 字數 693 閱讀 9647

首先,頂點法線都是從面法線加權平均計算得到。所以有兩個維度,一是哪些面參與計算,二是權重如何計算。

一 哪些面參與計算

如果建模工具匯出了光滑組,那麼方案一是直接使用光滑組資訊,屬於同乙個光滑組的面參與計算。

方案二是同時使用光滑組資訊以及面的夾角的閾值。

方案三是只使用面的夾角閾值。此時需要注意的是,由於建模工具沒有匯出光滑組,也就是說所有三角形都是預設同乙個光滑組,那麼如果三角形有共享頂點,且滿足夾角閾值,就需要將共享頂點複製出來,對應不同的法線。

二 權重如何計算

簡單方案是沒有權重,共享頂點的三角形對該頂點法線的貢獻一樣。但是這樣會有一些問題。

參考這個文章:weighted vertex normals

此文的作者開發了乙個3dmax外掛程式,可以計算頂點法線。在文章中作者提出如果沒有權重存在兩個問題:

1)非常小的面也會對頂點法線產生比較大的影響。

2)在同一平面上的兩個三角形對頂點法線的影響重複了。

所以在這篇文章裡面,作者採用三角形面積作為權重解決第乙個問題,採用共享頂點的三角形從該頂點出發的兩條邊的夾角作為權重解決第二個問題。這兩個權重相乘即可。

我一開始理解採用夾角作為權重,以為是兩個面的夾角(即第乙個維度用於閾值判斷的夾角),但是實際操作時發現這個似乎沒什麼意義,而此篇文章作者講述的方案比較有意義。只是文章中偽**計算向量的地方似乎反了,或者說那不是減號而是乙個記號。

頂點法線和面法線

在3d世界中每乙個頂點都有顏色,除了使用光源和物體的材質資訊之外,還需要知道每個頂點的法向量,根據光照入射方向和法向量的夾角,計算頂點的最終顏色.那麼我們來了解下頂點法線.頂點法線 每乙個頂點都有法向量,就能知道光線到達物體表面的入射角.面法線 垂直乙個平面的直線叫麵法線 一般情況下頂點法線和面法線...

頂點法向量的計算

在opengl程式設計中,三維模型頂點法向量的計算很重要,它直接影響著顯示的效果 本人接觸opengl時間不長,很長一段時間一直困惑於法向量計算的問題,後經仔細研究並找了些資料才基本實現了法向量的計算演算法,現總結如下,希望對初學者能有些幫助。大家知道,在opengl中頂點 三角形模型對光照的反射取...

關於點法線向量的計算

我在學習opengl的過程中,發現光照模型的渲染是需要指定法線向量的。無論是面法線還是點法線,不指定的話可能會造成不可預知的渲染效 果。面法線的計算相對來說容易一些,說說點法線如何計算的。當然我在網上也找了好些資料。計算點法線,必須先計算它所在的面的面法線向量,再對所有面法線向量做歸一化才可以。那如...