【光照】[光照模型]發展里程碑時間線

【從UnityURP開始探索游戲渲染】專欄-直達

圖形學光照模型發展史:技術演進與里程碑

section 基礎奠基期(1960s-1970s)

  • 1967 : Lambert模型(漫反射) - Bui Tuong Phong提出
  • 1971 : Gouraud著色 - Henri Gouraud發明頂點插值著色
  • 1973 : Warnock算法 - 首次實現隱藏面消除
  • 1975 : Phong模型 - Bui Tuong Phong提出完整反射模型

section 物理模型探索期(1980s)

  • 1980 : Whitted光線追蹤 - Turner Whitted實現全局光照
  • 1981 : Cook-Torrance模型 - 首個微表面BRDF
  • 1982 : Blinn-Phong改進 - Jim Blinn優化Phong模型
  • 1984 : Radiosity方法 - Cornell大學提出熱輻射算法
  • 1986 : Kajiya渲染方程 - 奠定現代渲染數學基礎

section 實時渲染突破期(1990s)

  • 1991 : Ward各向異性模型 - 解決拉絲金屬效果
  • 1993 : Schlick近似 - 高效菲涅爾計算
  • 1996 : Oren-Nayar模型 - 粗糙表面漫反射
  • 1997 : HDR渲染 - Debevec首次實現高動態范圍

section 現代PBR時期(2000s-)

  • 2003 : Ashikhmin-Shirley模型 - 各向異性BRDF
  • 2007 : GGX分布 - Bruce Walter引入長尾高光
  • 2010 : Disney BRDF - Brent Burley統一藝術工作流
  • 2014 : UE4 PBR - Tim Sweeney推動游戲業標準化
  • 2016 : 路徑追蹤實時光追 - NVIDIA Turing架構

一、基礎奠基期(1967-1979)

1967:?Lambert漫反射模型?

  • ?提出者?:法國計算機科學家Bui Tuong Phong
  • ?核心貢獻?:L = k_d * I * max(0, N\cdot L)
  • ?背景?:猶他大學早期CG研究,受限于SDS 9300主機(32KB內存)
  • ?意義?:首個可計算的漫反射模型

1971:?Gouraud著色?

  • ?提出者?:法國科學家Henri Gouraud(猶他大學博士)
  • ?原理?:頂點光照插值
  • ?硬件支持?:GE CT掃描儀專用圖形系統
  • ?突破?:實現光滑表面效果,計算量降低95%

1975:?Phong反射模型?

  • ?提出者?:Bui Tuong Phong(完成博士論文后不久去世)
  • ?核心公式?:L = ambient + diffuse + k_s * (R\cdot V)^n
  • ?實驗環境?:在DEC PDP-10主機上實現,單幀渲染耗時數小時
  • ?歷史意義?:奠定現代光照模型三大組件基礎

二、物理模型探索期(1980-1989)

1980:?Whitted光線追蹤?

  • ?提出者?:Turner Whitted(貝爾實驗室)
  • ?突破?:首次實現反射、折射全局效果
  • ?硬件背景?:VAX-11/780主機,512x512圖像需74分鐘

1981:?Cook-Torrance微表面模型?

  • ?提出者?:Robert Cook(Lucasfilm)和Kenneth Torrance(康奈爾大學)
  • ?核心突破?:分解BRDF為D/F/G三項
  • ?應用?:電影《星際迷航2》特效制作

1984:?Radiosity方法?

  • ?研發機構?:康奈爾大學(Donald Greenberg團隊)
  • ?原理?:熱輻射能量傳遞在CG的應用
  • ?代表成果?:康奈爾盒子(至今仍是標準測試場景)

1986:?Kajiya渲染方程?

  • ?提出者?:Jim Kajiya(Caltech)
  • ?數學表達?:L_o = L_e + \int f_r L_i\cos \theta d\omega
  • ?意義?:統一光照計算理論框架

三、實時渲染突破期(1990-1999)

1991:?Ward各向異性模型?

  • ?提出者?:Greg Ward(LBNL)
  • ?解決痛點?:金屬拉絲、CD光盤等方向性反射

1993:?Schlick菲涅爾近似?

  • ?提出者?:Christophe Schlick(法國蒙彼利埃大學)
  • ?公式?:F = F_0 + (1-F_0)(1-\cos \theta )^5
  • ?價值?:計算效率提升20倍,沿用至今

1996:?Oren-Nayar粗糙漫反射?

  • ?提出者?:Michael Oren和Shree Nayar(哥倫比亞大學)
  • ?背景?:NASA火星探測計劃表面材質研究
  • ?突破?:修正Lambert對粗糙表面的失真

四、現代PBR時期(2000至今)

2007:?GGX法線分布?

  • ?提出者?:Bruce Walter(康奈爾大學)
  • ?特性?:長尾高光分布,符合真實材質
  • ?工業應用?:迪士尼動畫《長發公主》(2010)

2010:?Disney BRDF?

  • ?領導者?:Brent Burley(迪士尼動畫工作室)
  • ?核心思想?:"藝術家友好"的參數化
  • ?參數體系?:Metallic/Roughness工作流成為行業標準

2014:?游戲PBR革命?

  • ?里程碑產品?:
    • Unreal Engine 4(Tim Sweeney)
    • Unity 5(Unity Technologies)
    • Frostbite引擎(EA DICE)
  • ?硬件支撐?:PlayStation 4/Xbox One統一PBR管線

2018:?實時光線追蹤?

  • ?硬件突破?:NVIDIA Turing架構(RT Core)
  • ?標志產品?:
    • NVIDIA OptiX 5.0
    • Microsoft DXR API
    • UE4 Ray Tracing
  • ?性能數據?:1080p路徑追蹤達60fps(對比1980年74分鐘/幀)

技術演進關鍵轉折點

理論到應用的跨越(1980s)

實時渲染民主化(2000s)

年份硬件性能代表游戲光照技術
200110M tris/sec最終幻想X預烘焙光照
2007500M tris/sec孤島危機動態光影
20132G tris/sec戰地4屏幕空間反射
202015G tris/sec賽博朋克2077混合光追

學術-工業協同創新

  • ?SIGGRAPH紐帶?:自1974年創辦,成為技術轉化橋梁
  • ?關鍵人物遷移?:
    • Jim Blinn (NASA → Caltech → Microsoft)
    • Pat Hanrahan (皮克斯 → 斯坦福 → Tableau)
    • Eric Veach (谷歌 → 迪士尼 → Waymo)

未來發展方向

?神經輻射場(NeRF)

  • 2020年伯克利提出,實現照片級新視角合成

?材質感知光傳輸?

  • MIT 2023年實現亞表面散射實時模擬(Joule: 0.3ms/frame)

?量子光照計算?

  • 谷歌Quantum AI實驗室光量子處理器(2025目標)

光照模型發展史是計算機圖形學從經驗公式到物理真理的演進歷程,每一步突破都凝聚著學術智慧與工業實踐的碰撞,持續推動著虛擬世界與現實邊界的融合。


【從UnityURP開始探索游戲渲染】專欄-直達
(歡迎點贊留言探討,更多人加入進來能更加完善這個探索的過程,🙏)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/95107.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/95107.shtml
英文地址,請注明出處:http://en.pswp.cn/web/95107.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【從零開始java學習|第十篇】面向對象

目錄 一、面向對象介紹 二、類和對象 1. 類(Class):對象的模板 2. 對象(Object):類的實例 三、封裝 1. 封裝的概念 2. 封裝的優勢 四、就近原則和 this 關鍵字 1. 就近原則 2. this 關鍵字 五、…

Spark算子調優

Spark中可用下面的算子對數據計算進行優化處理,包括: mapPartition:一次處理一個分區數據,能夠使用mapPartition的盡量使用,但是使用時會一次性讀取整個分區數據到內存,占內存很大,同理還有fore…

碼農特供版《消費者權益保護法》逆向工程指北——附源碼級注釋與異常處理方案

尊敬的審核: 本人文章《碼農特供版〈消費者權益保護法〉逆向工程指北——附源碼級注釋與異常處理方案》 1. 純屬技術交流,無任何違法內容 2. 所有法律引用均來自公開條文 3. 請依據《網絡安全法》第12條“不得無故刪除合法內容”處理 附:本文…

MQTT 連接建立與斷開流程詳解(二)

三、核心機制與最佳實踐(一)會話管理與 QoS 保障Clean Session vs 持久會話:在 MQTT 連接中,會話管理是一個重要的概念,其中 Clean Session 和持久會話是兩種不同的會話模式。Clean Session,當設置為 1 時&…

[光學原理與應用-332]:ZEMAX - 序列模式與非序列模式的本質、比較

序列模式(Sequential Mode)與非序列模式(Non-Sequential Mode)是ZEMAX光學設計軟件中的兩種核心設計模式,二者在光路定義、分析工具、應用場景等方面存在本質差異。以下是兩者的詳細比較:一、本質差異光路定…

WeakAuras Lua Script (My Version)

分享下我的WA的簡約配置,大多數都是團隊框架高亮,輔助大腳DBM監控 表格: WeakAuras Lua Script <BiaoGe>_wa拍賣字符串-CSDN博客 ICC 監控,只要團隊框架監控 WeakAuras Lua Script ICC (Barne…

【Python+requests】解決Python requests中的ProxyError:SSL版本錯誤問題詳解

解決Python requests中的ProxyError:SSL版本錯誤問題詳解 在使用Python進行網絡請求時,很多人都會用到requests庫配合代理服務器進行調試或抓包。但有時會遇到令人困惑的ProxyError,尤其是伴隨SSLError: [SSL: WRONG_VERSION_NUMBER]這樣的錯…

基于deepseek的Spring boot入門

一次跟著deepseek記筆記的嘗試,由于CSDN沒有思維導圖,只能按層級記錄提問 如果我想知道一個springboot項目的基本結構,比如用到了哪些組件,入口在哪,數據庫配置是怎樣的 應該從哪里開始 springboot有哪些常用注解 一個…

macOS 15.6 ARM golang debug 問題

前言 最近使用macmini m4在使用golang debug發現一些奇怪的問題,debug到c代碼,莫名其妙,而且不知道什么原因,知道搜索查詢,才發現是蘋果的Command Line Tools 的鍋,macOS 15果然是一堆bug,畢竟…

有個需求:切換車隊身份實現Fragment的Tab隱藏顯示(車隊不顯示獎賞)

核心實現: 1使用mmkv保存切換的身份 2借助eventbus實現通知Fragment的tab更新private void switchFleet(boolean isMore, EnterpriseInfo enterpriseInfo) {if (isMore) {tvSwitchFleetTitle.setText(getText(R.string.switch_to_other_accounts));} else {tvSwitch…

在 Android Studio 中修改 APK 啟動圖標(2025826)

在 Android Studio 中修改 Android 12 應用圖標可以按照以下步驟進行:1、準備圖標資源準備一個啟動圖標(建議使用 SVG 格式或高分辨率 PNG,推薦尺寸為 512x512 像素)圖標應符合 Android 12 的設計規范(自適應圖標&…

Linux三劍客grep-sed-awk

linux三劍客-grep、sed、awk 文章目錄linux三劍客-grep、sed、awk1.正則表達式1.1正則表達式?1.2應用場景?-誰可以用?1.3正則注意事項(避免90%以上的坑)1.4正則符號1.5正則VS通配符2.基礎正則2.1 ^ 以...開頭的行2.2 $…

給某個conda環境安裝CUDA 12.4版本 全局CUDA不變

文章目錄🎯 正確的安裝命令📋 為什么這個命令安全??? 重要說明🔧 安裝后環境配置方法一:在虛擬環境中設置方法二:使用conda環境變量🧪 驗證安裝📊 版本共存確認💡 額外…

【C++】日期類實現詳解:代碼解析與復用優化

代碼總覽與總結// 實現一個完善的日期類 class Date { public:int GetMonthDay(int year, int month){int monthDays[13] { 0,31,28,31,30,31,30,31,31,30,31,30,31 };// 閏年2月if (month 2 && ((year % 4 0 && year % 100 ! 0) || year % 400 0))return …

零基礎json入門教程(基于vscode的json配置文件)

一、什么是 JSON?—— 最核心的概念JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,長得像鍵值對的集合,用途是存儲和傳遞數據。在 VS Code 中,它常被用來寫配置文件(比如調試配置…

深入對比分析SpringCloud和Dubbo兩大微服務框架的核心架構與特性。

1 微服務架構演進與核心概念1.1 微服務架構的本質微服務架構是一種將單一應用程序劃分為一組小型服務的方法,每個服務運行在自己的進程中,服務之間通過輕量級的通信機制進行協作。這些服務圍繞業務能力構建,并能夠獨立部署到生產環境中。微服…

鴻蒙ArkTS 核心篇-14-條件表達式(三目運算符)

目錄 根據邏輯條件結果,執行不同的表達式,得到不同結果 DevEco Studio代碼實戰 ctrl s 日志輸出 總結 根據邏輯條件結果,執行不同的表達式,得到不同結果 DevEco Studio代碼實戰 let num1: number 100 let num2: number 20l…

CDH集成LDAP進行身份驗證

前言:在內網環境中部署LDAP并在CDH的hive和impala中集成,其中配置的端口,鏡像名,密碼等需要根據自己情況進行更改 1、鏡像下載 在有網絡的服務器上下載鏡像或直接下載,這里需要自行配置下docker鏡像下載地址 # 下載…

并發編程:Java中的多線程與線程池!

全文目錄:開篇語線程的基礎概念線程生命周期線程調度線程安全線程池:Executor框架、線程池的管理與調優Executor框架線程池的管理與調優并發工具類:ReentrantLock、CountDownLatch、CyclicBarrier等ReentrantLockCountDownLatchCyclicBarrier…

語義分割一站式到底怎么玩?

語義分割模型,復現或改進、對比實驗,,歡迎交流,完爆各種詳細需求1、可以接以下語義分割模型dai做 DeepLabV3、PSPnet、HRnet、Segformer、Unet、u2net、cenet、erfnet、hcanet、hiformer、uiunet、nnunet、saunet、unext、dscnet、…