基於物理的渲染技術(PBR)系列二
筆者介紹:姜雪偉,IT公司技術合夥人,IT高階講師,CSDN社群專家,特邀編輯,暢銷書作者,國家專利發明人;已出版書籍:《手把手教你架構3D遊戲引擎》電子工業出版社和《Unity3D實戰核心技術詳解》電子工業出版社等。
繼續上篇部落格中基於物理的渲染技術(PBR)系列一的講解,在這裡我們引入了一種被稱為渲染方程(Render Equation)的東西。它是某些聰明絕頂人所構想出來的一個精妙的方程式,是如今我們所擁有的用來模擬光的視覺效果最好的模型。基於物理的渲染所堅定的遵循的是一種被稱為
反射率方程一開始可能會顯得有些嚇人,不過隨著我們慢慢對其進行剖析,讀者最終會逐漸理解它的。要正確的理解這個方程式,我們必須要稍微涉足一些
輻射通量:輻射通量
輻射通量將會計算這個由不同波長構成的函式的總面積。直接將這種對不同波長的計量作為引數輸入計算機圖形有一些不切實際,因此我們通常不直接使用波長的強度而是使用三原色編碼,也就是RGB(或者按通常的稱呼:光色)來作為輻射通量表示的簡化。這套編碼確實會帶來一些資訊上的損失,但是這對於視覺效果上的影響基本可以忽略。
立體角:立體角用表示,它可以為我們描述投射到單位球體上的一個截面的大小或者面積。投射到這個單位球體上的截面的面積就被稱為
可以把自己想象成為一個站在單位球面的中心的觀察者,向著投影的方向看。這個投影輪廓的大小就是立體角。
輻射強度:輻射強度(Radiant Intensity)表示的是在單位球面上,一個光源向每單位立體角所投送的輻射通量。舉例來說,假設一個全向光源向所有方向均勻的輻射能量,輻射強度就能幫我們計算出它在一個單位面積(立體角)內的能量大小:
計算輻射強度的公式如下所示:
其中表示輻射通量除以立體角。
在理解了輻射通量,輻射強度與立體角的概念之後,我們終於可以開始討論輻射率的方程式了。這個方程表示的是,一個擁有輻射強度的光源在單位面積,單位立體角上的輻射出的總能量:
L=d2ΦdAdωcosθ
輻射率是輻射度量學上表示一個區域平面上光線總量的物理量,它受到
float cosTheta = dot(lightDir, N);
輻射率方程很有用,因為它把大部分我們感興趣的物理量都包含了進去。如果我們把立體角和麵積看作是無窮小的,那麼我們就能用輻射率來表示單束光線穿過空間中的一個點的通量。這就使我們可以計算得出作用於單個(片段)點上的單束光線的輻射率,我們實際上把立體角轉變為方向向量然後把面轉換為點。這樣我們就能直接在我們的著色器中使用輻射率來計算單束光線對每個片段的作用了。
事實上,當涉及到輻射率時,我們通常關心的是所有投射到點上的光線的總和,而這個和就稱為輻射照度或者
相關推薦
基於物理的渲染技術(PBR)系列二
筆者介紹:姜雪偉,IT公司技術合夥人,IT高階講師,CSDN社群專家,特邀編輯,暢銷書作者,國家專利發明人;已出版書籍:《手把手教你架構3D遊戲引擎》電子工業出版社和《Unity3D實戰核心技術詳解》電子工業出版社等。繼續上篇部落格中基於物理的渲染技術(PBR)系列一的講解,
基於物理的渲染技術(PBR)系列一
筆者介紹:姜雪偉,IT公司技術合夥人,IT高階講師,CSDN社群專家,特邀編輯,暢銷書作者,國家專利發明人;已出版書籍:《手把手教你架構3D遊戲引擎》電子工業出版社和《Unity3D實戰核心技術詳解》電子工業出版社等。PBR,或者用更通俗一些的稱呼是指基於物理的渲染(Phys
基於物理的渲染技術(PBR)系列三
筆者介紹:姜雪偉,IT公司技術合夥人,IT高階講師,CSDN社群專家,特邀編輯,暢銷書作者,國家專利發明人;已出版書籍:《手把手教你架構3D遊戲引擎》電子工業出版社和《Unity3D實戰核心技術詳解》電子工業出版社等。BRDF,或者說雙向反射分佈函式,它接受入射(光)方向ωi
基於物理的渲染技術(PBR)系列四
筆者介紹:姜雪偉,IT公司技術合夥人,IT高階講師,CSDN社群專家,特邀編輯,暢銷書作者,國家專利發明人;已出版書籍:《手把手教你架構3D遊戲引擎》電子工業出版社和《Unity3D實戰核心技術詳解》電子工業出版社等。接著上一篇部落格講解的內容基於物理的渲染技術(PBR)系列
基於 DirectX11 的 MMDViewer 03-渲染管線(1)
present esc ren 調用 param directx11 回調函數 hicon 文章 準備工作: 開始搭建框架之前,你需要確保已經進行了 D3D 開發環境的搭建,相關教程可以閱讀這篇文章。不了解 DirectX11 的人,這個作者有關 Direc
基於HTTP協議的幾種實時資料獲取技術(轉)
轉載自五月的倉頡 HTTP協議 HTTP協議是建立在TCP協議上的應用層協議,協議的本質是請求----應答: 即對於HTTP協議來說,服務端給一次響應後整個請求就結束了,這是HTTP請求最大的特點,也是由於這個特點,HTTP請求無法做到的是服務端向客戶端主動推送資料。 但由於H
基於數字光柵投影的結構光三維測量技術(總結)
概述 三維重建 光學三維測量 被動三維測量 主動三維測量 基於PMP的結構光三維測量技術 結
PDF技術(一)-Java實現Office系列檔案轉PDF檔案
最近,公司要求做個檔案轉pdf的調研報告,於是在網上找了一些實現方法,現在將這些方法做個對比,並記錄下來,以後或許有用呢,哈哈。 首先說一下需求,產品要求不能使用第三方軟體實現,因為這種實現方式效率不高,所以需要使用“純Java程式碼”實現。同時也對跨平臺有要求,系統需要執行在linux系統
Android中基於HTTP的通訊技術(3)使用HttpClient進行Get方式通訊
繼續搬磚學習android通訊(來自極客學院) 使用HttpClient進行Get方式通訊,通過HttpClient建立網路連結,使用HttpGet方法讀取資料,並且通過Response獲取Entity返回值。package com.example.httpclientge
Android中基於HTTP的通訊技術(5)Google開源庫 使用 Volley 實現 JSON 字串請求
使用 Volley 實現 JSON 字串請求,通過極少的程式碼以及更方便理解的引數完成通訊。 (來自極客學院的學習筆記,我是搬運工- -) Volley是谷歌開發android平臺的網路通訊庫:更
PBR基於物理渲染
什麼是基於物理渲染(PBR)? 傳統3D材質製作方法是基於藝術家的手藝的,由美術根據個人評估繪製Diffuse貼圖調整顏色後進行渲染。好處是畫成什麼顏色就是什麼顏色,製作流程簡單修改直觀,缺點則是質量不穩定,難以標準化和做進一步的細緻分工,導致遊戲製作規模受到人力限制;
基於 HTTP 協議的幾種實時數據獲取技術(轉)
通過 tty 輪詢 至少 不能 info back 同步 都在 HTTP協議 HTTP協議大家都很熟悉了,開始本文之前,首先簡單回顧一下HTTP協議。 HTTP協議是建立在TCP協議上的應用層協議,協議的本質是請求----應答:
鏡像的分層結構 - 每天5分鐘玩轉容器技術(11)
數據 9.png upload 問題: 所有 rfi image tle acs Docker 支持通過擴展現有鏡像,創建新的鏡像。 實際上,Docker Hub 中 99% 的鏡像都是通過在 base 鏡像中安裝和配置需要的軟件構建出來的。比如我們現在構建一個新的鏡像,
調試 Dockerfile - 每天5分鐘玩轉 Docker 容器技術(15)
top add font tom middle 程序 ria family 是個 包括 Dockerfile 在內的任何腳本和程序都會出錯。有錯並不可怕,但必須有辦法排查,所以本節討論如何 debug Dockerfile。 先回顧一下通過 Dockerfile 構建鏡像
網絡構建入門技術(5)——子網劃分應用
掩碼 -1 參考資料 臺電 www 說明 網絡 com hive 說明(2017-5-16 11:27:00): 題目: 一個公司有530臺電腦,組成一個對等局域網,子網掩碼和IP設多少最合適? 1. 首先選IP地址類別,A類太多,C類不夠用,就選B類了,假設為188.18
Dockerfile 常用指令 - 每天5分鐘玩轉 Docker 容器技術(16)
依次 官方文檔 構建 bottom str -s 暴露 工作 12px 是時候系統學習 Dockerfile 了。下面列出了 Dockerfile 中最常用的指令,完整列表和說明可參看官方文檔。 FROM指定 base 鏡像。 MAINTAINER設置鏡像的作
RUN vs CMD vs ENTRYPOINT - 每天5分鐘玩轉 Docker 容器技術(17)
docker 教程 容器 RUN、CMD 和 ENTRYPOINT 這三個 Dockerfile 指令看上去很類似很容易混淆。本節將通過實踐詳細討論它們的區別。簡單的說RUN 執行命令並創建新的鏡像層RUN 經常用於安裝軟件包。CMD 設置容器啟動後默認執行的命令及其參數但 CMD 能夠被 doc
使用公共 Registry - 每天5分鐘玩轉 Docker 容器技術(19)
docker 教程 容器 保存和分發鏡像的最直接方法就是使用 Docker Hub。Docker Hub 是 Docker 公司維護的公共 Registry。用戶可以將自己的鏡像保存到 Docker Hub 免費的 repository 中。如果不希望別人訪問自己的鏡像,也可以購買私有 repos
Docker 鏡像小結 - 每天5分鐘玩轉 Docker 容器技術(21)
列表 例如 normal one sys tro docker comm color 本節我們對 Docker 鏡像做個小結。 這一部分我們首先討論了鏡像的分層結構,然後學習了如何構建鏡像,最後實踐使用 Docker Hub 和本地 registry。 下面是鏡像的常用操作
如何運行容器?- 每天5分鐘玩轉 Docker 容器技術(22)
docker 教程 容器 上一章我們學習了如何構建 Docker 鏡像,並通過鏡像運行容器。本章將深入討論容器:學習容器的各種操作,容器各種狀態之間如何轉換,以及實現容器的底層技術。運行容器docker run 是啟動容器的方法。在討論 Dockerfile 時我們已經學習到,可用三種方式指定容器