最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Unity-延遲著色渲染路徑

2021-03-15 09:31 作者:unity_某某師_高錦錦  | 我要投稿

本頁面將詳細(xì)介紹 Unity 內(nèi)置渲染管線中的延遲著色渲染路徑。有關(guān)延遲著色的介紹性技術(shù)概述,請(qǐng)參閱?Wikipedia:延遲著色 (deferred shading)。

概述

使用延遲著色時(shí),可影響游戲?qū)ο蟮墓庠磾?shù)量沒有限制。所有光源都按像素進(jìn)行評(píng)估,這意味著它們都能與法線貼圖等正確交互。此外,所有光源都可以有剪影和陰影。

延遲著色的優(yōu)點(diǎn)是,光照的處理開銷與接受光照的像素?cái)?shù)成正比。這取決于場(chǎng)景中的光量大小,而不管接受光照的游戲?qū)ο笥卸嗌佟R虼?,可通過減少光源數(shù)量來提高性能。延遲著色還具有高度一致和可預(yù)測(cè)的行為。每個(gè)光源的效果都是按像素計(jì)算的,因此不會(huì)有在大三角形上分解的光照計(jì)算。

在缺點(diǎn)方面,延遲著色并不支持抗鋸齒,也無法處理半透明游戲?qū)ο螅ㄟ@些對(duì)象使用前向渲染進(jìn)行渲染)。此外,它也不支持網(wǎng)格渲染器 (Mesh Renderer) 的接受陰影 (Receive Shadows) 標(biāo)志,并且僅在有限程度上支持剔除遮罩。最多只能使用四個(gè)剔除遮罩。也就是說,剔除層遮罩必須至少包含所有層減去四個(gè)任意層,即必須設(shè)置 32 個(gè)層中的 28 個(gè)層。否則,會(huì)產(chǎn)生圖形瑕疵。

要求

延遲著色要求顯卡具有多渲染目標(biāo) (MRT)、著色器模型 3.0(或更高版本)并支持深度渲染紋理。從 GeForce 8xxx、Radeon X2400、Intel G45 開始,2006 年以后制造的大多數(shù) PC 顯卡都支持延遲著色。

所有至少運(yùn)行 OpenGL ES 3.0 的移動(dòng)設(shè)備都支持延遲著色。

注意:使用正交投影 (Orthographic projection) 時(shí)不支持延遲渲染。如果攝像機(jī)的投影模式設(shè)置為正交模式,則攝像機(jī)將回退到前向渲染。

性能注意事項(xiàng)

延遲著色中的實(shí)時(shí)光源的渲染開銷與接受光照的像素?cái)?shù)成比例,并_不_依賴于場(chǎng)景復(fù)雜度。所以小型點(diǎn)光源或聚光燈的渲染成本非常低,如果它們被場(chǎng)景游戲?qū)ο笸耆虿糠终趽酰敲闯杀旧踔粮汀?/p>

當(dāng)然,有陰影的光源比沒有陰影的光源的成本高得多。在延遲著色中,對(duì)于每個(gè)陰影投射光源,仍然需要將投射陰影的游戲?qū)ο箐秩疽淮位蚨啻?。此外,?yīng)用陰影的光照著色器的渲染開銷高于禁用陰影時(shí)的渲染開銷。

實(shí)現(xiàn)詳細(xì)信息

如果對(duì)象的著色器不支持延遲著色,則會(huì)在延遲著色結(jié)束后使用前向渲染路徑來渲染這些對(duì)象。

下面列出了幾何緩沖區(qū)(G 緩沖區(qū))中渲染目標(biāo) (RT0 - RT4) 的默認(rèn)布局。數(shù)據(jù)類型放置在每個(gè)渲染目標(biāo)的各個(gè)通道中。使用的通道顯示在括號(hào)內(nèi)。

  • RT0,ARGB32 格式:漫射顏色 (RGB),遮擋 (A)。

  • RT1,ARGB32 格式:鏡面反射顏色 (RGB),粗糙度 (A)。

  • RT2,ARGB2101010 格式:世界空間法線 (RGB),未使用 (A)。

  • RT3,ARGB2101010(非 HDR)或 ARGBHalf (HDR) 格式:發(fā)射 + 光照 + 光照貼圖 + 反射探針緩沖區(qū)。

  • 深度+模板緩沖區(qū)。

因此,默認(rèn)的 G 緩沖區(qū)布局為 160 位/像素(非 HDR)或 192 位/像素 (HDR)。

如果混合光照模式為?Shadowmask?或?Distance Shadowmask,則使用第五個(gè)目標(biāo):

*RT4,ARGB32 格式:光照遮擋值 (RGBA)。

因此,G 緩沖區(qū)布局為 192 位/像素(非 HDR)或 224 位/像素 (HDR)。

如果硬件不支持五個(gè)并發(fā)渲染目標(biāo),則使用陰影遮罩的對(duì)象將回退到前向渲染路徑。 當(dāng)攝像機(jī)不使用 HDR 時(shí),發(fā)射+光照緩沖區(qū) (RT3) 采用對(duì)數(shù)編碼,因此提供的動(dòng)態(tài)范圍高于 ARGB32 紋理通??赡芴峁┑姆秶?/p>

請(qǐng)注意,當(dāng)攝像機(jī)使用 HDR 渲染時(shí),不會(huì)為發(fā)射 + 光照緩沖區(qū) (RT3) 創(chuàng)建單獨(dú)的渲染目標(biāo);而是將攝像機(jī)渲染到的渲染目標(biāo)(即傳遞給圖像效果的渲染目標(biāo))用作 RT3。

G 緩沖區(qū)通道

G 緩沖區(qū)通道將每個(gè)游戲?qū)ο箐秩疽淮?。漫射和鏡面反射顏色、表面平滑度、世界空間法線和發(fā)射+環(huán)境+反射+光照貼圖都將渲染到 G 緩沖區(qū)紋理中。G 緩沖區(qū)紋理設(shè)置為全局著色器屬性供著色器以后訪問 (CameraGBufferTexture0 ..CameraGBufferTexture3 names)。

光照通道

光照通道根據(jù) G 緩沖區(qū)和深度來計(jì)算光照。光照是在屏幕空間內(nèi)計(jì)算的,因此處理所需的時(shí)間與場(chǎng)景復(fù)雜性無關(guān)。光照將添加到發(fā)射緩沖區(qū)。

不與攝像機(jī)近平面相交的點(diǎn)光源和聚光燈將渲染為 3D 形狀,并會(huì)啟用 Z 緩沖區(qū)對(duì)場(chǎng)景的測(cè)試。因此,部分或完全遮擋的點(diǎn)光源和聚光燈的渲染成本很低。方向光以及與近平面相交的點(diǎn)光源/聚光燈將渲染為全屏四邊形。

如果光源啟用了陰影,那么也會(huì)在此通道中渲染并應(yīng)用陰影。請(qǐng)注意,陰影并非是“無成本”的;需要渲染陰影投射物,并且必須應(yīng)用更復(fù)雜的光照著色器。

唯一可用的光照模型是標(biāo)準(zhǔn) (Standard) 光照模型。如果需要不同的模型,可修改光照通道著色器,方法是將內(nèi)置著色器中的 Internal-DeferredShading.shader 文件的修改版本放入“Assets”文件夾中名為“Resources”的文件夾內(nèi)。然后打開?Graphics?設(shè)置(菜單:Edit?>?Project Settings,然后單擊 Graphics 類別)。將“Deferred”下拉選單改為“Custom Shader”。然后,更改當(dāng)前使用的著色器對(duì)應(yīng)的著色器 (Shader) 選項(xiàng)。


Unity-延遲著色渲染路徑的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
册亨县| 浦江县| 平顶山市| 庆安县| 慈利县| 阿拉善左旗| 二连浩特市| 玉树县| 衡南县| 宁津县| 阿拉善盟| 北海市| 华阴市| 宜兴市| 榆中县| 涞水县| 新乡县| 台安县| 固原市| 九龙坡区| 阜阳市| 新密市| 正宁县| 江口县| 伊金霍洛旗| 缙云县| 焉耆| 罗山县| 卢龙县| 屏东市| 凤山市| 南溪县| 邢台县| 姜堰市| 佛冈县| 昭通市| 上犹县| 威信县| 萨迦县| 凤山县| 正蓝旗|