1. 程式人生 > >【Unity燈光與渲染技術】LightProbes燈光探測器實踐

【Unity燈光與渲染技術】LightProbes燈光探測器實踐

Light Probes實現操作

關於反射探頭和螢幕空間反射的資料相對較少,暫時還沒有深入理解的需求。而在論文中需要深入Light Probes相關知識點,所以今天就用一下午實現了一下具體的過程。試試才發現有許多細節是需要注意的。下圖是工程的基本構造,其中左上方是藍色的光源,右方中部是紅色的光源,左方下部是黃色的光源。三種不同顏色的光源相互作用,在球體身上顯示不同部分的光照資訊。在烘焙之前,Light Probes並不具備光照亮度和顏色的資訊,但是在進行烘焙以後,所有的Light Probes都分配了不同的光照亮度和顏色。此時關閉燈光,場景中的光照資訊仍然存在Light Probes之中,為主體提供光源。實現動態的全域性光照。


測試Light Probe

上圖中主要包含了三部分內容:

1.簡單的場景:一個球和地板

2.Light Probe Group元件

3.三個不同顏色的燈光

實現的效果是當小球下落的過程中,關閉實時燈光仍然可以看見小球上面變化的光照,如下面三張圖片所示:

  

上面三張圖示均是在關閉光源後以烘焙貼圖照亮的結果。上左側圖顯示的是在藍色光源處,其光照資訊是周圍具有藍色燈光資訊的Light Probe 提供的光照。下面三幅圖片分別對應上面三張不同顏色亮度的球體所在的位置。我們可以看到下圖中球體所在的地方有幾條黃色線條圍城的三稜錐,而球體則受構成這三稜錐的四個Light Probes的光照資訊影響。不管物體移動或者旋轉,其光源仍然會自然地顯示在物體上。達到了實時全域性光照的效果。


PROBE功能仍然在不斷完善優化,如果未來有需求還可以瞭解相關的內容。

下面提一下實踐過程中值得注意的是烘焙的操作流程,涉及到燈光開關、Baking模式的選擇以及Lighting Scene面板Atuo選項是否開啟。

燈光模式

 

首先要明確的是,三維繫統中預設設定的燈光模式是實時的,如果我們要通過燈光貼圖這種方式降低消耗就需要在遊戲中關閉實時燈光,所以要對燈光模式進行設定。而烘焙貼圖的過程中需要實時燈光提供光照資訊,所以在烘焙過程中要保證燈光的勾選狀態。

Baking模式

 

在燈光的Light屬性面板中有一行Baking屬性,其有三個模式分別是Realtime、Baking、Mixed。Unity裡每盞燈光預設的烘焙模式都是”Realtime”,這代表這些燈光仍然會照亮你的場景,Unity的預計算GI系統會處理間接光。

如何設定烘焙模式是”Baked”,那麼這些燈光將會透過Unity的烘焙GI系統處理直接光源和間接光源,產生出來的光照貼圖一旦貼到場景上在執行期間是不能改變的。如果需要實現光照貼圖的效果就選擇此模式。

選擇烘焙模式為”Mixed”的話,場景內的靜態物件會被烘焙GI拿去做計算,然而,不像”Baked”模式,混合模式的燈光仍會繼續運算即時光源到非靜態物件上,這對於你想把靜態環境烘成光照貼圖,但同時又希望同樣一盞燈能為會動的角色計算陰影很有幫助。

Atuo選項

當我們需要即時看到連續改變的烘焙效果時,需要開啟AUTO選項。也可以通過點選build來進行一次的烘焙效果。


相關推薦

Unity燈光渲染技術LightProbes燈光探測器實踐

Light Probes實現操作 關於反射探頭和螢幕空間反射的資料相對較少,暫時還沒有深入理解的需求。而在論文中需要深入Light Probes相關知識點,所以今天就用一下午實現了一下具體的過程。試試才發現有許多細節是需要注意的。下圖是工程的基本構造,其中左上方是藍色的光源

GPU精粹Shader程式設計(六) 《GPU Gems 3》:真實感面板渲染技術總結

         本文由@淺墨_毛星雲 出品,首發於知乎專欄,轉載請註明出處   本文是【GPU精粹與Shader程式設計】系列的第六篇文章。 《GPU Gems 3》中的“Chapter 14. Advanced Techniques for Reali

多執行緒核心技術---單例模式多執行緒

立即載入/“餓漢模式”    立即載入就是在使用類的時候已經將物件建立完畢,常見的實現辦法就是直接new例項化。立即載入/“餓漢模式”    延遲載入就是在呼叫get()方法時例項化才被建立,常見的實現方式就是在get()方法中進行new()例項化,    在多執行緒環境下會

雙11背後的技術基於深度強化學習自適應線上學習的搜尋和推薦演算法研究

1. 搜尋演算法研究與實踐 1.1 背景 淘寶的搜尋引擎涉及對上億商品的毫秒級處理響應,而淘寶的使用者不僅數量巨大,其行為特點以及對商品的偏好也具有豐富性和多樣性。因此,要讓搜尋引擎對不同特點的使用者作出針對性的排序,並以此帶動搜尋引導的成交提升,是一個極具挑戰性的問題。

網絡系統安全關於SSL/TSL協議的分析

不知道 所有 前言 mar 2-2 tls協議 系統安全 描述 ssl3 前言 TSL協議的前身是由網景(Netscape)公司於1994年研發的安全套接字(Secure Socket Layer)協議。它建立在TCP協議棧的傳輸層,用於保護面向連接的TCP通信。實際TSL

unity系統模塊開發Unity5.5.2UI打包AssetBundle

無之前已經有幾篇文章寫打包AssetBundle,但畢竟沒有實際在項目中寫過都寫的比較淺。 剛好最近項目更新Unity5.5.2就順便由我來更新ui打包流程 這裏就把這次的經驗寫一下 這裏還是稍微解釋一下打包的基本目的: 打包ui就是把你做的界面打包出來成assetbundle包,講道理你就把每個界面打成bu

小松教你手遊開發unity系統模塊開發Unity5.5.2UI打包AssetBundle

無 unity 系統模塊 之前已經有幾篇文章寫打包AssetBundle,但畢竟沒有實際在項目中寫過都寫的比較淺。 剛好最近項目更新Unity5.5.2就順便由我來更新ui打包流程 這裏就把這次的經驗寫一下 這裏還是稍微解釋一下打包的基本目的: 打包ui就是把你做的界面打包出來成assetbund

小松教你手遊開發unity系統模塊開發熱更

無 手遊開發 現在的手遊項目如果沒個熱更新叠代根本跟不上, 特別是像我們項目做mmo的更是需要經常改動代碼。 而現在的項目一般會選擇用lua的方式實現熱更新 不過我們項目由於歷史原因沒有使用,用的是另外一種方案 在項目裏的所有GameObject都不掛腳本(NGUI腳本就通過代碼的方式掛上),自己寫的

小松教你手遊開發unity系統模塊開發Unity Assetbundle打包筆記

無 手遊開發 *最近項目更新了Unity5.5.2,順便更新了項目的ui打包,也更新一下這邊的筆記 首先打包分為兩部分,一部分是打包成Assetbundle包,一部分是從Assetbundle包解包出來成為可用的資源。 首先說第一部分 打包 所有資源都可以打包,甚至不是資源(一些數據)也可以打包,只要

unity系統模塊開發UnityEditor工具--數據可視化

無在Unity做性能優化,或者做一些編輯器工具的時候,如果把收集回來的數據用圖表來展示,可以使數據更加直觀,如果是性能優化的時候,就能更突顯出問題所在。在項目的開發過程中有同事做了個可視化工具,看了一下真實高端,就研究了一下並且簡化做了個demo。所以這其實也不能算原創,更多的代碼是同事寫的,我只能算是介紹了

進程線程多進程

line 兩個 none lis pipe AS parent 通訊 如果 多進程multiprocessing from multiprocessing import Process import os def info(title): print(title

模式識別機器學習——判別式和產生式模型

(1)判別式模型(Discriminative Model)是直接對條件概率p(y|x;θ)建模。常見的判別式模型有線性迴歸模型、線性判別分析、支援向量機SVM、神經網路、boosting、條件隨機場等。   舉例:要確定一個羊是山羊還是綿羊,用判別模型的方法是從歷史資料中學習到模型,然後通過提取這隻羊的特

線段樹區間或 woj 2820

描述 構造一個長度為n的非負整數序列x,滿足m個條件,第i個條件為x[li]|x[li+1]|…|x[ri]=pi。 輸入 第一行兩個整數n,m。接下來m行每行三個整數li,ri,pi。 輸出 如果存在這樣的序列x,第一行輸出Yes,第二行輸出n個不超過2^30-1的非負整數表示

線段樹01trie樹woj 2645 hyc的xor/mex

描述 NOIP2017就要來了,備戰太累,不如做做hyc的新題? 找回自信吧! 一句話題意:n個數,m個操作 操作具體來講分兩步 1.讀入x,把n個數全部xor上x 2.詢問當前n個數的mex 意味著每次操作後你都需要輸出一次 (注意:是mex,即集合內未出現過的最小

模式識別機器學習——3.9勢函式法:一種確定性的非線性分類方法

目的   用勢函式的概念來確定判別函式和劃分類別介面。 基本思想   假設要劃分屬於兩種類別ω1和ω2的模式樣本,這些樣本可看成是分佈在n維模式空間中的點xk。 把屬於ω1的點比擬為某種能源點,在點上,電位達到峰值。 隨著與該點距離的增大,電位分佈迅速減小,即把樣本xk附近空間x點上的電位分佈,看

演算法設計分析作業題第十一週:20. Valid Parentheses

題目 C++ solution class Solution { public: bool isValid(string s) { stack<char> cstack; for (int i = 0; i < s.si

模式識別機器學習——PCA主成分分析

  基本思想 其基本思想就是設法提取資料的主成分(或者說是主要資訊),然後摒棄冗餘資訊(或次要資訊),從而達到壓縮的目的。本文將從更深的層次上討論PCA的原理,以及Kernel化的PCA。 引子 首先我們來考察一下,這裡的資訊冗餘是如何體現的。如下圖所示,我們有一組二維資料點,從圖上不難發現

模式識別機器學習——PCAKernel PCA介紹對比

  PCA與Kernel PCA介紹與對比 1. 理論介紹   PCA:是常用的提取資料的手段,其功能為提取主成分(主要資訊),摒棄冗餘資訊(次要資訊),從而得到壓縮後的資料,實現維度的下降。其設想通過投影矩陣將高維資訊轉換到另一個座標系下,並通過平移將資料均值變為零。PCA認為,在變換過後的

模式識別機器學習——最大似然估計 (MLE) 最大後驗概率(MAP)

1) 極/最大似然估計 MLE 給定一堆資料,假如我們知道它是從某一種分佈中隨機取出來的,可是我們並不知道這個分佈具體的參,即“模型已定,引數未知”。例如,我們知道這個分佈是正態分佈,但是不知道均值和方差;或者是二項分佈,但是不知道均值。 最大似然估計(MLE,Maximum Likelihood Esti

CAM350技巧匯入gerber檔案單位尺度設定CAM測量操作說明快捷鍵

匯入gerber檔案(板廠返回或者他人設計檔案) gerber檔案不能夠直接開啟,需要用cam350軟體的匯入功能來開啟,如下: 這節摘錄於:http://wenku.baidu.com/link?url=tZ63X1zqv-AD8TR5415q_-GW2zMU-9IPCthjkIRybeG