日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

制作3D地形(四):創(chuàng)建模型

 GIS薈 2021-09-19

前言:詳細(xì)介紹如何使用高程數(shù)據(jù)在 Blender 中創(chuàng)建3D立體地形模型,涉及材質(zhì)、表面細(xì)分和置換等相關(guān)概念...
再一次溫馨提示:主界面右側(cè)的屬性對(duì)話框中選項(xiàng)會(huì)根據(jù)當(dāng)前的選中對(duì)象(物體、其他物體、光源、攝像機(jī))的不同而發(fā)生變化,并且一部分相關(guān)設(shè)置只會(huì)作用于被選中的物體。

第一步 更換渲染引擎

渲染引擎(Rendering Engine)是 Blender 程序非常復(fù)雜且重要的組成部分之一,我們的模型、陰影等效果之所以是這模樣都是模型渲染引擎的功勞。

點(diǎn)擊 Blender 主界面右邊相機(jī)模樣的圖標(biāo)(橙色框中部分),可以打開渲染器屬性界面,在這里可以修改渲染引擎相關(guān)屬性;Blender 默認(rèn)的渲染引擎是 Eevee,我們需要將其更換為 Cycles。

你可以簡(jiǎn)單的認(rèn)為 Cycles 引擎牛逼一些。

將 Render Engine 更換為 Cycles 后,緊接下面的 特性集(Feature Set) 也修改為 試驗(yàn)特性(Experimental)。

實(shí)驗(yàn)特性一般是一些最新的、較為先進(jìn)的特性,也可能有各種問題,管他呢,用就完了,之后用到的部分設(shè)置只有在開啟實(shí)驗(yàn)特性后才有。

第二步 修改平面

選中主界面中的立方體,使用 Delete 鍵刪除,然后快捷鍵 Shift+a 調(diào)出模型添加界面,依次點(diǎn)擊網(wǎng)格(Mesh)平面(Plane),可以在主界面中央添加一個(gè)平面模型。詳細(xì)操作在《第三章》講過,如果不清楚可以回第三章看看,有圖文說明。

添加模型后,點(diǎn)擊右邊 圖標(biāo)打開物體屬性窗口,其中的位置XYZ( LocationXYZ)用于調(diào)整平面在坐標(biāo)系上的位置,縮放XYZ(ScaleXYZ)用于調(diào)整模型的大小。

有的讀者可能會(huì)發(fā)現(xiàn),模型屬性中沒有一個(gè)可以明確設(shè)置大小的選項(xiàng),只有位置、角度、比例(縮放),那這是為什么呢?

其實(shí)這里是模型的設(shè)置選項(xiàng),模型是可大可小的,出圖大小主要和攝像機(jī)屬性相關(guān),所以這里自然就沒有大小設(shè)置的選項(xiàng)啦。如何限制出圖大小后面再講。

盡管不用在意模型大小,這里依然有一個(gè)東西必須修改,那就是平面(plane)模型的比例,通過修改 縮放XYZ 來控制比例,比例需要和 TIFF 圖片相匹配。

mountain.tif 文件的分辨率尺寸為 2364 X 1871,所以我們可以將 縮放XYZ 為下面這樣:

縮放比例:2.364比1.871

第三步 添加材質(zhì)(Material)

1.什么是材質(zhì)?

先說什么是材質(zhì)?是一個(gè)比較抽象和復(fù)雜的概念,我就直接抄別人的吧!

Daniel Huffman https://somethingaboutmaps./about/  做了一個(gè)解釋:

In the real world, substances such as wood, stone, glass, etc. look different from each other because they have different colors, different surface textures, different roughnesses, etc. Blender is designed to simulate these variations by letting us assign different material properties to our objects. This is a big contributor to the realism of 3D models: the rendering engine calculates the scatter & bounce of light differently for different objects based on the properties they’ve been assigned. Each object in Blender is made of what the system calls a material. Materials are just collections of properties that tell Blender how light should interact with the object — basically, what sort of real-world substance the object should pretend to be made from.

--Daniel Huffman, a lovly cartographer.

我翻譯成中文給大家看看吧,如果邏輯有問題那就是谷歌的鍋:

在現(xiàn)實(shí)世界中,木材,石材,玻璃等物質(zhì)看起來互不相同,因?yàn)樗鼈兙哂胁煌念伾?、不同的表面紋理、不同的粗糙度等。Blender 旨在通過讓我們分配不同的材質(zhì)屬性來模擬這些差異。

這對(duì) 3D 模型的真實(shí)性做出了重要貢獻(xiàn):渲染引擎根據(jù)分配給它們的屬性,針對(duì)不同的對(duì)象,以不同的方式計(jì)算光的散射和反彈。

Blender 中的每個(gè)對(duì)象均由系統(tǒng)稱為材質(zhì)的東西組成。材質(zhì)是屬性的集合,這些屬性告訴 Blender 光線應(yīng)該如何與對(duì)象相互作用、對(duì)象與對(duì)象之間應(yīng)該如何作用,簡(jiǎn)單來說就是讓系統(tǒng)去模擬現(xiàn)實(shí)世界中的物質(zhì)是由什么組成的。

沒有任何材質(zhì)的模型,呈現(xiàn)灰灰的模樣

2.材質(zhì)添加

在右邊的材料屬性對(duì)話框中,點(diǎn)擊新建創(chuàng)建材質(zhì);

然后 Blender 會(huì)生成一個(gè)名為材質(zhì).001(Material.001)的材質(zhì)文件。然后在下面可以看到非常多的材質(zhì)屬性選項(xiàng),還可以看到材質(zhì)預(yù)覽。

雖然下面的可修改選項(xiàng)多,但是我們用的少啊,所以學(xué)習(xí)成本不高。

材質(zhì)屬性選項(xiàng)界面

第四步 使用著色器編輯器創(chuàng)建凹凸面

材質(zhì)不僅可以描述物體對(duì)象的粗糙度、顏色、光反射情況外,也可以通過表面的灰度值,模擬凹凸效果。

首先進(jìn)入著色器編輯器界面;

1.編輯器工作基本原理

著色器編輯器是節(jié)點(diǎn)式、流式的編輯工具。

這種節(jié)點(diǎn)式的操作流程利于理解同時(shí)符合邏輯,又能處理構(gòu)建復(fù)雜的工作、效果流。

兩個(gè)節(jié)點(diǎn)(Node)

上圖中有兩張矩形的“卡片”,一張“卡片”就是一個(gè)節(jié)點(diǎn)(Node);

每個(gè)節(jié)點(diǎn)中都有很多可調(diào)整項(xiàng),每個(gè)節(jié)點(diǎn)都有輸入和輸出端,節(jié)點(diǎn)左側(cè)的小圓點(diǎn)是輸入端,右邊的是輸出端。節(jié)點(diǎn)在對(duì)輸入內(nèi)容進(jìn)行處理加工后再?gòu)妮敵龆溯敵?/strong>。輸入和輸出端不是只有一個(gè),或許有多個(gè)。

下圖紅色的“材質(zhì)輸出”這個(gè)節(jié)點(diǎn)看上去沒有輸出,實(shí)際上它是自動(dòng)將內(nèi)容輸出給了 Blender 去處理,所以隱藏了。

2.創(chuàng)建凹凸紋理

左上方點(diǎn)擊添加(Add)->紋理(Texture)——>圖像紋理(Image Texture),如此可以創(chuàng)建一個(gè)新節(jié)點(diǎn),當(dāng)然請(qǐng)忘記這個(gè)繁瑣操作,你應(yīng)該直接使用快捷鍵 Shift+a 來快速添加節(jié)點(diǎn)。

點(diǎn)擊“圖像紋理”節(jié)點(diǎn)中的打開選項(xiàng),選擇你從我這里下載的或者你自己已經(jīng)處理完成的 tif 文件 mountain.tif;

然后就是節(jié)點(diǎn)連接操作。點(diǎn)擊“圖像紋理”節(jié)點(diǎn)右邊的黃色小圓點(diǎn),上面寫著顏色,然后拖拽線條,連接到“材質(zhì)輸出”節(jié)點(diǎn)左側(cè)名為置換(Displacement)的小圓點(diǎn)。

點(diǎn)擊渲染圖像,你可以得到一張簡(jiǎn)單使用不同的灰度值對(duì)比來表現(xiàn)凹凸地形的渲染圖;

這種表現(xiàn)地形的方式同 ArcGIS 、QGIS 等都是一樣的,是一種假的地形。不是真正的3D模型,依然是平面的,它僅僅是通過圖像的灰度值來模擬不同地形的凹凸程度,從而實(shí)現(xiàn)地形起伏的效果。

它沒有真正的反射光、漫反射,所以還需要進(jìn)一步的操作。

第四步 使用著色器編輯器創(chuàng)建立體模型

在凹凸面的基礎(chǔ)上生成真正的3D模型。

1.表面細(xì)分

表面細(xì)分,英文:Subdivision Surface,也可以叫曲面細(xì)分。

表面細(xì)分會(huì)增加模型的細(xì)節(jié)程度(增加模型的多邊形數(shù)),模型的頂點(diǎn)數(shù)量會(huì)增多。減少球體的頂點(diǎn)會(huì)讓其表面越來越棱角分明,而增加節(jié)點(diǎn)會(huì)越來越光滑。表面細(xì)分被大量用于建模、用于創(chuàng)建復(fù)雜的表面。

通常來說,頂點(diǎn)越多,三角面也越多,模型越精細(xì),可以滿足更為細(xì)致的地形表現(xiàn)。

上:表面細(xì)分后;下:表面細(xì)分前

在確保模型在選中的狀態(tài)下(模型在選中狀態(tài)下四周有橙色描邊),點(diǎn)擊右側(cè) 圖標(biāo)打開修改器屬性對(duì)話框。點(diǎn)擊添加修改器(Add Modifier)->表面細(xì)分(Subdivision Surface)。

之后可以看到以下這個(gè)表面細(xì)分選項(xiàng)界面;同時(shí)非常重要的一點(diǎn)就是在細(xì)分類型中選擇簡(jiǎn)單型,然后勾選中自適應(yīng)細(xì)分(如果沒有的話,可能就是你沒有開啟渲染引擎的試驗(yàn)特性)。

自適應(yīng)細(xì)分模型現(xiàn)在不會(huì)立即發(fā)生改變,只有當(dāng)渲染需要的時(shí)候才會(huì)細(xì)分出成千上萬個(gè)頂點(diǎn)。

選中自適應(yīng)細(xì)分后,Blender 程序會(huì)根據(jù)具體的圖形、模型包括相機(jī)的距離姿態(tài)來自適應(yīng)的更改表面的細(xì)分程度。這有助于細(xì)微處細(xì)節(jié)的提升同時(shí)提升整體的渲染性能,縮小渲染時(shí)長(zhǎng),畢竟一張圖直接渲染一天也是很有可能發(fā)生的事情。

2.置換

終于來到最后一步!

置換:將灰度凹凸面置換成真正的立體模型。

回到著色器編輯器界面,左上方點(diǎn)擊添加(Add)->矢量(Vector)——>置換( Displacement),添加“置換”節(jié)點(diǎn)。

將下圖“置換”節(jié)點(diǎn)左邊的高度小圓點(diǎn)(Height)與橙色的“圖像紋理”節(jié)點(diǎn)相連;“置換”節(jié)點(diǎn)右邊的置換(Displacement)小圓點(diǎn)與“材質(zhì)輸出”節(jié)點(diǎn)相連。

然后點(diǎn)擊打開右側(cè)的材質(zhì)對(duì)話框,就是這個(gè)紅黑色的的小球,點(diǎn)擊后向下滑動(dòng)找到設(shè)置,最后將僅凹凸(Bump Only)修改為僅置換(Dispacement Only)。

現(xiàn)在 Blender  不會(huì)再通過不同的灰度值來模擬地形了,而是真正使用數(shù)以萬計(jì)的頂點(diǎn)(三角面)來搭建地形,從而實(shí)現(xiàn)逼真的地形效果。

再次渲染圖像,然后你的電腦會(huì)直接起飛,你會(huì)發(fā)現(xiàn)渲染速度變慢,用時(shí)變長(zhǎng),這是正常的也是好事,這說明你的電腦忙著表面細(xì)分、搭建3D立體模型、計(jì)算光線的反射、陰影等。

地形模型渲染效果如下:

第五步 優(yōu)化

顯然,目前的成果還是不太正常。渲染出來的效果可以說是非常瘋狂了,像“瘋狂山脈”?

不僅模型的高度非常夸張,在四周的邊緣處可以看到這種拉伸狀的陰影,恩~我也不知道叫什么,就先叫陰影吧。

拉伸狀的陰影

1.調(diào)整高度

可以通過修改“置換節(jié)點(diǎn)”的縮放條來降低地形起伏的瘋狂程度,我把縮放從1修改為0.16。

不過之后我不會(huì)使用0.16這么小的值啦,盡管設(shè)置成這個(gè)數(shù)值的話,渲染出來的山脈比較符合實(shí)際的高度比例,但是在美術(shù)方面的表現(xiàn)就不太夠,陰影也不夠突出,所以我之后的渲染成果一般是使用的0.4這個(gè)數(shù)值。

不過還是看個(gè)人的喜好還有實(shí)際數(shù)據(jù)的高度情況,如果你選擇地圖的高度較低、沒有太多的起伏的話,可以適當(dāng)調(diào)大這個(gè)值;如果整體的山脈本來就很高,很有立體感的話,就沒有必要設(shè)置那么高了。

2.去除拉伸狀“陰影”

而圖像邊緣的拉伸狀陰影可以將“圖像紋理”節(jié)點(diǎn)中的重復(fù)(Repeat)更改為擴(kuò)展(Extent)。

再次渲染出圖,這次的地形起伏就沒有那么瘋狂了,圖像的邊緣也沒有拉伸狀的陰影。

成果圖

最后

看完這章節(jié)你可以掌握:

  • 什么是材質(zhì)?如何添加材質(zhì);

  • 使用 Blender 創(chuàng)建簡(jiǎn)單的凹凸紋理;

  • 表面細(xì)分的意義;

  • 通過置換構(gòu)建真正的3D模型;

  • 模型簡(jiǎn)單的優(yōu)化:降低高度,去除四周的拉伸陰影。

這一章向前邁進(jìn)了一大步,成功創(chuàng)建了3D地形模型,但是我們可以看到,這個(gè)效果還是一般,最重要的是:清晰度不夠;

所以在下一章節(jié)中,會(huì)著重介紹攝像機(jī)-光源-顏色,如此之后,成果圖的顏值和細(xì)節(jié)會(huì)進(jìn)一步提高。同樣渲染時(shí)間也會(huì)蹭蹭的往上漲。

好了到這里本章節(jié)就結(jié)束了,下一節(jié)再見!

現(xiàn)在我們已經(jīng)接近這個(gè)效果了,還剩四分之一的路程:

離這個(gè)成果還有一半的路程:

資料下載:

  1. 提供原始高程數(shù)據(jù)以及處理好后的高程數(shù)據(jù);

    1. 1 原始高程數(shù)據(jù):原始未投影 TIFF 數(shù)據(jù)。

    2. 2 成果高程數(shù)據(jù):完成所有處理步驟,可直接建模的 TIFF 數(shù)據(jù)。

  2. Blender 文件(后續(xù)章節(jié)會(huì)提供);

  3. 系列教程PDF文檔。

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多