lightscape陰影鋸齒與陰影漏探討
2020-07-21 13:15:58
供稿:網友
和初學朋友探討探討陰影鋸齒與陰影漏以及建模中的問題,同時了解一下產生陰影鋸齒與陰影漏的原因, 從原理上了解一些, 就不用瞎子摸象了。
當模型開始傳遞時。
系統偵測光源在網格單元的各個頂點的光強度,計算出一個平均值 來定義這個單元, 當這個平均值不足以體現光在面上的變化時, 系統以網格變量來細化這個面, 有時我們看到燈光邊緣呈鋸齒狀,就是網格劃分不足以體現光在面上的變 化造成的 由于LS細化網格時是以每個單元邊的中心點來插入新的頂點把單元分成 4 個部分。這樣就不免會造成陰影或光束無法與網格相對齊。這就是我們看到的有鋸齒的陰影邊界,通常用下面幾種解決方法:
1、最簡單的辦法是減小最小網格間距來解決這個問題,由于只是減小最小網格間距,所以只是在燈光變化大的(如陰影邊緣,高亮區等)區域增加了網格,避免了對其它不必要區域網格的細分,是一種比較經濟的細分方法,象陽光或是射燈的明顯的陰影邊界效果,對網格要求細分較高, 它是以消耗內存和時間為代價的。它的每次變量是以四倍變量遞增的, 會增加大量的網格面, 所以應該適度。
2、利用光影追蹤,這種方法是對產生該陰影的燈源使用光影跟蹤直接光照選項, 它能在網格相對粗糙的情況下, 通過間接光照的相互反射,在渲染時產生好的視覺效果。不過光影跟蹤在渲染時會相對化費很多的時間,所以一般都在最終渲染時才打開該燈源的光影跟蹤直接光照選項, 其實省了細分,累了渲染,這也是LS中沒辦法的事
3、利用表面處理對面進行增加細化,來增強邊緣的清晰度, 這種方法對于個別受光面,象光域網和日光很有效,但網格的增量不能一味求高, 它也是以消耗內存和時間為代價的。
4、利用不同的燈光設置產生不同的陰影邊界線光源邊緣在面細分小時柔和,面光源邊緣在面細分大時柔和 。 與線光源相比, 面光源在不調整面的細分時柔和得多,點光源可用燈光屬性中的光束角和區域角來調節它的銳度和柔和度, 它在柔和時對網格細分的要求不高,而光影追蹤是這種效果的很好輔助下面是點光幾種設置產生光影邊界的示圖(使用較粗的網格,啟用了光影追蹤) 當光束與區域角相等時,邊界最清晰當區域角調大時,邊界變得柔和起來, 變得更自然當光束角調小時,光的聚光范圍變小了
5、不要刻意為追求燈光產生的效果而不惜工本,它能起到畫龍點睛的作用,但不能把它看作產生好的效果的唯一途徑,陰影泄漏陰影漏就是一個對象因邊界和頂點沒有與相接觸的表面邊界和頂點相對齊, 在光的作用下產生向表面周圍泄漏的黑暗區域, 合理的建模能有效抑制陰影漏。3DMAX教程網:/index.html
漏光,能節時與增效避免很多麻煩,從下面中圖來看: 由于園柱是無法與地面網格頂點對齊的,園柱蓋住地面的不受光部位是地面網格的部分頂點,而光是根據網格面的頂點顏色取一個中間值來決定這個網格面的受光強度的,所以這幾個面就與其它面有差異并向外滲透,這個差異就在視覺上產生了陰影漏解決方法之一是取消園柱封閉面",使光能穿過園柱而不投射陰影在地面上(見下右圖)。
但它會失去該物體的所有陰影一般這個處理方法都用于如嵌燈的燈罩,墻上的開關板,墻體等無須體現陰影的地方建模中產生陰影漏常見的幾個因素及通常處理方法:
1、模型的相交和重疊
LS中很在乎邊界和頂點對齊, 模型的相交和重疊,邊界頂點沒有對齊就都會產生陰影漏,在MAX和VIZ建模中能做到邊界對齊,但是要做到頂點對齊卻要化費些心思了, 必要時,可以根據細分增量的規律,通過計 算,合理安排相鄰面的尺寸比來達到。
2、不規則的三角面
復雜的模型生成往往會產生不規則的三角面,導入LS后不規則的三角面也是造成網格頂點對不齊的而影響陰影漏的因素, 這是在建模時就要考慮的因素, 盡量減少不規則的三角面特別是狹長的三角面, 由于不等邊差距太大,往往會造成計算錯誤,如果實在無法避免,(特別是帶園角布爾的面) 可以用二種方法解決:
A, 帶園角布爾的面可以在MAX中先細分后再布爾, 雖然犧牲了一個整面但效率是顯見的。
B,在LS中用新建面替換掉雜亂的面。3DMAX教程網 /index.html
3、 通過細化網格單元來處理
減小最小網格間距參數能解決陰影漏,但模型會產生大量的網格單元,這對于特別是比較復雜的大場景將意味著大量的內存和亢長的處理時間。
4、通過光影追蹤來處理:
這種處理優點是能保持較少的網格。而且效果很好,不過,光影跟蹤光源也增加了光影跟蹤處理的時間,對于場景中燈光比較復雜的模型來說,應該權衡得失 建模要對LS負責 不管是CAD或是MAX,(CAD&MAX下載:www.companysz.com/html/soft/index.html)建框架只要有一定復雜度,(一般用拉伸或是布爾),都可能會產生的碎面這是LS中最煩惱的事,不僅增多了面,而且狹長三角面挺難處理,處理多了,費工又費時
1, 注意相交處的對齊, 如是在MAX中建模,要習慣使用對齊和捕捉
2, 倡導單面建模, 多余的面會浪費無謂的計算時間
3, 簡化復雜面,盡量求整面和規則面,
4, 減少狹長的三角面,如果狹長三角面有所難免,盡可能縮短和規則狹長三角面長度和形狀。
5, 可用LS新建面替換由太多碎面或狹長三角面所組成的一組面,建模合理能有效抑制陰影漏。漏光,能節時與增效,能避免很多麻煩, LS也有建模功能, 只不過它的建模是較簡單的新建面,復制和變換,可以利用它和MAX,CAD結合起來運用,互補缺陷
第一種方法:
由園角和園弧布爾的面最易出現狹長三角面, 并會派生許多復雜的小面,在這種情況下寧可在MAX中給予適當的細分再進行布爾來避免和縮短一些不規則面的產生
圖細分步驟:
1、轉成面片后,在修改面板中的Surface下的View steps(步長)調到02選中頂面選擇Subdivide(細分)第一次細分不勾選邊上的勾, 按下細分該面被劃分為4塊
3、選中細分成四塊的其中一塊面, 勾上邊上的勾,再細分
4、在點級別成排選擇點,進行移動(如要精確可用移動工具的數字定位)
5、按照下圖按下三維捕捉紐,右鍵彈出菜單中勾選Endpoint(結束點)其它都不勾選, 在內框兩個對角拉一矩形, 根據自己要求來倒角或變形 設一個燈和一個攝影機在BOX內部,導入.
4、在點級別成排選擇點,進行移動(如要精確可用移動工具的數字定位)
5、按照下圖按下三維捕捉紐,右鍵彈出菜單中勾選Endpoint(結束點)其它都不勾選, 在內框兩個對角拉一矩形, 根據自己要求來倒角或變形 設一個燈和一個攝影機在BOX內部,導入LS,OK現在來比較一下:
一些結構較復雜的模導入,如果模型面太亂,可以用LS的”建立表面”替換掉原來的面, 這里借用上面的模型,(假設它是較復雜的)