如何在unity中(或者3dmax)實現這種線化模型效果?

需求是:建一棟樓的模型,牆體是半透明,樓的輪廓、牆的棱以線條方式呈現,如圖所示,請貴人相助!

在3dmax或者其他建模工具里能直接實現嗎?或者用unity的shader渲染?


如果是離線渲染的話可以用max的插件pencil+或者vraytoon,或者finaltoon描邊,材質用半透。

如果要實時可以用後處理描邊配合半透明材質


如果你的最終目的是渲染像照片里的那棟樓,那在unity里實現的方法有很多。

首先遊戲里通常的描邊shader,以及屏幕後處理的描邊演算法肯定是行不通的,因為你這個線條的顯示是基於模型的幾何特性,而不是基於攝像機的朝向或是色差。可以使用geometry shader,通過檢測相鄰兩個面片的法向量點乘從而生成所需線條。

還有一個方法主要利用mesh,從mesh中可以直接獲取三角形集合,獲取了三角形就可以通過linerender動態構建三條邊,linerender可以使用你需要的線的材質,但這樣做有個問題,比如一個矩形,你只希望它把邊框渲染,但由於它是由兩個三角形構成的所以中間那個斜邊也會被渲染出來,解決這個問題可以用一個簡單的trick,當一個邊兩次出現時就取消這條邊。在這個基礎上,再使用半透明材質渲染原模型。

當然也有一些簡單的方法,比如直接利用紋理,這個紋理上有你需要的邊。然後再在unity里堆一堆,雖然土但也能達成效果。


直接給你所建的模型給予一個晶格命令,然後它就會根據你的布線變成可調節的線形模型。


unity不知道,3dmax倒是可以:

將需要渲染輪廓線的模型加上"優化"修改器,勾選上"自動邊",就可以隱藏沒有角度變化的內部連線

然後給一個材質透明通道加一個"Vray邊紋理"

渲染即可。明天上圖…


如果你模型布線不是這樣的,顯卡是得不到這樣簡練的建築框架描線的,就是說你發的效果是人為處理的。還有一種情況就是利用Shader 來找邊緣,就如VRayToon材質,相似的問題例如「遊戲中人物描邊的實現」


類似這棟樓的效果,牆體半透明,樓層和牆的棱用線條,這種效果


推薦閱讀:

3DMAX建模很卡怎麼辦!?
做遊戲只做建模,可否用c4d加zbrush?
請問一個新手要怎麼學習3Dmax建模?
怎樣讓父母理解自己買帶獨顯的筆記本是為了非遊戲用途?

TAG:Unity遊戲引擎 | 渲染 | 3D建模 | Autodesk3dsMax |