[Unity] 運行時程序化生成 技術(shù)概覽及學(xué)習(xí)資料

| 引言
?????? 前幾天投稿的一份技術(shù)玩具分享視頻收到了很多朋友的鼓勵,也一并收到了很多想對此進行學(xué)習(xí)的私信/留言,所以將自己對Oskar St?lberg作品的學(xué)習(xí)歷程進行分享.
???????? 此篇為整理各種技術(shù)的相關(guān)學(xué)習(xí)資料的專欄,作為各項技術(shù)的學(xué)習(xí)資料索引,由于篇幅較多并且各項技術(shù)都有對應(yīng)深度,后續(xù)根據(jù)反饋的形式進行更細致的說明.

| 開源工程?
??? https://github.com/striter/Unity3D-ToolChain_StriteR
??? 此工程為作者學(xué)習(xí)積累Unity制作游戲相關(guān)知識的積累庫,保持技術(shù)迭代,開源,并作為技術(shù)需求的前置實驗場所,大多數(shù)該工程用到的技術(shù)及細節(jié)都有可以運行的[前置場景/腳本],可作為學(xué)習(xí)工程使用,即.scene結(jié)尾的標題都可以在工程內(nèi)找到對應(yīng)文件.
??? 于視頻展示的場景是ThePlanet.scene

| 前置
此項為Oskar St?lberg在實現(xiàn)各種景致優(yōu)美的程序化生成游戲后參與的各項Talk,將其獨立游戲生涯制作的兩款游戲技術(shù)細節(jié)鋪開.


以及一個中文版的Townscaper技術(shù)全面概覽
https://zhuanlan.zhihu.com/p/280013345

| 核心算法 - MarchingCube

以下兩個場景都可于開源工程 使用關(guān)鍵詞搜索檢索到對應(yīng)的場景代碼.
推薦先學(xué)習(xí)2D版本.
MarchingSquare.scene

MarchingCube.scene

推薦視頻:
https://www.youtube.com/watch?v=M3iI2l0ltbE? (一個使用MarchingCube生成地形的案例)

| 網(wǎng)格 顯示幾何
幾何網(wǎng)格(球形):

https://catlikecoding.com/unity/tutorials/procedural-meshes/

| 波函數(shù)坍塌 WaveFunctionCollapse

2D版本的波函數(shù)坍塌 WaveFunctionCollapse.scene

推薦視頻(以及熟肉版本): https://www.youtube.com/watch?v=2SuvO4Gi7uY

推薦文章:
https://cowlevel.net/article/1964746
https://www.gameres.com/835537.html
關(guān)于WFC算法在該工程的結(jié)合比較復(fù)雜,后續(xù)具體單獨開篇細講.
| 生物集群 BOIDS

??????? 通過[聚集,分離,同向]三個屬性影響[速度]以模擬集群生物的行為,需要進行狀態(tài)混搭進行更多的行為控制.

https://zhuanlan.zhihu.com/p/376047988

| 渲染

水體渲染:
各種文章效果拼湊而來.
基礎(chǔ)顏色及透明度由深度決定.
高光是由法線流動疊加出的效果
Grestner wave用于水波效果.
反射用的是屏幕空間平面反射的改版(將平面改成了圓)
再加一點深度插值決定的浮沫(Foam)
大氣渲染:
https://www.youtube.com/watch?v=DxfEbulyFcY&list=PLFt_AvWsXl0ehjAfLFsp1PGaatzAwo0uK&index=4

| 拓展閱讀
類Townscaper的不規(guī)則平面網(wǎng)格構(gòu)建:
六邊形網(wǎng)格前置學(xué)習(xí)
https://www.redblobgames.com/grids/hexagons/
https://observablehq.com/@sanderevers/hexmod-representation

通過對生成的六邊形網(wǎng)格進行 切分/合并/細分/平滑等操作形成最終的平面網(wǎng)格
https://andersource.dev/2020/11/06/organic-grid.html
https://www.kchapelier.com/hexagrid-relaxing/

一些推薦的技術(shù)博客:
https://www.redblobgames.com/ (數(shù)學(xué),算法基礎(chǔ)作者)
https://iquilezles.org/articles/ (渲染,算法,ShaderToy 大佬)
https://catlikecoding.com/unity/tutorials/ (教程,算法,渲染,以及一些很新的東西)