久久久91精品国产一区二区,国产91精品久久久久999,国产精品拍自在线观看,亚洲精品久中文字幕,欧美国产日本高清不卡免费 ,欧美日韩不卡视频,日本中文字幕视频在线看

服務熱線熱線:

13818745178

九游(ninegame)娛樂中國官方網(wǎng)頁-企業(yè)入口

行業(yè)洞察

一種基于Unity的軟件線性渲染的方法技術

發(fā)布時間:2025-05-22點擊次數(shù):

  當前位置:首頁專利查詢蘇州蝸牛數(shù)字科技股份有限公司專利正文

  一種基于Unity的軟件線性渲染的方法,包括以下步驟:(1)對線性渲染的環(huán)境進行判斷;(2)如果環(huán)境為Gamma Space,則在Gamma Space環(huán)境下進行軟件線)如果環(huán)境為Linear Space,則在Linear Space環(huán)境下進行軟件線性渲染。本發(fā)明專利技術可以在不支持硬件渲染的設備上,實現(xiàn)與硬件線性渲染相同的畫面效果。

  本專利技術涉及線性渲染領域,特別是一種基于Unity軟件進行線性渲染的方法。

  線性渲染(LinearRendering)就是渲染場景所有輸入都是線性的。使用線性渲染相比于在伽瑪空間(GammaSpace)進行非線性的渲染,更貼近真實世界的表現(xiàn)。如果在Unity中開啟了線性渲染模式,Unity會將Default類型的紋理設置為sRGB模式,這種模式下硬件在對紋理進行采樣時會自動將其轉換到線性空間中(LinearSpace);并且,也會設置一個sRGB格式的buffer,此時GPU會在shader寫入colorbuffer前自動進行伽馬校正(GammaCorrection)。然而并非所有硬件都能支持sRGB格式的紋理采樣技術,Unity引擎也并沒有提供在硬件線性渲染不支持的情況下的解決方案。目前,在其他的一些引擎中,存在采用軟件線性渲染的方式來解決該問題,但實現(xiàn)的方法過于簡單,不能完全還原硬件線性渲染的效果。

  為了解決現(xiàn)有技術存在的不足,本專利技術的目的在于提供一種基于Unity引擎的軟件線性渲染的方案。本專利技術可以在不支持硬件渲染的設備上,實現(xiàn)與硬件線性渲染相同的畫面效果。為實現(xiàn)上述目的,本專利技術提出了基于Unity的軟件線性渲染的方法,包括以下步驟:(1)對線性渲染的環(huán)境進行判斷;(2)如果環(huán)境為GammaSpace,則在GammaSpace環(huán)境下進行軟件線)如果環(huán)境為LinearSpace,則在LinearSpace環(huán)境下進行軟件線性渲染。對應GammaSpace和LinearSpace兩種環(huán)境,具體包括以下兩種線性渲染方法。方法一:一種在GammaSpace環(huán)境下實現(xiàn)軟件線性渲染的方法,包括以下步驟:S101:在腳本中定義開啟線性渲染的宏_COLORSPACE_GAMMA;S102:在Shader中執(zhí)行tex2D()函數(shù)之后,并在將該采樣結果運用于計算之前,根據(jù)宏_COLORSPACE_GAMMA判斷是否需要開啟軟件線性渲染,如果需要線性渲染,則進行一下步驟;如果不需要線性渲染,則直接輸出結果;S103:對tex2D()函數(shù)的采樣結果執(zhí)行Pow(...,2.0)操作,以將采樣結果的值從非線Dbias()和texCUBE()函數(shù)之后,對其采樣結果重復S102-S103步驟;S105:對光照貼圖、全局反射貼圖和/或光照的采樣結果,重復S102-S103步驟,從非線性空間轉換到線:在主相機上添加繼承MonoBehaviour的腳本,用于進行全屏后處理的操作;S107:編寫用于屏幕后處理的Shader,對RenderTexture中的顏色執(zhí)行Pow(...,0.5)操作;S108:在后處理腳本中,使用步驟S107中的Shader進行OnRenderImage的處理,將處理后的最終結果輸出到屏幕上。進一步地,在步驟S101中還包括,以#pragmamulti_pile的方式定義開啟線性渲染的宏_COLORSPACE_GAMMA。進一步地,在步驟S106中還包括,腳本中包括對_COLORSPACE_GAMMA宏的開關。更進一步地,使用Shader.EnableKeyword或Shader.DisableKeyword對_COLORSPACE_GAMMA宏進行開關控制。方法二:一種在LinearSpace環(huán)境下實現(xiàn)軟件線性渲染的方法,包括以下步驟:S201:在腳本中定義開啟線性渲染的宏_COLORSPACE_LINEAR;S202:在Unity引擎的目錄下,修改UnityCG.cginc和UnityStandardBRDF.cginc文件中的內容,加入對宏的判斷,以判斷是否需要開啟軟件線性渲染,如果需要線性渲染,則進行一下步驟;如果不需要線性渲染,則直接輸出結果;S203:將修改過后的UnityCG.cginc和UnityStandardBRDF.cginc文件放到Shader文件目錄下,并在Shader中添加對上述兩個cginc文件的引用;S204:在主相機上添加繼承MonoBehaviour的腳本,用于進行全屏后處理的操作;S205:編寫用于屏幕后處理的Shader,對RenderTexture中的顏色執(zhí)行Pow(...,0.5)的操作;S206:在后處理腳本中,使用步驟S205中的Shader進行OnRenderImage的處理,將處理后的最終結果輸出到屏幕上。進一步地,在步驟S1中,由以#pragmamulti_pile的方式定義開啟線性渲染的宏_COLORSPACE_LINEAR。進一步地,在步驟S202中,對宏的判斷包括:判斷UNITY_COLORSPACE_GAMMA的未開啟的部分,并且判斷宏_COLORSPACE_LINEAR。進一步地,當所述方法使用在IOS系統(tǒng)上時,步驟S207還包括:復制主相機,將該相機的深度緩沖和顏色緩沖寫入到RenderTexture中,在應用運行時持續(xù)對RenderTexture進行更新,并將RenderTexture替換后處理腳本中OnRenderImage方法的輸入源source。進一步地,在步驟S204中還包括,腳本中包括對宏_COLORSPACE_LINEAR的開關。更進一步地,使用Shader.EnableKeyword或Shader.DisableKeyword對宏_COLORSPACE_LINEAR進行開關控制。本專利技術提供的基于Unity的軟件線性渲染方法,具有如下有益效果:現(xiàn)有技術中的線性渲染方法過于簡單,無法完全還原渲染的效果,而本專利技術的方法能夠完全還原硬件線性渲染的效果。本專利技術的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本專利技術而了解。附圖說明附圖用來提供對本專利技術的進一步理解,并且構成說明書的一部分,并與本專利技術的實施例一起,用于解釋本專利技術,并不構成對本專利技術的限制。在附圖中:圖1為根據(jù)本專利技術的在GammaSpace環(huán)境下實現(xiàn)軟件線性渲染的方法流程圖;圖2為根據(jù)本專利技術的在LinearSpace環(huán)境下實現(xiàn)軟件線性渲染的方法流程圖。具體實施方式以下結合附圖對本專利技術的優(yōu)選實施例進行說明,應當理解,此處所描述的優(yōu)選實施例僅用于說明和解釋本專利技術,并不用于限定本專利技術。本專利技術的目的在于提供一種基于Unity引擎的軟件線性渲染的方案,本專利技術包括兩種軟件線性渲染的實施例,對應了Unity引擎以不同的色彩空間發(fā)布應用時的情況。實施例一圖1為根據(jù)本專利技術的在GammaSpace環(huán)境下實現(xiàn)軟件線性渲染的方法流程圖,下面將參考圖1,對本專利技術的在GammaSpace環(huán)境下實現(xiàn)軟件線性渲染的方法進行詳細描述:步驟101中,在腳本中定義開啟線性渲染的宏_COLORSPACE_GAMMA;該宏_COLORSPACE_GAMMA以#pragmamulti_pile的方式定義,若不以該方式定義,則可能無法在最終發(fā)布的應用程序中執(zhí)行線性渲染的相關方法。步驟102中,在Shader中執(zhí)行tex2D()函數(shù)之后,并在將該采樣結果運用于計算之前,根據(jù)宏_COLORSPACE_GAMMA判斷是否需要開啟軟件線性渲染

  1.一種基于Unity的軟件線性渲染的方法,包括以下步驟:(1) 對線性渲染的環(huán)境進行判斷;(2) 如果環(huán)境為Gamma Space,則在Gamma Space環(huán)境下進行軟件線) 如果環(huán)境為Linear Space,則在Linear Space環(huán)境下進行軟件線)進一步包括以下步驟:S101:在腳本中定義開啟線性渲染的宏_COLORSPACE_GAMMA;S102:在Shader中執(zhí)行tex2D()函數(shù)之后,并在將該采樣結果運用于計算之前,根據(jù)宏_COLORSPACE_GAMMA判斷是否需要開啟軟件線性渲染,如果需要線性渲染,則進行一下步驟;如果不需要線性渲染,則直接輸出結果;S103:對tex2D()函數(shù)的采樣結果執(zhí)行Pow(...,2.0)操作,以將采樣結果的值從非線Dbias()和texCUBE()函數(shù)之后,對其采樣結果重復S102?S103步驟;S105:對光照貼圖、全局反射貼圖和/或光照的采樣結果,重復S102?S103步驟,從非線性空間轉換到線:在主相機上添加繼承MonoBehaviour的腳本,用于進行全屏后處理的操作;S107:編寫用于屏幕后處理的Shader,對RenderTexture中的顏色執(zhí)行Pow(...,0.5)操作;S108:在后處理腳本中,使用步驟S107中的Shader進行OnRenderImage的處理,將處理后的最終結果輸出到屏幕上。

  1.一種基于Unity的軟件線性渲染的方法,包括以下步驟:(1)對線性渲染的環(huán)境進行判斷;(2)如果環(huán)境為GammaSpace,則在GammaSpace環(huán)境下進行軟件線)如果環(huán)境為LinearSpace,則在LinearSpace環(huán)境下進行軟件線)進一步包括以下步驟:S101:在腳本中定義開啟線性渲染的宏_COLORSPACE_GAMMA;S102:在Shader中執(zhí)行tex2D()函數(shù)之后,并在將該采樣結果運用于計算之前,根據(jù)宏_COLORSPACE_GAMMA判斷是否需要開啟軟件線性渲染,如果需要線性渲染,則進行一下步驟;如果不需要線性渲染,則直接輸出結果;S103:對tex2D()函數(shù)的采樣結果執(zhí)行Pow(...,2.0)操作,以將采樣結果的值從非線Dbias()和texCUBE()函數(shù)之后,對其采樣結果重復S102-S103步驟;S105:對光照貼圖、全局反射貼圖和/或光照的采樣結果,重復S102-S103步驟,從非線性空間轉換到線:在主相機上添加繼承MonoBehaviour的腳本,用于進行全屏后處理的操作;S107:編寫用于屏幕后處理的Shader,對RenderTexture中的顏色執(zhí)行Pow(...,0.5)操作;S108:在后處理腳本中,使用步驟S107中的Shader進行OnRenderImage的處理,將處理后的最終結果輸出到屏幕上。2.根據(jù)權利要求1所述的基于Unity的軟件線性渲染的方法,其特征在于,在步驟S101中還包括,以#pragmamulti_pile的方式定義開啟線性渲染的宏_COLORSPACE_GAMMA。3.根據(jù)權利要求1所述的基于Unity的軟件線性渲染的方法,其特征在于,在步驟S106中還包括,腳本中包括對_COLORSPACE_GAMMA宏的開關。4.根據(jù)權利要求3所述的基于Unity的軟件線性渲染的方法,其特征在于,使用Shader.EnableKeyword或Shader.DisableKeyword對_COLORSPACE_GAMMA宏進行開關控制。5.根據(jù)權利要求1所述的基于Unity的軟件線性渲染的方法,其特征在于,所述步驟(3)進一步包括以下步驟:S201:在腳本中定...九游娛樂中心

上一篇:圖形驗證碼價格單_網(wǎng)易易盾

返回列表

下一篇:垃圾信息過濾云