最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

圖形學(xué)之Unity渲染管線流程分析

 更新時(shí)間:2022年01月05日 10:51:07   作者:小紫蘇  
這篇文章主要介紹了圖形學(xué)之Unity渲染管線流程的相關(guān)資料,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

下圖是《Unity Shader 入門精要》一書中的渲染流程圖;

ApplicationStage階段:準(zhǔn)備場景信息(視景體,攝像機(jī)參數(shù))、粗粒度剔除、定義每個(gè)模型的渲染命令(材質(zhì),shader)——由開發(fā)者定義,不做討論;

GemetryStage階段:頂點(diǎn)著色器、曲面細(xì)分著色器、幾何著色器、裁剪、屏幕映射;

RasterizerStage階段:三角形設(shè)置遍歷,片元著色器、逐片元操作;

每個(gè)階段具體操作如下圖(虛線框是可選階段):

模型空間——矩陣變換——齊次裁剪空間——透視除法——NDC標(biāo)準(zhǔn)設(shè)備坐標(biāo)——屏幕映射

齊次裁剪空間是視景體空間(臺(tái)體);

CVV:標(biāo)準(zhǔn)視體-也就是NDC坐標(biāo)系對應(yīng)的空間;

透視除法:頂點(diǎn)坐標(biāo)除以w分量,將當(dāng)前z深度所在的截面縮放為(2,2,2)的截面坐標(biāo);所以w分量記錄了z深度信息;

硬件做透視除法獲得NDC歸一化設(shè)備坐標(biāo)——再經(jīng)過屏幕映射獲得屏幕坐標(biāo)系下頂點(diǎn)坐標(biāo);

Unity使用OpenGL的NDC,z分量在[-1,1];

OpenGL和DirectX差異

NDC空間——OpenGL為[-1,1],DirectX為[0,1],深度z范圍不同;

窗口坐標(biāo)系——DirectX左上角原點(diǎn),OpenGL左下角原點(diǎn);

投影平面——DirectX投影平面就是視景體近截面,OpenGL有視平面;

左右手坐標(biāo)系——DirectX左手,OpenGL右手,叉乘順序;

問題:

為什么片元不叫像素?

片元是很多狀態(tài)的集合,記錄了該像素的屏幕坐標(biāo),深度信息,法線,UV等;

DrawCall為什么會(huì)影響性能?

DrawCall是CPU向GPU添加渲染命令的過程,過程會(huì)由CPU向GPU發(fā)送數(shù)據(jù)(模型信息),DrawCall的次數(shù)越多CPU消耗性能就越大,DrawCall次數(shù)過多會(huì)導(dǎo)致每一幀CPU來不及發(fā)送全部數(shù)據(jù)給GPU渲染;

GPU有一個(gè)命令緩存區(qū)(Command Buffer),CPU的渲染命令都會(huì)存儲(chǔ)在這里,GPU從命令緩存區(qū)依次執(zhí)行渲染命令;

兩種渲染命令:渲染模型(CPU提交模型信息也就是DrawCall)和改變渲染狀態(tài)(著色器紋理狀態(tài)改變,更耗時(shí));

一般情況都是GPU渲染完成等待CPU發(fā)渲染命令;

相關(guān)文章

  • C#圖像偽彩色處理方法

    C#圖像偽彩色處理方法

    這篇文章主要介紹了C#圖像偽彩色處理方法,涉及C#操作圖像的偽彩色相關(guān)技巧,需要的朋友可以參考下
    2015-04-04
  • C#中高效的多線程并行處理實(shí)現(xiàn)方式詳解

    C#中高效的多線程并行處理實(shí)現(xiàn)方式詳解

    在處理大型數(shù)據(jù)集時(shí),單線程處理往往成為性能瓶頸,所以本文將詳細(xì)介紹幾種高效的多線程并行處理實(shí)現(xiàn)方式,幫助開發(fā)者優(yōu)化數(shù)據(jù)處理流程,有需要的可以了解下
    2025-04-04
  • C# IQueryable及IEnumerable區(qū)別解析

    C# IQueryable及IEnumerable區(qū)別解析

    這篇文章主要介紹了C# IQueryable及IEnumerable區(qū)別解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • C#實(shí)現(xiàn)自定義雙擊事件

    C#實(shí)現(xiàn)自定義雙擊事件

    這篇文章主要介紹了C#實(shí)現(xiàn)自定義雙擊事件,需要的朋友可以參考下
    2014-08-08
  • C#利用插值字符串處理器寫一個(gè)sscanf

    C#利用插值字符串處理器寫一個(gè)sscanf

    這篇文章主要為大家詳細(xì)介紹了C#如何利用插值字符串處理器寫一個(gè)sscanf,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-02-02
  • C# 實(shí)現(xiàn)顏色漸變窗體控件詳細(xì)講解

    C# 實(shí)現(xiàn)顏色漸變窗體控件詳細(xì)講解

    這篇文章主要介紹了C# 實(shí)現(xiàn)顏色漸變窗體控件詳細(xì)講解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • 算法證明每一位都相同十進(jìn)制數(shù)不是完全平方數(shù)

    算法證明每一位都相同十進(jìn)制數(shù)不是完全平方數(shù)

    這篇文章主要為大家介紹了算法證明每一位都相同十進(jìn)制數(shù)不是完全平方數(shù)的過程論述,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • C# 如何判斷兩個(gè)文件內(nèi)容是否相同的方法

    C# 如何判斷兩個(gè)文件內(nèi)容是否相同的方法

    使用System.security.Cryptography.HashAlgorithm類為每個(gè)文件生成一個(gè)哈希碼,然后比較兩個(gè)哈希碼是否相同
    2013-05-05
  • C#在Winform開發(fā)中使用Grid++報(bào)表

    C#在Winform開發(fā)中使用Grid++報(bào)表

    這篇文章主要介紹了C#在Winform開發(fā)中使用Grid++報(bào)表,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • 使用C#在注冊表中保存信息的例子

    使用C#在注冊表中保存信息的例子

    最近做的項(xiàng)目需要在注冊表中記錄一些用戶設(shè)置,方便在程序下次啟動(dòng)時(shí)讀取設(shè)置,應(yīng)用上次用戶保存的設(shè)置,挺簡單的
    2014-04-04

最新評論

疏勒县| 台中市| 镇远县| 剑河县| 图片| 景德镇市| 甘德县| 花莲市| 开原市| 文化| 凌海市| 宜兰县| 余庆县| 老河口市| 乾安县| 临沭县| 昆山市| 孟津县| 遂宁市| 罗江县| 湘阴县| 红桥区| 蒙自县| 琼结县| 桦川县| 伽师县| 固始县| 颍上县| 徐州市| 建始县| 从江县| 英德市| 克山县| 长沙市| 江油市| 洛扎县| 安庆市| 贵港市| 开平市| 城口县| 汉源县|