學(xué)習(xí)路徑)
做渲染相關(guān)工作這些年陸陸續(xù)續(xù)收了不下五十本相關(guān)的書真正從頭翻到尾的卻沒幾本。這次給自己定了個小目標(biāo)按照“實時渲染、離線渲染、引擎源碼、工程實踐”四個方向把值得讀的書和它們的目錄結(jié)構(gòu)重新整理了一遍順便標(biāo)注了每一章適合什么人、讀到什么程度可以停。這份目錄會持續(xù)更新今天先發(fā)第一版標(biāo)題就叫“渲染書籍目錄匯總”。系統(tǒng)性學(xué)渲染的人很容易在“買書—翻書—棄書”的循環(huán)里打轉(zhuǎn)。我最早學(xué)實時渲染時隨手買了一本《Real-Time Rendering》硬啃到第二章就卡住了因為里面默認你懂光柵化、懂相機模型、懂紋素和像素的區(qū)別。后來才明白問題不是書不好而是缺少一張地圖。這份目錄就是想當(dāng)那張地圖它告訴你先讀哪本、哪幾章必須精讀、哪幾章查手冊就行以及遇到“畫面閃爍”“內(nèi)存不足”“渲染被攔截”這類實際考題時該往哪本書的哪個章節(jié)翻。這份匯總適合三類人剛?cè)胄械膱D形程序員、想深入渲染引擎的工程師以及長期用Blender、3ds Max、Unreal、Unity做項目但想補理論的美術(shù)或技術(shù)美術(shù)。如果你只是偶爾渲染一張效果圖建議直接看后面DCC工具工作流的部分不要硬啃PBRT如果你是做引擎源碼的引擎源碼向書單會比單純背API更有用??傊@篇東西不會教你某個按鈕具體怎么點但它能幫你把“渲染”這個超大的概念拆成可以下手的學(xué)習(xí)路徑。文末我放了一張“熱詞對照表”把最近頻繁出現(xiàn)的渲染技術(shù)關(guān)鍵詞和目錄里的書對應(yīng)起來方便你按圖索驥。以后這張表也會持續(xù)更新。1. 為什么會有這份渲染書籍目錄1.1 學(xué)習(xí)渲染最大的門檻不是智商是信息整合渲染這行有個特點理論分散在數(shù)學(xué)、物理、圖形API、硬件架構(gòu)、DCC工具和前端框架里單一本書根本覆蓋不了。舉個我自己的例子去年幫人調(diào)一個WebGL項目的渲染掉幀問題最終原因既不是shader寫錯也不是頂點數(shù)太多而是瀏覽器在主線程解碼了一張大尺寸的base64圖片。你看這類問題在《OpenGL Programming Guide》里找不到在《Real-Time Rendering》里也找不到但它確實屬于“渲染”的范疇。所以學(xué)渲染的人最大的痛苦不是學(xué)不會某個公式而是不知道“我現(xiàn)在遇到的問題該去哪個知識池里找答案”。這份目錄的核心價值就是主動做一次信息整合。所有涉及渲染的關(guān)鍵領(lǐng)域——幾何處理、材質(zhì)光照、光柵化、光追、圖像后處理、GPU架構(gòu)、實時引擎、DCC渲染器——我都嘗試放進一個可回溯的框架里。當(dāng)你遇到問題先對著目錄定位再決定精讀哪本書的哪一章效率會高很多。1.2 這份目錄的四個分類邏輯渲染通常分成兩個大分支實時渲染和離線渲染。這也是工業(yè)界最常見的分法。實時渲染追求的是每幀16毫秒內(nèi)出結(jié)果游戲、VR、編輯器預(yù)覽、WebGL都算這類離線渲染允許幾分鐘甚至幾小時渲染一張圖電影級視效、產(chǎn)品廣告圖、V-Ray那類效果圖工作流都屬于這個范疇。但光分這兩個還不夠因為如今大多數(shù)人不是直接和底層API打交道而是在Unity、Unreal、Blender、瀏覽器里渲染。所以我在實時和離線之外又加了兩個橫向分類引擎源碼與圖形API以及DCC與前端渲染實踐。前者面向想做“渲染器本身”的人重點是真機性能、API抽象和源碼閱讀后者面向“用渲染器干活”的人重點是腳本、參數(shù)、合批、緩存這類工程問題。四個方向不是互相隔離比如你要調(diào)UE5的渲染內(nèi)存不足既要知道實時渲染管線的大局也要知道引擎的流送Streaming機制。目錄的分類只是為了讓你先找到入口進去之后路是通的。2. 實時渲染路線先啃硬骨頭還是先做案例2.1 Real-Time Rendering 的目錄結(jié)構(gòu)與閱讀策略只要聊實時渲染繞不開《Real-Time Rendering》第四版作者是Tomas Akenine-M?ller等人。這本書與其說是一本書不如說是一份帶索引的領(lǐng)域地圖。它的目錄大概包括幾何與變換、光柵化、紋理、陰影、物理基礎(chǔ)著色、帶材質(zhì)的顯式光照、全局光照近似、體積渲染與光線投射、混合渲染、曲線曲面等。我建議第一次讀的人直接從第5章“紋理”讀到第9章“物理基礎(chǔ)著色”這部分是實時渲染在現(xiàn)代引擎里的地基。至于第20章以后的體積渲染、光線投射以及第24章左右的混合渲染前幾年可以跳讀但如果你是想追“volumetric ray marching”這種熱詞那就必須回頭精讀。我自己用的方法是先讀第5到第10章打底然后去UE5里把“Nanite/Lumen/Virtual Shadow Maps”的文檔打開對照書里的光柵化、層次結(jié)構(gòu)、陰影映射概念看效果比單純啃書好得多。遇到“UE5渲染內(nèi)存不足”這類問題也是先看書中紋理流送、紋理池相關(guān)章節(jié)再回引擎里調(diào)參數(shù)。2.2 從GPU Gems到GPU Pro案例書怎么讀學(xué)術(shù)大書讀起來累案例書是很好的調(diào)劑。GPU Gems 1到3、GPU Pro系列到GPU Zen這些書每章都是獨立的、發(fā)表在會議或論壇上的實戰(zhàn)案例主題覆蓋粒子、水體、毛發(fā)、體積云、抗鋸齒、GPU驅(qū)動優(yōu)化等。它們不像教科書有嚴(yán)格的邏輯順序而是“菜譜”式結(jié)構(gòu)你遇到一個效果直接翻目錄找到對應(yīng)菜譜按步驟做。我對這類書的建議很明確不要通讀放在案頭當(dāng)字典。比如你要做體積云就先翻GPU Pro里“Volumetric Cloud Rendering”那一章你想了解移動端帶寬優(yōu)化就找Imagination和ARM在GPU Gems里寫的那幾篇。我自己好幾次在項目里需要快速實現(xiàn)一個效果都是從這些書里抄一個能跑的shader再逐步優(yōu)化。不過要留意這些書的案例API版本普遍偏老核心思想基本不過時但編譯環(huán)境和接口得自己更新到當(dāng)前版本。2.3 Ray Tracing Gems 與體積光線步進如果想深入了解光線追蹤和“volumetric ray marching”Ray Tracing Gems系列是目前最好的資料之一尤其是第二本Ray Tracing Gems II有大量實時和離線光追的實現(xiàn)細節(jié)。書里專門有章節(jié)講加速結(jié)構(gòu)BVH、光線求交、材質(zhì)模型、降噪還有體積光散射。這些主題和熱詞里的volumetric ray marching直接對應(yīng)——體素化、步進采樣、相位函數(shù)、時間性降噪基本都能在書里找到原理和偽代碼。這里插一句個人經(jīng)驗光追入門千萬別一上來就啃數(shù)學(xué)論文。我試過直接讀“神經(jīng)網(wǎng)絡(luò)輻射場”那類論文一周下來云里霧里。更好的路徑是先讀懂《Ray Tracing in One Weekend》那本小冊子再回來看Ray Tracing Gems你就能理解大家都在優(yōu)化的那部分到底在干什么。渲染書籍目錄里Ray Tracing Gems屬于“需要配合代碼食用”的類型讀完一兩個章節(jié)必須打開開源渲染器比如PBRT、Mitsuba里對應(yīng)的實現(xiàn)對照著看。3. 離線渲染與物理基礎(chǔ)PBRT是繞不開的3.1 Physically Based Rendering 的目錄與實現(xiàn)思路講到離線渲染就一定要說《Physically Based Rendering: From Theory to Implementation》簡稱PBRT。這本書和它的隨書代碼幾乎是一個人“從零寫一個渲染器”的完整記錄。目錄結(jié)構(gòu)非常清晰先從形狀、紋理、材質(zhì)入手再到光傳輸、采樣與積分器最后是場景與相機。如果能把前幾章吃透你對“一個像素的顏色是怎么算出來的”這個問題會比讀十篇博客都扎實得多。閱讀時要盯住“積分器Integrator”這條主線。書中把路徑追蹤、雙向路徑追蹤、光子映射、Metropolis光照等算法統(tǒng)一成不同的積分器實現(xiàn)。理解了這個設(shè)計你再看Blender Cycles的渲染設(shè)置項就不再只是調(diào)參數(shù)而能猜到它背后在跑什么。PBRT的代碼質(zhì)量很高我建議每讀完一章就去跑一下配套的示例場景改改采樣數(shù)、改改最大深度看渲染結(jié)果和性能怎么變。比如你可以寫./pbrt scene.pbrt --spp 4 ./pbrt scene.pbrt --spp 1024對比噪點變化這比任何書里關(guān)于“如何選擇采樣次數(shù)”的段落都更直觀。3.2 數(shù)學(xué)與圖形學(xué)基礎(chǔ)書單如果你發(fā)現(xiàn)自己在讀PBRT或Real-Time Rendering時卡住大概率不是渲染問題而是數(shù)學(xué)基礎(chǔ)問題。對這種情況我推薦兩本《3D Math Primer for Graphics and Game Development》和《Mathematics for 3D Game Programming and Computer Graphics》。前者適合補向量、矩陣、四元數(shù)、變換這些基礎(chǔ)后者進階一些涉及光照方程、透視投影、曲線曲面推導(dǎo)。它們是整個渲染書籍目錄的底層支撐。數(shù)學(xué)書不需要從頭讀到尾。我的經(jīng)驗是“用哪查哪”讀PBRT時看到球坐標(biāo)采樣就翻數(shù)學(xué)書的球諧函數(shù)讀實時渲染書時看到投影矩陣就去翻矩陣變換那章??桃獍阉泄蕉纪埔槐楹苋菀追艞??;A(chǔ)書的意義不是讓你成為數(shù)學(xué)家而是當(dāng)渲染文章里出現(xiàn)符號時你不會因為“看不懂符號”而停下腳步。另外想理解體積光線步進里的相位函數(shù)、消光系數(shù)基礎(chǔ)概率論和微積分是繞不開的建議至少掌握積分和概率密度函數(shù)的基本概念。3.3 如何在PBRT里驗證“渲染異常”很多人聊渲染異常第一時間想到的是引擎崩了、畫面黑了。但如果你把問題放到離線渲染里反而更容易定位根因。我經(jīng)常用PBRT來復(fù)現(xiàn)網(wǎng)上說的“黑面”“明亮噪聲”“亮斑”現(xiàn)象把最大反彈深度改成0畫面會變成一堆黑點把采樣數(shù)降低會出現(xiàn)明顯的高頻噪點法線方向不對會產(chǎn)生大片黑面。書中的調(diào)試技巧是每次只改一個變量觀察渲染圖片的變化再對照理論解釋。這其實也對應(yīng)了實際項目中“頁面渲染異?!钡呐挪樗悸稯penHarmony上畫面渲染異?;蛘邽g覽器里路由跳轉(zhuǎn)后組件不顯示先要區(qū)分是“數(shù)據(jù)沒渲染”還是“渲染了但被遮擋/被CSP攔截”。我踩過的坑是只在JavaScript里console.log忘了看網(wǎng)絡(luò)面板的響應(yīng)頭和瀏覽器控制臺的CSP報錯。后面第5章我會列出具體排查步驟。歸根結(jié)底離線渲染器就是一個可控的實驗場你可以把真實項目中的現(xiàn)象縮小到一個小場景里慢慢拆。4. 引擎源碼方向Unity、Unreal、Impeller與DCC工作流4.1 UE5渲染管線相關(guān)書目與官方文檔怎么配合UE5的Nanite和Lumen基本是實時渲染領(lǐng)域這兩年被問得最多的熱點。嚴(yán)格說目前還沒有一本專門講UE5渲染管線且內(nèi)容跟得上版本的書所以我建議采用“官方文檔經(jīng)典書源碼調(diào)試”三條腿走路。經(jīng)典書仍然用Real-Time Rendering打底理解虛擬陰影貼圖、軟件光柵化、有向距離場再看Epic發(fā)布的Nanite、Lumen白皮書最后在編輯器里把r.ScreenPercentage、r.ShaderComplexity之類的控制臺命令跑一遍。我自己在調(diào)“UE5渲染內(nèi)存不足”時先檢查了r.Streaming.PoolSize和虛擬紋理的池大小再打開材質(zhì)流送可視化發(fā)現(xiàn)是對高質(zhì)量貼圖池設(shè)得太大。書里關(guān)于紋理流送和mipmap的章節(jié)給了我理論基礎(chǔ)否則我只能摸著石頭過河。所以不要指望一本書給出UE5謎題的完整答案目錄要配合第一方文檔和源碼一起用。如果你看白皮書時覺得吃力先回到實時渲染書里補“虛擬紋理”和“軟件光柵化”兩節(jié)馬上會好很多。4.2 Unity UGUI渲染原理與UI合批UI渲染看起來簡單其實是個很典型的“實時渲染”話題Canvas要重建網(wǎng)格計算頂點做合批最后再交到GPU。Unity UGUI的原理關(guān)鍵詞是CanvasRenderer、Mesh合批規(guī)則和圖集。推薦閱讀Unite大會和官方手冊中關(guān)于UI優(yōu)化的文檔再配合Frame Debugger觀察Draw Call合并。如果你想看代碼級實現(xiàn)可以讀Unity引擎源碼里ugui相關(guān)的部分這些其實比很多第三方的“UGUI渲染原理”二手文章都準(zhǔn)確。一個很實際的小例子把vue-pdf-embed的textLayer設(shè)為false確實可以減少渲染的DOM節(jié)點數(shù)量從而減少首屏卡頓但代價是PDF的文字沒法被選中輔助功能也會變差。這個和UGUI的優(yōu)化邏輯類似——你減少合批、減少圖集換來的是內(nèi)存和Draw Call下降但可能需要犧牲動畫靈活性。方向永遠是“理解原理再權(quán)衡取舍”而不是盲目關(guān)功能。4.3 Impeller渲染引擎原理移動端渲染新方向Impeller是Flutter團隊為了替代Skia而開發(fā)的渲染運行時橫空出世的意義在于它不再在每一幀運行時編譯shader而是提前編譯一組高效的著色器用Metal/Vulkan這樣的現(xiàn)代API做后端目標(biāo)就是消除首幀或復(fù)雜頁面上的掉幀。雖然它沒有傳統(tǒng)意義上的“紙書”但它的設(shè)計文檔和源碼非常適合當(dāng)“書”來讀。如果你之前只寫過ShaderLab或HLSL讀Impeller源碼時會遇到很多概念命令緩沖區(qū)、采樣器、并發(fā)命令提交、半像素對齊、紋理綁定。這正好能復(fù)習(xí)你在圖形API方向的知識。我在看Impeller時最大的感受是渲染引擎優(yōu)化的核心其實不是“更快的繪制函數(shù)”而是“少做無用功”提前編譯、復(fù)用資源、減少同步等待。這套思路放到WebGL、Vulkan、iOS小程序渲染機制里都適用。4.4 Blender渲染教程與3ds Max批量渲染腳本對于做產(chǎn)品渲染和影視方向的朋友目錄里單獨開一塊DCC工作流?!禕lender渲染教程》這類資料非常多我不一一列只提醒兩件事Cycles是路徑追蹤適合寫實Eevee是光柵化屏幕空間效果適合預(yù)覽。兩者參數(shù)完全不是一回事。很多新手把Eevee的面板調(diào)到超大渲染崩了還以為是顯卡不行實際是拿光柵化引擎的思路在調(diào)路徑追蹤參數(shù)。3ds Max這邊批量渲染是項目量大時的剛需。網(wǎng)上流傳的“批量渲染v3.0腳本插件”本質(zhì)是MAXScript寫的核心就三件事遍歷場景中的相機列表設(shè)置輸出路徑和幀范圍調(diào)用渲染命令一張張執(zhí)行。最穩(wěn)妥的是直接在命令行用3dsmaxcmd.exe執(zhí)行批處理可以防止多開時互相搶資源。如果想深入建議去看Autodesk官方Scripting手冊比搜來的腳本插件更可靠。產(chǎn)品渲染里V-Ray 6參數(shù)很多關(guān)鍵永遠是材質(zhì)反射和GI算法本身在PBRT里已經(jīng)有底層解釋了。Rhino里的AI建模渲染插件是另一個有意思的方向流程本質(zhì)是Grasshopper接入AI模型生成幾何再交給渲染器最后考驗的還是你對傳統(tǒng)渲染參數(shù)的理解。5. 熱門渲染話題對照表與實操驗證5.1 熱詞、對應(yīng)書籍章節(jié)、實踐建議為了快速對應(yīng)問題我把最近經(jīng)常被問到的一些熱詞和目錄里的書/資料做了一個表格。這張表同樣會繼續(xù)更新新看到的渲染問題只要還沒歸類就會先放進表里。熱詞/問題建議學(xué)習(xí)的書或資料實操建議volumetric ray marching 渲染技術(shù)Ray Tracing Gems II、Real-Time Rendering 體積渲染章節(jié)先用《Ray Tracing in One Weekend》跑通光線步進再改造成體積采樣impeller 渲染引擎原理Flutter官方設(shè)計文檔、Impeller源碼讀“Resource Binding”和“Command Buffer”兩個模塊對照Metal/Vulkan APIUE5渲染管線Epic白皮書、Real-Time Rendering第四版在編輯器跑r.ScreenPercentage、r.ShaderComplexity配合GPU VisualizerUGUI渲染原理Unity官方手冊、Frame Debugger學(xué)會看Draw Call合并、CanvasRebuild耗時vue-pdf-embed 的 textLayer項目文檔、瀏覽器渲染機制默認為true為了選中文字項目卡頓再考慮false同時評估無障礙損失1080p渲染比例圖形學(xué)基礎(chǔ)、相機與視口章節(jié)區(qū)分“輸出分辨率”和“渲染比例”后者多見于游戲和UE5的Screen Percentage3ds Max批量渲染官方MAXScript手冊、批量渲染v3.0腳本推薦用3dsmaxcmd命令行腳本只做人肉預(yù)覽Blender渲染教程Cycles/Eevee官方文檔先分清光柵化與路徑追蹤再調(diào)采樣和降噪iOS微信小程序渲染機制小程序同層渲染文檔uni-datetime-picker放進scroll-view時注意是否原生組件用cover-view或同層方案local WebGL渲染引擎WebGL Programming Guide、Three.js文檔從緩沖、著色器、繪制調(diào)用三步理解WebGL做項目用Three.js查源碼再翻原版APIrouter vue3 路由跳轉(zhuǎn)組件渲染不顯示Vue Router 官方文檔檢查路由出口位置、KeepAlive緩存以及異步組件是否正常resolveUE5渲染內(nèi)存不足實時渲染紋理流送章節(jié)調(diào)r.Streaming.PoolSize查看紋理占用降低虛擬紋理池t113s3的G2D適合做LVGL渲染加速嗎LVGL移植文檔、G2D驅(qū)動手冊先確定G2D是否支持需要的混合格式再寫底層blend回調(diào)不要盲目認為所有2D加速都適合GUI頁面渲染安全策略攔截CSP文檔、瀏覽器DevTools看控制臺NotAllowed訪問提示檢查響應(yīng)頭Content-Security-Policy用frame-ancestors調(diào)整瀏覽器修改post數(shù)據(jù)后重新渲染文件DevTools Network面板、Mock Service Worker在Network里右鍵請求選“Override”本地修改body后重放Pico中4D Gaussian場景渲染3D Gaussian Splatting論文、gsplat/NeRFStudio先跑通基礎(chǔ)3DGS再疊加時間維度注意顯存占用和幀率衡量這個表里的每一項基本都能在目錄里找到對應(yīng)章節(jié)。它更像一個“故障索引”你知道自己遇到了什么再到具體書里找原理和公式就不會被網(wǎng)上眼花繚亂的碎片文章帶偏。5.2 一個實操案例從“渲染異?!钡蕉ㄎ桓蚺e一個我最近的排查例子來演示目錄怎么用。某天有同事反饋“OpenHarmony畫面渲染異?!北憩F(xiàn)是應(yīng)用界面偶發(fā)閃爍。按照目錄思路我先把它歸類到“圖形棧/合成”而不是純shader問題。第一步查合成器相關(guān)日志第二步關(guān)掉硬件合成試軟件繪制第三步再排查GPU驅(qū)動是否版本不匹配。最終發(fā)現(xiàn)是中間層錯誤復(fù)用了緩沖區(qū)的Fence同步信號導(dǎo)致多幀共用同一塊buffer后內(nèi)容錯亂。要是沒有分類目錄我可能會先一頭扎進shader代碼里找半天?,F(xiàn)在我會先在目錄里定位“同步機制”的知識池Vulkan同步的Fence和Semaphore、GPU并行、緩沖區(qū)復(fù)用對應(yīng)到Real-Time Rendering的GPU架構(gòu)章節(jié)再去查引擎提供的調(diào)試能力。這個流程不一定適合照抄但思路是一致的任何渲染異常先判斷是幾何、材質(zhì)、光柵化、合成還是前端節(jié)點的問題再選對應(yīng)的書。5.3 前端渲染里的“書外知識”不得不承認有一類渲染問題在傳統(tǒng)圖形學(xué)書里完全找不到那就是前端框架和瀏覽器本身的渲染機制。比如React/Vue的路由跳轉(zhuǎn)后組件不渲染可能是Key值變了、v-if條件不滿足和GPU一點關(guān)系都沒有。還有前面說的瀏覽器安全策略攔截嚴(yán)格說是CSP內(nèi)容安全策略不是通常意義上的渲染管線但頁面確實“不渲染了”。這部分只能靠官方文檔和源碼。我的目錄里單獨開了一類“Web與小程序渲染”收錄Vue Router、WebGL、PDF、小程序同層渲染的文檔鏈接。我發(fā)現(xiàn)很多從傳統(tǒng)圖形學(xué)轉(zhuǎn)前端的人容易忽略“瀏覽器主線程和渲染線程是分開的”這個事實而很多前端工程師想優(yōu)化WebGL時又容易在找不到gl.drawArrays的調(diào)用時機上卡住。兩撥人對“渲染”的理解是互補的目錄的價值就是讓兩邊都知道對方的底層是什么。6. 常見問題、避坑與持續(xù)更新6.1 新手常問這本書需要全讀嗎“全讀”通常是新手最容易犯的錯其實絕大多數(shù)專業(yè)書不需要全讀。Real-Time Rendering第四版800多頁你讓我全讀我也做不到更沒必要。PBRT超過1200頁如果你不是要寫離線渲染器讀前四分之一就很夠用。GPU Gems系列每本都有幾百頁但每章是獨立的跳著看毫無心理負擔(dān)。真正值得從頭讀到尾的反而是一些入門小冊子比如《Ray Tracing in One Weekend》短到一天能看完卻能把光追主線講清楚。所以我的建議是先定目標(biāo)再定“閱讀深度”。你想看懂UE5的Lumen就圍繞有向距離場、軟件光柵化、屏幕追蹤這3個關(guān)鍵詞找書里的對應(yīng)章節(jié)你想給產(chǎn)品圖調(diào)V-Ray就別花時間讀算法推導(dǎo)直接看目錄里的DCC工作流。買書之前先打開書的目錄你至少要能認出其中30%的術(shù)語否則大概率還不到讀這本書的階段。6.2 我踩過的坑第一個坑是“只讀書不寫代碼”。我有一陣子把Real-Time Rendering讀得很熟面試時被問“陰影圖分辨率和偏置怎么配合”表面上答得出但真正在Unity里調(diào)Shadow Distance時還是手忙腳亂。書上的知識不經(jīng)過渲染器實驗始終是紙面的。所以我后來給目錄里的每本書都附了“配套實驗”哪怕只是打開一個ShaderToy改幾行也比空讀有效。第二個坑是“同時開太多書”。一年前我興致勃勃參加了一個閱讀計劃一次推進PBRT、GPU Gems、Vulkan Guide三本書結(jié)果每本都停留在前兩章。目錄更新的意義之一就是給自己做減法一段時間只深讀一本其他書只做索引。第三個坑是忽略版本。圖形API和引擎的淘汰速度極快老書里的OpenGL 2.0代碼不能直接搬進現(xiàn)在的項目但背后的原理仍然成立。更新目錄時我會標(biāo)記哪些章節(jié)“重原理、輕版本”哪些代碼只能當(dāng)思路看。6.3 目錄更新計劃當(dāng)前這版目錄還只是一個v0.1框架。接下來我會按“閱讀批次”來更新第一批把Real-Time Rendering里每個章節(jié)對應(yīng)的在線資源和實驗樣例補完第二批給PBRT增加構(gòu)建和調(diào)試的小筆記第三批補充Web/小程序渲染的典型問題索引比如路由跳轉(zhuǎn)、PDF textLayer、CSP攔截這類。每更新一次我會把新增的書或章節(jié)放到“最近新增”小節(jié)給大家做增量參考。如果你在使用這份目錄時發(fā)現(xiàn)某個熱詞沒地方放或者某本書的推薦順序不合理歡迎在評論區(qū)指出來。做目錄這種事一個人容易盲人摸象多人一起修才會越來越可靠。我的計劃是每個月至少更新一次把新技術(shù)比如三維高斯?jié)姙R、Pico上的4D場景渲染、AI輔助建模加進來同時淘汰已經(jīng)過時的API細節(jié)。畢竟“渲染”這個詞的范圍越來越大目錄也得跟著長。