提交需求
賽事與廣告咨詢合作,請(qǐng)?zhí)顚懶枨蟊韱?,我們?huì)在第一時(shí)間與您聯(lián)系!
hello,今天是給大家分享一下之前分享到網(wǎng)絡(luò)的一組圖的制作思路。因?yàn)樵缜拔野l(fā)文說給大家分享思路,所以今天就來(lái)給大家兌現(xiàn)。
關(guān)于本組圖其實(shí)看著很多張,其實(shí)都是由一種建模方式演變而來(lái),所以在這里我就分享一種思路,大家可以靈活變換出很多種形態(tài)來(lái)。然后大家可能還會(huì)問我這個(gè)顏色這么豐富是怎么來(lái)的,在本次的這組作品中采用的是代碼實(shí)現(xiàn)的(OSLshader),當(dāng)然這個(gè)代碼是GitHub上面開源的。
在今天的教程中我會(huì)以第一個(gè)圖為基礎(chǔ)進(jìn)行建模到材質(zhì)的一個(gè)系列來(lái)進(jìn)行一個(gè)講解,其中也包含了osl這方面的使用和分享。關(guān)于本組作品中玻璃材質(zhì)的制作方法,大家可以去看第二期的內(nèi)容哈,那個(gè)我覺得已經(jīng)講的夠細(xì)了。
——————————————————————————————————————————————————
我們首先用樣條畫筆工具,繪制出我們想要的樣條形態(tài),這個(gè)形態(tài)會(huì)關(guān)系到我們最終的一個(gè)效果形態(tài)。
所以我們繪制前可以好好繪制,避免在后面修改。(因?yàn)楹竺嫘薷牡脑挄?huì)有可能越改越不好看的情況出現(xiàn))
現(xiàn)在我們添加一個(gè)克隆效果器,并為其子級(jí)里面添加我們想要克隆的對(duì)象然后我們把克隆的模式改為對(duì)象,再把剛才繪制的樣條放進(jìn)去。
再把數(shù)量調(diào)大,這樣我們的主體后期看起來(lái)就會(huì)更光滑。
我們現(xiàn)在為樣條添加一個(gè)置換效果器,來(lái)打破樣條太一致的情況。
當(dāng)然,這個(gè)需要放到樣條的子級(jí)才會(huì)有效果。接下來(lái),我們?cè)谥脫Q里面添加一個(gè)噪波著色器以便我們控制這個(gè)打破的范圍。
然后我們進(jìn)入噪波,把紋理的縮放和比列都進(jìn)行一個(gè)適當(dāng)?shù)恼{(diào)整。當(dāng)然你也可以調(diào)整種子數(shù)來(lái)達(dá)到自己的目的。
我們現(xiàn)在來(lái)給克隆添加一個(gè)隨機(jī)效果器,這樣我們所克隆的物體就會(huì)有個(gè)隨機(jī)變換的效果,不至于那么統(tǒng)一一致。
現(xiàn)在我們來(lái)為克隆添加一個(gè)簡(jiǎn)易效果器,也是為了打破太一致的情況。
然后我們調(diào)整他的一個(gè)縮放,這里數(shù)值是根據(jù)你的實(shí)際情況來(lái)進(jìn)行調(diào)整的哈,我的只是一個(gè)參考。
然后我們用一個(gè)著色器域來(lái)控制這個(gè)縮放的范圍。當(dāng)然了,這里我們也是加了一個(gè)噪波來(lái)進(jìn)行控制。
到此,我們的主體形態(tài)基本上完成了,后面我們就需要對(duì)他進(jìn)行一個(gè)加工處理。
現(xiàn)在基本形態(tài)我們以及有了,那么我們接下來(lái)就需要把他變得平滑,看起來(lái)像那么回事。這里我們可以使用體積生成這個(gè)工具來(lái)進(jìn)行后面的處理。
先一次創(chuàng)建體積生成,體積網(wǎng)格。然后把我們的克隆放到體積生成下面,這樣我們的初步處理就完了。那么接下來(lái),我們就是對(duì)細(xì)節(jié)的一次調(diào)整,我們把體素尺寸改小,并且添加一個(gè)SDF平滑。這樣我們的模型就會(huì)很滑。這就是我們要的效果啦。
當(dāng)然,如果你覺得形態(tài)不滿意可以回到最開始的時(shí)候進(jìn)行一個(gè)調(diào)整,但是記得關(guān)閉掉體積生成和體積網(wǎng)格,不然會(huì)卡到爆炸的。
然后如果你想把形態(tài)的底部進(jìn)行一個(gè)切平的處理的話,我們可以直接創(chuàng)建一個(gè)立方體,并放入體積生成里面。然后把模式改成減。(記得這樣操作的時(shí)候記得關(guān)閉體積生成哈,這樣不會(huì)運(yùn)算就會(huì)減少計(jì)算負(fù)荷)
當(dāng)我們調(diào)整完所有的時(shí)候,就可以進(jìn)行下一步的處理了。直接選中體積網(wǎng)格進(jìn)行右鍵>當(dāng)前狀態(tài)轉(zhuǎn)對(duì)象。
現(xiàn)在雖然我們得到了一個(gè)很優(yōu)秀的模型,但是他的面實(shí)在是太多了,多到爆炸,所以我們需要最后的處理一下他。打開我們的拓?fù)洳寮?,然后我們進(jìn)行一個(gè)拓?fù)洹?img src="https://img.zcool.cn/community/01070862494cee0002c3290f76d675.png" title="" alt="" class="fr-fic fr-dii">這里的一個(gè)數(shù)值都是估計(jì)的哈,拓?fù)渫瓿珊?,我們就得到了一個(gè)漂亮的模型,咱們就可以開心的去渲染啦。好了,模型部分到這里就結(jié)束了,然后給大家總結(jié)一下:
創(chuàng)建樣條
創(chuàng)建克隆
創(chuàng)建體積生成
拓?fù)淠P?/p>
可以控制形態(tài)的幾個(gè)點(diǎn):
樣條本身
樣條置換里面的噪波
克隆的隨機(jī)值和不同的對(duì)象
簡(jiǎn)易效果器里面的噪波
——————————————————————————————————————————————————
我們創(chuàng)建一個(gè)背景、攝像機(jī)來(lái)進(jìn)行簡(jiǎn)單的場(chǎng)景搭建。
其中攝像機(jī)是正對(duì)著我們的主體,然后焦距是一個(gè)135MM的,我比較喜歡這個(gè)焦距,因?yàn)椴粫?huì)有太大的形變。
我們需要給場(chǎng)景一個(gè)照明,在RS里面我比較首選HDR(Dome Light)來(lái)進(jìn)行一個(gè)照明。然后為其添加一個(gè)HDR貼圖。
這里,我們可以看出HDR是帶有暖色調(diào)的,我們不想要這個(gè)就可以吧飽和度改為0。然后我們可以到坐標(biāo)里面把環(huán)境的坐標(biāo)進(jìn)行一個(gè)調(diào)整,這樣我們就可以把燈光調(diào)整到我們自己想要的角度了。
如果覺得不夠亮,我們可以吧曝光提高。現(xiàn)在我們整個(gè)場(chǎng)景的初步搭建已經(jīng)完成,現(xiàn)在讓我們進(jìn)入材料的制作吧。
創(chuàng)建兩個(gè)默認(rèn)材質(zhì)球。并命名為背景和主體。
然后分別給到我們的背景和主體上。
我們雙擊材質(zhì)球,打開名為背景的材質(zhì)球,然后把他的反射關(guān)閉,因?yàn)樽鳛楸尘?,我們不要他有反射出現(xiàn)。
這里的Color改為黑色和Weight改為0都是可以關(guān)閉到反射的一種方式?,F(xiàn)在我們可以重下圖看見反射已經(jīng)沒有啦。
我們現(xiàn)在在他的漫射通道上面給他添加一層漸變色,我們這里需要用到Ramp(漸變節(jié)點(diǎn))。我們只需要打開節(jié)點(diǎn)編輯器,然后再英文狀態(tài)下按Shift加C,就可以調(diào)出搜索來(lái)。然后我們輸出Ramp并雙擊就可以創(chuàng)建該節(jié)點(diǎn)。然后我們把它鏈接給材質(zhì)的漫射顏色上。
這樣我們就得到了一個(gè)黑白的漸變。
現(xiàn)在我們?nèi)ジ淖兒诎诐u變的顏色即可。如果反向了,我們可以調(diào)整一下位置,距離的調(diào)整可以改變漸變顏色的強(qiáng)弱
我們現(xiàn)在就可以開始制作主體的材料了,首先我們復(fù)制我們要使用的OSL代碼。(不要再這里復(fù)制代碼,沒有縮進(jìn)會(huì)報(bào)錯(cuò)哈)
/* ?* TurbulentColor.osl by elbrujodelatribu (c)2013 ?* from https://github.com/sambler/osl-shaders ?* Modified 04.02.2021 by Saul Espinosa for Redshift 3d ?* original script from - ?* http://elbrujodelatribu.blogspot.com.au/2013/05/blender-cycles-osl-color-turbulence.html ?* based on work from ?* http://glsl.heroku.com/e#8664.0 ?* This file is licensed under Apache 2.0 license ?*/ shader TurbulentColor [[ ?string help = "Turbulent Color Noise", ? ? string label = "Turbulent Color" ]] ( ? ? vector Vector = P, ? ? float Scale = 5 [[ float min = 0, float max = 25 ]], ? ? float Time = 1.0 [[ float min = 0, float max = 100 ]], ? ? int MaxIterations = 64 [[ int min = 1, int max = 100 ]], ? ? output color Color = 0.8) { ? ? vector p = Vector * Scale;//surfacePosition; ? ? for(int i=1; i < MaxIterations; i++) ? ? { ? ? ? ? vector newp = p; ? ? ? ? newp[0]+=0.6/float(i)*sin(float(i)*p[1]+Time/20.0+0.3*float(i))+20.0; ? ? ? ? newp[1]+=0.6/float(i)*sin(float(i)*p[0]+Time/20.0+0.3*float(i+10))-5.0; ? ? ? ? p=newp; ? ? } ? ? Color = color(sin(Time+p[1]+p[0]-M_PI*color(0,2,4)/(4.0+sin(Time)))*0.3+0.5); }
然后再節(jié)點(diǎn)面板找到我們的OSLShader節(jié)點(diǎn),把我們的代碼復(fù)制進(jìn)去,進(jìn)行編譯。然后我們就能得到屬性菜單。
這里我是調(diào)整成這樣了。大家可以根據(jù)自己的模型情況來(lái)進(jìn)行調(diào)整。這樣我們的顏色就已經(jīng)搞得啦。接下來(lái)就是凹凸的問題啦。
步驟7
現(xiàn)在我們就來(lái)解決這個(gè)凹凸的問題,我們可以找一下自己想要的黑白紋理來(lái)進(jìn)行凹凸的制作,我這里找了一張指紋的黑白貼圖。然后我們把它放進(jìn)節(jié)點(diǎn)面板,然后使用Bump節(jié)點(diǎn)進(jìn)行一個(gè)鏈接。
但是為了更好的和模型貼合,我這里使用了一個(gè)Triplanar(三面映射)。這樣在沒有分UV的情況下,貼圖會(huì)和模型更好的貼合。
這里我將貼圖的一個(gè)縮放改小了,這個(gè)大家根據(jù)實(shí)際情況來(lái)進(jìn)行調(diào)整
好了,到這里主體材料的顏色和凹凸我們都解決了,接下來(lái)我們解決一下那些小點(diǎn)點(diǎn)的問題。
同樣的,這些點(diǎn)點(diǎn)我也是用了一個(gè)OSL代碼,我們還是先復(fù)制這個(gè)osl代碼。(不要再這里復(fù)制代碼,沒有縮進(jìn)會(huì)報(bào)錯(cuò)哈)
// Random circles (or spheres, really) with outputs // for bump, random factor, etc. Can be made to make // very cool random candy cover, paint flakes... // // Dots.osl, by Zap Andersson // Modified: 2019-11-10 // Copyright 2019 Autodesk Inc, All rights reserved. This file is licensed under Apache 2.0 license // ? ?https://github.com/ADN-DevTech/3dsMax-OSL-Shaders/blob/master/LICENSE.txt // Modified: 2020-1-15 by Saul Espinosa for Redshift 3D shader Candy [[ string help="Random circles with random colors and a tunable bump output. For random dots or candy sprinkles.", ? ?string category = "Textures", ? ?string label = "Random Dots" ]] ( // For convenience, default to object space // You can connect any other coordinate space // as input anyway... point UVW ? ?= transform("object", P) [[ string help = "The position input, defaulting to object space. Connect an UVW shader for other alternatives." ]], float Scale ?= 0.01 [[float min = 0, float max = 25]], float Radius = 0.5 ? ? ?[[ float min=0.0, float max=2.0 ]], int ? RandomOverlap = 0 [[ string widget = "checkBox" ]], float BumpAmount = 1.0 [[float min = 0, float max = 5]], float BumpShape ?= 1.0 [[float min = 0, float max = 25]], output color Col ? ?= 0, output float Fac ? ?= 0, output float Bump ? = 0, output float Dist ? = 0, output float Rnd ? ?= 0 ) { point pnt = UVW / Scale; float pri = -1; ?? // Standard method for randomization: ? // Go through a 3x3x3 grid that we offset ? for (float x = -1; x <= 1; x++) { ? ? for (float y = -1; y <= 1; y++) { for(float z = -1; z <= 1; z++) { // Point that sources all our randomization // We run these through cell noises to get // random values // MAXX-44914 fix: Adds the 0.001 offset and floor() point rndpoint = floor(pnt) + point(x, y, z) + 0.001; // Compute a center? point dotcenter = rndpoint + noise("cell", rndpoint, 1); ? ? ?? float dist ? ? ?= distance(dotcenter, pnt); // Randomize the priority, all they all look "stacked" in? // the same direction if they overlap float priority = noise("cell", rndpoint, 2); // If within the radius, and priority is higher if (dist < Radius && priority > pri) { pri = priority; Col ? ?= noise("cell", rndpoint, 3); Dist ? = dist / Radius; Bump ? = pow(sin((1.0 - Dist) * 1.58), BumpShape) * BumpAmount; Fac ? ?= 1.0; Rnd ? ?= priority; // If we exit early, shader is more efficient, // but any "overlap" becomes completely sorted? // in an X/Y/Z order and looks fake. if (!RandomOverlap) return; } } } } }
然后把默認(rèn)材質(zhì)節(jié)點(diǎn)復(fù)制一份,然后再創(chuàng)建一個(gè)新的OSLShader節(jié)點(diǎn),把我們的代碼復(fù)制進(jìn)去,進(jìn)行編譯。
然后我們?cè)谶m當(dāng)?shù)倪M(jìn)行調(diào)整,我們就得到了一個(gè)如下圖的效果
這個(gè)時(shí)候,我們可以為其添加一個(gè)漸變,讓他變成黑白的,我們就可以作為bump貼圖來(lái)使用。
然后我們還可以給他一個(gè)顏色校正,這樣我們就可以改變顏色(當(dāng)然你也可以用漸變來(lái)改變他的顏色也是可以的)
現(xiàn)在我們把這兩個(gè)材質(zhì)進(jìn)行一個(gè)合并,我們這里使用材質(zhì)混合節(jié)點(diǎn)。
然后把我們最開始的顏色成給到基礎(chǔ)色的圖層上,然后把點(diǎn)點(diǎn)這個(gè)材質(zhì)給到層1.
現(xiàn)在我們可以看到是沒啥效果的,因?yàn)樗枰覀冏鲆粋€(gè)蒙版,就像PS的蒙版一樣。這里我們把點(diǎn)點(diǎn)材質(zhì)的那個(gè)bump拿來(lái)作為蒙版使用。
現(xiàn)在這個(gè)效果就有完成了。最后就是渲染輸出了。
給大家看看我的設(shè)置,不要問為什么,因?yàn)槲蚁矚g這樣設(shè)置,你也可以設(shè)置的小點(diǎn)。這樣更節(jié)約時(shí)間。本次教程到這里就結(jié)束了,如果對(duì)你有幫助,別忘了給我點(diǎn)贊哦!有什么問題歡迎留言。
Powered by Froala Editor
微信公眾號(hào):米夏小雨
密碼登錄
大牛,別默默的看了,快登錄幫我點(diǎn)評(píng)一下吧!:)
登錄 立即注冊(cè)