建程序化生成工具 artcraft:紋理圖案設(shè)計(jì)思路與配置實(shí)踐)
做獨(dú)立創(chuàng)作的人應(yīng)該都有過這種體驗(yàn)靈感來得快但把它變成一件看得見、摸得著的作品中間隔著一條特別長的路。尤其是圖案、紋理、像素畫這類偏視覺的藝術(shù)工藝大量時(shí)間不是花在“畫”上而是耗在“改”上改配色、調(diào)密度、換排列、重導(dǎo)出改著改著就累了。我做了一套小工具起名叫“artcraft”把“藝術(shù)”和“工藝”兩件事合并到一起專門用來解決這類重復(fù)勞動(dòng)問題。它能用一套規(guī)則和參數(shù)快速生成風(fēng)格統(tǒng)一但每張都不一樣的圖案作品適合獨(dú)立創(chuàng)作者、插畫師、像素畫愛好者以及所有想用程序化方式做視覺實(shí)驗(yàn)的人。這篇文章把我自己的設(shè)計(jì)思路、配置方法、踩坑經(jīng)驗(yàn)都整理出來分享給需要做同類項(xiàng)目的朋友。“artcraft”更像一個(gè)“數(shù)字手藝作坊”它不要求你懂復(fù)雜的數(shù)學(xué)或圖形學(xué)理論只需要你把想法拆成“鋪什么底、擺什么塊、上什么色、加什么噪點(diǎn)”幾個(gè)步驟剩下的交給規(guī)則引擎去算。最開始我只需要一百多行配置就能做出可用的磚墻紋理、像素地貌、幾何花磚后來慢慢加功能變成了一整套支持自定義規(guī)則的生成工具。下面從設(shè)計(jì)到實(shí)操一步步拆開講。1. 整體設(shè)計(jì)與思路拆解1.1 “artcraft”到底解決什么問題做視覺類創(chuàng)作時(shí)我經(jīng)常卡在中間階段整體感覺已經(jīng)有了但細(xì)節(jié)怎么排都別扭。比如做一套復(fù)古風(fēng)格的瓷磚紋理手工畫幾十塊能畫得出來可一旦客戶說“風(fēng)格挺好的但需要提供兩百塊顏色不完全一樣的”的時(shí)候人就崩了。又比如做像素風(fēng)格的地圖素材主體建筑畫好了地面、草叢、石板路這些重復(fù)性高的東西畫起來枯燥而且很難保證每塊看起來都“同一風(fēng)格但不同形態(tài)”?!癮rtcraft”要解決的核心問題就是“重復(fù)中的變化”。它把創(chuàng)意過程拆成兩部分一部分是人不可替代的審美判斷比如配色方向、圖塊的排列邏輯、整體氛圍另一部分是電腦擅長的機(jī)械勞動(dòng)比如把圖案隨機(jī)偏移、改變光照方向、按權(quán)重混合多種底色、批量生成幾十個(gè)變體。工具要做的就是把后一部分自動(dòng)化同時(shí)保證前一部分的控制權(quán)始終留在創(chuàng)作者手里。技術(shù)方向上它本質(zhì)上是一個(gè)“參數(shù)化圖塊生成器”。傳統(tǒng)做法是先畫好整套素材再在場景里隨機(jī)擺放但這會(huì)造成重復(fù)感很明顯因?yàn)橥粋€(gè)磚塊素材被反復(fù)用人一眼就能看出來?!癮rtcraft”的做法是反過來先定義“如何生成一塊磚”的規(guī)則再讓規(guī)則引擎把磚塊一塊一塊地“算”出來。每塊磚的裂縫位置、顏色深淺、邊緣磨損程度都有微小差異拼在一起就是一面有呼吸感的墻。我自己的體驗(yàn)是這個(gè)思路最順手的地方在于改稿。以前改一個(gè)紋理要重新畫一整張圖現(xiàn)在只需要改一個(gè)參數(shù)比如把噪聲強(qiáng)度從0.3改成0.7然后重新導(dǎo)出基本一分鐘內(nèi)就能看到全新的效果。這對(duì)反復(fù)試錯(cuò)階段的幫助很大也讓我更愿意大膽嘗試不同風(fēng)格反正改回成本很低。1.2 核心設(shè)計(jì)思路規(guī)則優(yōu)先隨機(jī)性受控“artcraft”的底層邏輯只有一句話一切隨機(jī)都必須在規(guī)則框架內(nèi)發(fā)生。純隨機(jī)生成的圖案看一會(huì)兒就會(huì)膩因?yàn)槿狈χ刃蚋屑円?guī)則重復(fù)又會(huì)死板因?yàn)槿鄙僮兓?。好的視覺作品往往一邊有清晰的骨架一邊在血肉部分保留足夠豐富的變化。實(shí)現(xiàn)起來我用的是“層疊規(guī)則”方式。想象一張畫布分成很多層底層是背景色上面是圖塊網(wǎng)格再上面是紋理陰影最上面是噪點(diǎn)和瑕疵。每一層都有對(duì)應(yīng)的規(guī)則文件規(guī)則里寫清楚這層要做什么、強(qiáng)度多少、和上一層怎么互動(dòng)。執(zhí)行時(shí)按順序逐層生成最后合成一張完整的圖。舉個(gè)例子生成一個(gè)磚墻紋理時(shí)底層規(guī)則定義“墻面的基礎(chǔ)色是土黃色”圖塊規(guī)則定義“每塊磚是矩形高度約100像素寬度隨機(jī)在80到120之間每隔一定行數(shù)偏移半塊磚的位置”紋理規(guī)則定義“磚塊邊緣做深色描邊描邊的寬度隨機(jī)波動(dòng)”噪點(diǎn)規(guī)則定義“疊加一層輕微紋理讓墻面有一點(diǎn)歷史感”。這些規(guī)則合在一起單看任何一條都很簡單但組合起來就形成了足夠豐富的結(jié)果。為什么不用純代碼硬寫因?yàn)橐?guī)則需要頻繁調(diào)整。如果把邏輯全寫在一個(gè)大文件里改一處容易影響另一處。用聲明式規(guī)則把每個(gè)層面的職責(zé)拆分清楚調(diào)起來就非常痛快哪一層不對(duì)就改哪一層不會(huì)牽連其他部分。1.3 適用場景與技術(shù)選型“artcraft”定位在兩個(gè)方向上都表現(xiàn)不錯(cuò)。一個(gè)是實(shí)用素材生產(chǎn)比如游戲場景中的地面、墻壁、裝飾圖案做出來直接導(dǎo)出成圖片就能用另一個(gè)是藝術(shù)創(chuàng)作實(shí)驗(yàn)比如把幾張基礎(chǔ)圖塊用不同規(guī)則排列得到一系列“從同一母題演化出來”的作品適合辦展覽或做系列插畫。技術(shù)選型上我用了輕量級(jí)腳本語言做核心引擎配合命令行方式調(diào)用這是因?yàn)樯扇蝿?wù)往往需要在后臺(tái)批量跑GUI反而礙事。數(shù)據(jù)交換格式選擇的是JSON好處是規(guī)則清晰、容易寫、便于版本管理。要是把規(guī)則文件來往Git倉庫里一放每次修改都能看到差異回滾也方便。如果你也在做類似工具選型建議是核心邏輯能抽象到“輸入規(guī)則輸出圖片”這個(gè)層面就夠了不必一上來就用重型框架。先跑通一條最簡單鏈路再逐步加功能會(huì)踏實(shí)很多。2. 核心細(xì)節(jié)解析與實(shí)操要點(diǎn)2.1 關(guān)鍵概念畫布、圖塊、規(guī)則層、渲染器“artcraft”有四個(gè)核心概念串起了整個(gè)生成流程。新手最容易搞混的就是它們各自管什么、先后順序是什么我在這里一次性講清楚。畫布是整個(gè)生成空間的基礎(chǔ)它決定最終輸出圖片的寬和高也決定了圖塊排列的密度范圍。我一般把比例固定成16:9或1:1方便后續(xù)直接使用但工具本身支持任意尺寸。畫布本身不畫任何東西它只是一個(gè)坐標(biāo)系所有規(guī)則層都建立在這個(gè)坐標(biāo)之上。圖塊是基礎(chǔ)構(gòu)成單元可以理解成“最小的視覺零件”。它本身也是個(gè)矩形區(qū)域有自己的寬度、高度、顏色、圓角等屬性。不同圖塊可以拼接成圖案也可以互相疊加。定義圖塊時(shí)要注意“重疊邊距”的設(shè)置兩個(gè)圖塊之間如果不留一點(diǎn)重疊區(qū)域渲染時(shí)可能出現(xiàn)細(xì)小的縫隙這在像素風(fēng)格里尤其明顯。規(guī)則層是“artcraft”的靈魂。每一層有獨(dú)立的規(guī)則組規(guī)則之間的優(yōu)先級(jí)順序由層級(jí)順序決定層級(jí)越靠后越在上面。這有點(diǎn)像Photoshop里的圖層順序。我常用的做法是第1層鋪底色第2層放主體圖塊第3層加陰影高光第4層灑噪點(diǎn)最后再加一個(gè)調(diào)色層統(tǒng)一下整體色調(diào)。渲染器是最終完成合成的部件。它讀取所有規(guī)則層的描述按照畫布坐標(biāo)逐像素計(jì)算顏色值輸出成PNG。渲染器本身不需要太多配置但有幾個(gè)參數(shù)需要注意比如采樣次數(shù)也就是抗鋸齒的強(qiáng)度默認(rèn)中等就夠用對(duì)像素風(fēng)格來說渲染器還要支持“最近鄰”縮放模式不然畫出來的像素邊緣會(huì)模糊掉就沒有那味兒了。2.2 風(fēng)格化配置的四個(gè)關(guān)鍵維度很多朋友問我為什么同樣一套規(guī)則別人調(diào)出來的圖好看自己調(diào)出來的圖就平平無奇關(guān)鍵在于四個(gè)維度的配合我只說這四個(gè)。調(diào)色板決定整體氛圍。調(diào)色板不是簡單選幾個(gè)顏色它還得定義這些顏色的使用權(quán)重。例如磚墻紋理中“主色”權(quán)重占70%“陰影色”占20%“高光色”占10%出來的效果就會(huì)很統(tǒng)一。權(quán)重配得不好畫面就會(huì)顯得雜亂沒有主次。我建議先定主色再選陰影色最后加高光色不要一開始就把所有好看的顏色都堆進(jìn)去。紋理強(qiáng)度控制圖塊的“做舊”程度。這個(gè)參數(shù)本質(zhì)上是把噪聲層的透明度做映射數(shù)值低的時(shí)候表面干凈光滑數(shù)值高的時(shí)候表面粗糙斑駁。我在做復(fù)古風(fēng)格時(shí)會(huì)把紋理強(qiáng)度調(diào)到0.6以上做現(xiàn)代簡約風(fēng)格時(shí)調(diào)到0.2左右。新手可以先從0.3起步熟悉效果后再根據(jù)風(fēng)格加減。結(jié)構(gòu)密度說的是單位面積內(nèi)圖塊的數(shù)量它直接影響畫面的疏密感。拿迷宮地面舉例密度低地面就像大型石板顯得空曠適合做戶外廣場密度高地面就像小碎石有緊張感適合做洞穴內(nèi)部。調(diào)整密度時(shí)要注意畫布大小不變時(shí)密度升高意味著每個(gè)圖塊變小圖塊上的紋理細(xì)節(jié)可能看不清需要同步降低紋理的復(fù)雜度。隨機(jī)種子是結(jié)果重現(xiàn)的鑰匙。同一個(gè)規(guī)則文件只要種子不變生成出來的圖就完全一樣。這一點(diǎn)在做系列化創(chuàng)作時(shí)非常有用你可以先把種子確定下來鎖定一套滿意效果再在同一批種子里挑選角度或微調(diào)其他參數(shù)保證風(fēng)格連續(xù)。2.3 規(guī)則文件的結(jié)構(gòu)設(shè)計(jì)與復(fù)用規(guī)則文件是“artcraft”的心臟。我的規(guī)則文件通常按“命名空間參數(shù)塊”來寫。命名空間用來給規(guī)則分類例如“wall.rules.brick”“floor.rules.stone”防止不同主題的規(guī)則互相污染。每個(gè)規(guī)則塊內(nèi)部再分成“輸入”“輸出”“流程”三段讀起來一目了然。復(fù)用方面我習(xí)慣把常用的曲線函數(shù)抽出來單獨(dú)保存。比如“easeInOut”這類緩動(dòng)函數(shù)在控制陰影過渡時(shí)很常用還有“noise”類的噪聲函數(shù)生成紋理時(shí)離不開。抽成公共模塊之后新項(xiàng)目只需要引用不需要重新發(fā)明省了很多時(shí)間。寫規(guī)則文件還要注意命名規(guī)范。每個(gè)參數(shù)最好用“模塊_作用_屬性”的格式比如“brick_edge_width”這樣在幾千行配置里檢索時(shí)不會(huì)迷失。另外凡是涉及顏色或坐標(biāo)的配置盡量集中放在文件頭部方便全局調(diào)整。3. 實(shí)操過程與核心環(huán)節(jié)實(shí)現(xiàn)3.1 環(huán)境準(zhǔn)備與初始化以我自己的項(xiàng)目為例“artcraft”基于Node.js開發(fā)依賴項(xiàng)很少核心只有命令行界面和一個(gè)渲染庫。準(zhǔn)備工作如下。首先安裝Node.js環(huán)境然后把“artcraft”倉庫下載到本地。項(xiàng)目目錄大致長這樣rules/存放所有規(guī)則文件output/存放生成結(jié)果templates/存放內(nèi)置模板artcraft.js是入口腳本初始化規(guī)則文件時(shí)我會(huì)先運(yùn)行內(nèi)置命令生成一份基礎(chǔ)模板。模板里已經(jīng)寫好了畫布參數(shù)、調(diào)色板占位符、一個(gè)最簡單的規(guī)則層可以直接在這個(gè)基礎(chǔ)上改造。提示一開始不要自己從零寫規(guī)則文件先拿內(nèi)置模板跑一遍看清楚生成效果后再逐步修改。先改一個(gè)參數(shù)、再看效果、形成感覺比一次性寫一百行配置然后逐個(gè)排查要高效得多。3.2 第一次生成用內(nèi)置模板跑通流程跑通流程這一步非常重要它能幫你驗(yàn)證環(huán)境有沒有裝好、渲染管線通不通。我自己的命令是node artcraft.js generate --template default --output first_run.png順利的話幾秒后就會(huì)在output/目錄下看到first_run.png。打開看一下應(yīng)該是一張帶有基礎(chǔ)圖案的圖片。如果這一步就報(bào)錯(cuò)優(yōu)先級(jí)最高的排查項(xiàng)是依賴庫版本因?yàn)椤癮rtcraft”依賴的圖像編碼庫更新很快接口變化會(huì)導(dǎo)致原有寫法失效這時(shí)候查看報(bào)錯(cuò)信息里提示的庫名更新或降級(jí)到文檔對(duì)應(yīng)的版本即可。文件成功生成之后我通常會(huì)做一個(gè)快速驗(yàn)證把同一條命令再跑一遍然后把兩張圖的MD5值對(duì)比一下。正常情況下MD5不一致是正常的因?yàn)槊總€(gè)種子都隨機(jī)生成但如果你把隨機(jī)種子固定成一個(gè)特定值例如--seed 2024再跑兩次兩次的MD5必須一致。這一步能確認(rèn)隨機(jī)系統(tǒng)的可重現(xiàn)性后面做系列作品時(shí)非常依賴這條特性。3.3 自定義規(guī)則從一個(gè)“磚紋”案例說起跑通內(nèi)置模板后下一步就是改造規(guī)則。我把“磚紋”的規(guī)則拆解給你看這是最簡單的入門案例。先看畫布定義{ canvas: { width: 1920, height: 1080, background: #e8d8c4 } }然后是調(diào)色板{ palette: { primary: #b57a5a, shadow: #7a4334, highlight: #e09070, grout: #d0b8a0 } }接下來定義圖塊。磚紋的特點(diǎn)是磚塊本身有大小差異但整體排列保持規(guī)律。我定義磚塊寬度在80到120像素之間隨機(jī)浮動(dòng)高度固定為48像素每隔一行橫向偏移半塊磚的位置{ tiles: { type: brick, width_min: 80, width_max: 120, height: 48, offset_even_row: 0, offset_odd_row: 40 } }磚塊處理好之后加一個(gè)陰影層來模擬立體感。陰影的方向固定為左上長度10像素透明度0.3{ shadow: { angle: 135, distance: 10, opacity: 0.3 } }最后加一層噪聲讓墻面有顆粒感{ noise: { intensity: 0.2, seed: 2024 } }保存好規(guī)則跑一次生成你就能得到一面帶有隨機(jī)磚縫、輕微磨損、統(tǒng)一配色的磚墻。從這里開始試著把noise.intensity改成0.7畫風(fēng)立刻會(huì)從“新磚墻”變成“老磚墻”這就是參數(shù)化創(chuàng)作的樂趣。3.4 批量生成與差異化篩選單張圖搞定后批量生成是“artcraft”真正發(fā)力的時(shí)候。批量生成的核心邏輯是固定一套規(guī)則循環(huán)改變隨機(jī)種子一次跑出幾十個(gè)候選方案再人工篩選。我用的是內(nèi)置的批量模式node artcraft.js batch --rules wall_brick.json --count 20 --outdir output/brick_variations跑完之后output/brick_variations里會(huì)多出20張磚墻圖。這時(shí)候不要直接看縮略圖建議用支持網(wǎng)格視圖的圖像瀏覽器批量預(yù)覽一眼掃過去把感覺不錯(cuò)的挑出來。篩選標(biāo)準(zhǔn)我的經(jīng)驗(yàn)是三個(gè)關(guān)鍵詞結(jié)構(gòu)清晰、色彩平衡、細(xì)節(jié)驚喜。結(jié)構(gòu)清晰指一眼能看出圖案的規(guī)律色彩平衡指沒有某一塊顏色特別跳脫細(xì)節(jié)驚喜指在某些磚塊上出現(xiàn)了預(yù)期之外的微小變化比如一道裂紋或者一片色斑這類細(xì)節(jié)是手工繪制很難批量復(fù)制出來的。挑好候選圖之后還需要做一步把中選的種子號(hào)記錄下來。我通常會(huì)在文件名中直接帶上種子號(hào)例如brick_variations_v3_seed2024.png方便日后追溯。你永遠(yuǎn)無法預(yù)判哪批圖會(huì)被客戶或自己看中做好命名管理會(huì)讓回頭找圖輕松很多。3.5 高級(jí)技巧規(guī)則疊加與沖突規(guī)避當(dāng)你熟悉單層規(guī)則后可以做規(guī)則疊加也就是把不同主題的規(guī)則堆在一起形成復(fù)雜效果。舉個(gè)例子把磚紋規(guī)則和藤蔓噪聲規(guī)則疊加生成的墻面上會(huì)自然出現(xiàn)爬山虎一樣的斑駁痕跡效果非常驚艷。但規(guī)則疊加最大的坑是沖突。兩層規(guī)則如果都試圖控制同一個(gè)位置的像素顏色最終效果會(huì)很難看表現(xiàn)為邊緣撕裂或顏色像被“掰開”一樣。我的應(yīng)對(duì)方式是給每個(gè)規(guī)則層設(shè)置一個(gè)“混合權(quán)重”權(quán)重高的層擁有優(yōu)先發(fā)言權(quán)。同時(shí)兩層的圖塊尺寸不要差異過大盡量在相近尺度下疊加視覺融合度更高。如果疊加后效果雜亂不要急著刪層優(yōu)先檢查各層的透明度設(shè)置。把透明度調(diào)低到0.3以下往往就能救回來。疊加的最終目標(biāo)不是讓每個(gè)規(guī)則都醒目而是讓它們像合唱一樣既有層次感又互相配合。4. 常見問題與排查技巧實(shí)錄4.1 生成結(jié)果“糊成一團(tuán)”這是新手最多遇到的問題。規(guī)則文件沒報(bào)錯(cuò)生成也完成了但打開圖片一看什么形狀都看不出來整個(gè)畫面就像一團(tuán)臟抹布。我排查這類問題時(shí)按順序檢查畫布尺寸是不是太小圖塊尺寸是不是太大例如1920寬的畫布上放寬度20的磚塊磚塊細(xì)節(jié)會(huì)被壓縮到看不清陰影的透明度是不是太高陰影opacity超過0.6時(shí)圖塊輪廓會(huì)互相粘連噪聲強(qiáng)度是不是太高intensity超過0.8時(shí)底層的結(jié)構(gòu)信號(hào)會(huì)被噪聲蓋住調(diào)色板顏色之間對(duì)比度是不是太低相近色太多會(huì)讓層次感消失。其中概率最大的原因是噪聲強(qiáng)度過高。噪聲本來是用來增加質(zhì)感的但一旦蓋過主體結(jié)構(gòu)整個(gè)畫面就會(huì)“崩掉”。這時(shí)候先恢復(fù)結(jié)構(gòu)清晰度再慢慢調(diào)回噪聲不要同時(shí)調(diào)多個(gè)參數(shù)否則很難定位問題根源。4.2 規(guī)則不生效明明在規(guī)則文件里寫了某個(gè)參數(shù)但生成結(jié)果一點(diǎn)變化都沒有。這個(gè)問題的根源通常不是規(guī)則邏輯本身而是規(guī)則之間的覆蓋順序?!癮rtcraft”的規(guī)則是“按層疊加”的后定義的層會(huì)覆蓋先定義的層。如果你在底層設(shè)置了“磚塊顏色為紅色”又在高層設(shè)置了一個(gè)幾乎透明的“顏色濾鏡”理論上濾鏡會(huì)對(duì)整體色調(diào)產(chǎn)生輕微影響但如果濾鏡的透明度被設(shè)成0那它就不會(huì)產(chǎn)生任何可見變化。很多人改了半天是因?yàn)楦腻e(cuò)了層改的是底層參數(shù)卻被高層參數(shù)死死蓋住。我的檢查方法是把規(guī)則文件中所有opacity參數(shù)臨時(shí)改成0然后一層一層地恢復(fù)。哪一層恢復(fù)后畫面開始變化哪一層就是影響結(jié)果的關(guān)鍵層。這個(gè)方法雖然笨但在復(fù)雜項(xiàng)目里最有效。還有一個(gè)小坑是參數(shù)名拼寫錯(cuò)誤。JSON配置不會(huì)對(duì)拼寫做嚴(yán)格校驗(yàn)寫錯(cuò)了程序也不報(bào)錯(cuò)只是靜默忽略。我現(xiàn)在每次修改規(guī)則后都會(huì)用代碼編輯器的“搜索全部引用”功能確認(rèn)參數(shù)名在正確的位置被使用養(yǎng)成這個(gè)習(xí)慣后踩到的坑少了一大半。4.3 導(dǎo)出圖片后顏色對(duì)不上生成出來的PNG用看圖軟件打開顏色和我在規(guī)則里設(shè)的色值偏差很大。這問題不在“artcraft”而在色彩空間的解釋方式。大部分圖像編輯軟件默認(rèn)用“sRGB”模式解釋顏色但某些渲染庫在輸出時(shí)可能默認(rèn)使用“線性色彩空間”或者嵌入了ICC色彩配置文件。如果看圖軟件不支持這種色彩配置顯示出來的顏色就會(huì)偏暗或偏亮。解決方法是在導(dǎo)出配置中強(qiáng)制指定色彩空間為“sRGB”并剔除ICC配置信息讓圖片以最通用的方式保存。如果對(duì)顏色精度要求極高比如要做印刷品我建議導(dǎo)出后先用圖片查看器驗(yàn)證一遍再在Photoshop里校色。不要偷懶依賴工具默認(rèn)設(shè)置色彩管理永遠(yuǎn)是可視化創(chuàng)作里最不值得省時(shí)間的環(huán)節(jié)。4.4 性能太慢批量生成跑不動(dòng)生成一張圖只要幾秒批量生成50張圖就變成十幾分鐘性能瓶頸多半出現(xiàn)在高分辨率和高采樣數(shù)上。優(yōu)化手段按見效速度排序降低畫布分辨率生成到最終大小的一半確認(rèn)效果后再全尺寸生成降低抗鋸齒采樣次數(shù)從8次降到4次肉眼幾乎分辨不出差異但性能提升明顯對(duì)噪聲層使用預(yù)計(jì)算緩存因?yàn)樵肼暿浅绦蚧芍杏?jì)算量最大的部分批量模式開啟并行渲染讓多核處理器同時(shí)處理多張圖時(shí)間能縮短一半以上。如果做了這些還是很慢就要回到設(shè)計(jì)層面思考是不是規(guī)則本身寫得太復(fù)雜了每層都用高密度噪聲疊加再快的機(jī)器也扛不住。我個(gè)人的習(xí)慣是先用低分辨率、低參數(shù)快速迭代找方向確定風(fēng)格后再全分辨率渲染最終版本。這樣既保證效率又不犧牲成品質(zhì)量。最后再分享一點(diǎn)經(jīng)驗(yàn)用“artcraft”做了幾十個(gè)項(xiàng)目之后我最深的體會(huì)是程序化生成工具不是用來替代創(chuàng)意的它是用來把創(chuàng)意里重復(fù)勞動(dòng)力的部分減到最低讓你把時(shí)間和精力留給真正需要審美判斷的地方。好的工具應(yīng)該讓創(chuàng)作者感覺自己更有能力而不是陷入更復(fù)雜的設(shè)置。如果你也想做類似的創(chuàng)作輔助工具建議從一個(gè)特別小的點(diǎn)開始一個(gè)紋理、一組圖塊、一套配色先做出來真的用起來再一步步擴(kuò)展這比一開始就追求大而全要靠譜得多。