虚幻4中的程序化生成【1】程序化生成河流。
給自己立了很多flag,由于時(shí)間原因很多系列都還在寫,算是循序漸進(jìn)的總結(jié)。在程序化生成系列里,將會(huì)有如下記述:
【1】程序化生成河流
主要內(nèi)容有@1?shader的自動(dòng)調(diào)整(如河流的深淺,河水的波濤程度)
? ? ? ? ? ? ? ? ? @2?河流形狀的調(diào)整,我們只需要編輯一條樣條線,河流根據(jù)這條樣條線自適應(yīng)形狀。
【2】程序化生成森林
主要內(nèi)容有:@1用隨機(jī)種子隨機(jī)生成森林。減少美術(shù)工作量。
? ? ? ? ? ? ? ? ? ? ? @2?程序化生成藤曼,減少美術(shù)制作藤曼的痛苦。
【3】程序化地形
主要內(nèi)容有:主要是上面那中方法的高級(jí)應(yīng)用。
現(xiàn)在先來(lái)看看程序化生成河流
這個(gè)主要包含兩部分,第一部分為河流shader,第二部分為讓河流模型匹配樣條線。
shader我完全用的是虛幻的材質(zhì)編輯器來(lái)制作,如果有必要,想制作caustic的話,虛幻也可以用自己的功能開啟distancefield來(lái)完成。
水的材質(zhì)的程序化主要體現(xiàn)在shader會(huì)根據(jù)水在場(chǎng)景中的深淺來(lái)自己調(diào)節(jié)深度,反射度,泡沫紋理的插值強(qiáng)度,和水邊緣高亮強(qiáng)度。
虛幻材質(zhì)編輯器里剛好提供了一個(gè)簡(jiǎn)便的方法,DistanceFeild。我用了兩個(gè)distancefeid,和紅,藍(lán),綠,黑三種顏色先制作了四個(gè)mask,然后用這個(gè)mask來(lái)制作水面不同深度的各個(gè)效果。
上圖為我把紅藍(lán)兩個(gè)mask拆開后的結(jié)果。
完成了Mask的制作之后剩下的就是調(diào)效果啦,不過(guò)這里主要把精力集中于程序化上,所以其他就不贅述了。
完成了shader部分的程序化工作之后,剩下的一步就是讓河流平面模型匹配樣條線。
首先我們需要建立一個(gè)腳本,然后在里面添一個(gè)樣條線組件slinecomponent。再聲明一個(gè)splinemeshcomponent。這里需要注意一點(diǎn),splinemeshcomponent準(zhǔn)確翻譯應(yīng)該是一個(gè)樣條線段模型組件,而不是樣條線模型組件。因?yàn)閷?shí)際上splinemeshcomponent只會(huì)覆蓋樣條線的一個(gè)線段而已。
邏輯都比較簡(jiǎn)單,就一個(gè)for循環(huán)往樣條線上加SplineMeshComponent然后對(duì)這個(gè)組件設(shè)置它的切線和位置。挺簡(jiǎn)單的,腳本就能完成都不需要?jiǎng)佑胏++。所以我這里就不帖代碼了,直接截取了腳本的一部分。
總結(jié)
以上是生活随笔為你收集整理的虚幻4中的程序化生成【1】程序化生成河流。的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机excel求四分位数,如何在Exc
- 下一篇: Auto.JS 教程(1)