国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

網(wǎng)站開發(fā)技術(shù)路線網(wǎng)站制作流程和方法

網(wǎng)站開發(fā)技術(shù)路線,網(wǎng)站制作流程和方法,網(wǎng)站建設(shè)公司廈門,做冷庫的網(wǎng)站1)從Gamma空間改為Linear空間會導(dǎo)致性能下降嗎 2)如何處理沒有使用Unity Ads卻收到了GooglePlay平臺的警告 3)C#端如何處理xLua在執(zhí)行DoString時候死循環(huán) 4)Texture2DArray相關(guān) 這是第350篇UWA技術(shù)知識分享的推送,精選…

1)從Gamma空間改為Linear空間會導(dǎo)致性能下降嗎
2)如何處理沒有使用Unity Ads卻收到了GooglePlay平臺的警告
3)C#端如何處理xLua在執(zhí)行DoString時候死循環(huán)
4)Texture2DArray相關(guān)


這是第350篇UWA技術(shù)知識分享的推送,精選了UWA社區(qū)的熱門話題,涵蓋了UWA問答、社區(qū)帖子等技術(shù)知識點,助力大家更全面地掌握和學(xué)習(xí)。

Rendering

Q:Linear性能比Gamma差嗎?我們項目從之前使用的是Unity 2020.2.7f1版本,選擇的是Gamma。目前升級到2021.3.21f1,切換為Linear空間,Shader和圖片都進行過修改,性能也優(yōu)化過。

但是總體測試下來性能不如之前的Gamma,幀率沒有以前高,幀率掉了很多,經(jīng)過優(yōu)化,還是不太令人滿意,總感覺會卡頓,不知道是不是從Gamma升級到Linear的原因?

A1:應(yīng)該和換顏色空間沒關(guān)系。如果沒有特殊功能,Gamma和Linear的主要區(qū)別就是最后輸出到顯示器時要不要做顏色的修正,根據(jù)你的描述應(yīng)該和修改Shader有關(guān)。

感謝李偉@UWA問答社區(qū)提供了回答

A2:在硬件支持的設(shè)備上,不應(yīng)當(dāng)有明顯的性能差異。

在硬件不支持的情況下(比如OpenGL ES 2.0),如果是基于Shader中的模擬轉(zhuǎn)換來實現(xiàn)Linear Space的效果,會有一定的GPU消耗。但是如果感受上是卡頓,而非持續(xù)的低幀率,那也不像是這種情況,建議從具體的性能Profile數(shù)據(jù)入手來進行排查。

這里有一個相關(guān)的討論,搜索performance關(guān)鍵詞可以看到一些人做的實驗:
Gamma vs Linear Space - Unity Forum

部分結(jié)論引用如下:
“I have just done a stress test of Gamma vs Linear color spaces with transparencies and Gamma is indeed a liiiitle faster than Linear, but the difference is so minimal it doesn't even matter. (2 to 3 frames per second more on a stress test that was overdrawing 8 transparent planes one over the other for the full screen space.)


On any GPU that handles GLES3 there is no performance reason to use Gamma space over Linear.

Gamma space is legacy now and is only useful for legacy GLES2 GPUs (because linear requires GLES3)”

不同的游戲測試結(jié)果可能略有差異,但原理上應(yīng)該是沒有可觀測的性能差異的,題主可以參考一下。

感謝賈偉昊@UWA問答社區(qū)提供了回答


Script

Q:我沒有使用Unity Ads,但仍然收到了GooglePlay平臺的警告:

您的“xxxxxxx”應(yīng)用(版本代碼:8)包含“com.unity3d.ads:unity-ads”SDK 或您的某個代碼庫所依賴的SDK,該SDK會收集個人數(shù)據(jù)或敏感數(shù)據(jù),這些數(shù)據(jù)包括但可能不僅限于Advertising ID,Android ID標(biāo)識符。根據(jù)用戶數(shù)據(jù)政策的相關(guān)規(guī)定,應(yīng)用不得將永久性設(shè)備標(biāo)識符與其他個人數(shù)據(jù)、敏感的用戶數(shù)據(jù)或可重置的設(shè)備標(biāo)識符相關(guān)聯(lián)。

自世界協(xié)調(diào)時間(UTC)2023年1月11日午夜起,如果新應(yīng)用版本包含SDK版本且不符合用戶數(shù)據(jù)政策,則可能無法發(fā)布。您可以考慮將該SDK升級至不含違規(guī)代碼的合規(guī)版SDK(若有),或者從您的應(yīng)用內(nèi)移除該SDK。

根據(jù)您的SDK提供方的情況,您可以考慮升級到4.0.1,并/或聯(lián)系您的SDK提供方,看看是否有合適的更高版本可用。Google無法推薦任何第三方軟件,也無法為這類軟件提供任何背書。

A1:建議檢查下SystemInfo的引用。

感謝Knight-132872@UWA問答社區(qū)提供了回答

A2:提供幾個思路:
1、確認(rèn)Package下有沒有com.unity.ads包
2、如果使用的是Unity中國版,可以切換為以下版本或同版本國際版

感謝bo@UWA問答社區(qū)提供了回答

A3:親測,用對應(yīng)的國際版本就行了,解包發(fā)現(xiàn),中國版不論是否導(dǎo)入Ads,打的包里面都會有Ads內(nèi)容,國際版本不會有這個問題,今天提交谷歌商店驗證過了。

解包后在smali\com\unity3d目錄下,splash文件夾,首先要在工程里移除Ads,再打包測試,我用2020.3.38f1和2018.4.36f1測試都沒問題。

感謝TimWang@UWA問答社區(qū)提供了回答


Script

Q:我使用xLua作為游戲的內(nèi)嵌腳本語言,允許玩家自定義腳本。

現(xiàn)在有個玩家在腳本里面寫了一個死循環(huán),當(dāng)我用DoString去加載這個腳本時候會直接卡死,于是我在外面加入了一個Task:

var isSucceed = false;
var task = Task.Run(() => { 
isSucceed = sandbox.DoString(xxxx)//這里簡化一下.核心就是加載這個腳本執(zhí)行DoString
});bool isCompletedSuccessfully = task.Wait(TimeSpan.FromMilliseconds(1500)); //1.5s timeoutif (!isCompletedSuccessfully)
{CELog.LogError("加載腳本超時");isSucceed = false;luaEnv.Dispose(); //Kill掉當(dāng)前的Evnreturn; //不再加載后續(xù)腳本
}

現(xiàn)在是只要調(diào)用‘luaEnv.Dispose()’編輯器就直接閃退,無論是這里Timeout了調(diào)用,還是等幾秒以后。

我感覺是因為Task的Timeout只是在超時后回調(diào),但是此時Lua還在死鎖中,所以我無法Dispose。

官方的FAQ提了一句:

調(diào)用LuaEnv.Dispose崩潰,很可能是這個Dispose操作是由lua那驅(qū)動執(zhí)行,相當(dāng)于在lua執(zhí)行的過程中把lua虛擬機給釋放了,改為只由C#執(zhí)行即可。

我感覺和我這個情況是一樣的,應(yīng)該如何處理?

A:Update一下目前研究的進展:

這是找xLua求教的結(jié)果,目前滿足我自己的需求:
xlua DoString時候死循環(huán) C#端如何處理 · Issue #1077 · Tencent/xLua · GitHub

如果以上方法不滿足,還搞不定底層,可以嘗試以下幾個方向:

MoonSharp
MoonSharp

MoonSharp是純用C#寫的Lua,不過已經(jīng)不更新了。Discord還有活躍,問的問題都會解答。

https://gist.github.com/xanathar/2c777a79937398834ad4

用Hook的方式可以實現(xiàn)以上的需求。

優(yōu)點就是純C#的,相對來說好操作。不過就是性能弱,但是如果和我一樣Lua只是用于玩家的Mod。其實還好,因為Lua端的邏輯會很弱。

nLua
Using Debug Hooks crashes Lua execution · Issue #56 · NLua/NLua · GitHub

nLua的DebugHook是直接被集成好的,xLua的Hook大佬沒給暴露出來,要自己搞。

uLua
Lua Modding Framework | Utilities Tools | Unity Asset Store

Assetstore上面的資源,近期還在更新。

感謝題主Eran@UWA問答社區(qū)提供了回答


Texture

Q:從Texture arrays文檔(Unity - Manual: Texture arrays)上來看,GLES3 Metal 已經(jīng)可以支持了。

最容易想到的就是地形的Splat層,如果是四層Splat,那么就可以用一個Texture2DArray來代替,好處是減少了Bind消耗。其中根據(jù)龔大(為什么要強調(diào)Texture2DArray在地形上的應(yīng)用? - 知乎)的意思來看,似乎還可以減少Splat采樣次數(shù),但根據(jù)自己的測試和理解來看并不行,因為Texture2DArray的Slice之間并不會Blending,不知是不是我理解問題。

我使用一個Texture2DArray來代替4層的Splat地形,從xCode上看開銷,并沒有任何的減小,那目前來看這么做地形的意義就不是很大了。AssetStore上有一個插件叫MegaSplat就是使用Texture2DArray來達到很多層混合。

目前想到的Texture2DArray還有一個可以利用的地方是場景貼圖。比如場景用到了多張 1024的貼圖,或者多張Lightmap,原來由于貼圖不同導(dǎo)致StaticBatching無法合并,現(xiàn)在就可以使用Texture2DArray來做了。

還有比如UI上的Icon之類的,可以合并到一個Texture2DArray來達到DrawCall的合并。

目前Texture2DArray最不好的地方是,只能通過代碼來創(chuàng)建,沒有編輯器的支持。如果要離線制作Texture2DArray,就需要為不同的平臺準(zhǔn)備多份資源了。

請問大家有沒有Texture2DArray的經(jīng)驗可以分享呢,已經(jīng)使用或者有計劃使用的?

A1:研究了一下Texture2DArray,看起來它是將多個2D的Texture組合起來變成一個對象,所以在使用的時候只需要綁定一次,就可以采樣多個2D Texture。的確如題主所說,采樣的時候還是一次只能采樣一個指定的Slice,Blend也需要另外的Shader代碼來完成。

題主說了:

其中根據(jù)龔大的意思來看,似乎還可以減少splat采樣次數(shù),但根據(jù)自己的測試和理解來看并不行。

我感覺他的意思可能是:并不是每次采樣必須把所有的Slice都采了,而是可以只采其中一部分。估計原本想表達的是一次采樣只采一個Slice。

我使用一個Texture2DArray來代替4層的Splat地形,從xcode上看開銷,并沒有任何的減小,那目前來看這么做地形的意義就不是很大了。

如果單從性能上看,Texture2DArray比Texture2D的確只是減少紋理綁定的開銷,然后在游戲引擎中可能會對合批產(chǎn)生影響。其他的做法跟普通Texture2D是一樣的。Texture2DArray比Texture3D在LOD處理上不同,Texture3D會減少Slice,這并不是渲染Terrain時想要的。然后Texture2DArray在Filter的時候只會在u,v上做,而Texture3D還會在d上做,所以這部分Texture2DArray也比Texture3D性能更好。綜合這些因素可能就是推薦渲染Terrain使用Texture2DArray的原因。題主通過實驗說明Texture2DArray渲染地形沒有減少開銷,也有可能是因為一般一個場景就一個地形,從綁4張紋理變成綁1張就少了幾毫秒,而且也不是每幀都綁,所以從整體效果上看表現(xiàn)的不明顯。

--- 更新 2018.2.22

做了個簡單實驗驗證了一下,下圖分別是用Texture2D和Texture2DArray渲染地形結(jié)果和GLES API調(diào)用。實驗設(shè)備為三星s6。

Texture2D:

Texture2DArray:

其中,GLES API調(diào)用圖中紅色框表示紋理綁定的API調(diào)用,綠色框表示渲染API調(diào)用。WT表示了該API調(diào)用的耗時,單位為納秒。從Texture2D圖中可知一共有5次紋理綁定,分別對應(yīng)于材質(zhì)中的5張紋理綁定,而Texture2DArray圖中只有兩次調(diào)用,分別是Splat紋理和四層混合紋理的綁定。從圖中可知一次glBindTexture的耗時大約為1000~10000ns,即最多0.01ms。因此,三次glBindTexture加上三次glActiveTexture也最多0.06ms。所以看不出來。

感謝ZFK@UWA問答社區(qū)提供了回答

A2:假如地形需要16張圖片,制作上確保同一位置最多受4張圖影響,是否可行?若可行是否可以理解為使用Texture2DArray比不使用節(jié)省了16-(4+1)=11次Sample,與相應(yīng)的Bind?(這個4也可能2或者10看需求,+1是因為要分別存索引跟權(quán)重,具體要不要+1視實際情況決定。)不使用Array時減少Sample次數(shù)也能用if判定但對GPU并行影響更大。

感謝makebalance@foxmail.com@UWA問答社區(qū)提供了回答


今天的分享就到這里。生有涯而知無涯,在漫漫的開發(fā)周期中,我們遇到的問題只是冰山一角,UWA社區(qū)愿伴你同行,一起探索分享。歡迎更多的開發(fā)者加入UWA社區(qū)。

UWA官網(wǎng):www.uwa4d.com
UWA社區(qū):community.uwa4d.com

?

http://aloenet.com.cn/news/37499.html

相關(guān)文章:

  • 關(guān)于政府補貼企業(yè)做網(wǎng)站的事免費推廣引流平臺
  • 精品課程網(wǎng)站建設(shè) 碧輝騰樂發(fā)稿網(wǎng)
  • 網(wǎng)站的外鏈?zhǔn)鞘裁醋鼍W(wǎng)站公司哪家正規(guī)
  • 如何用網(wǎng)頁設(shè)計制作個人網(wǎng)站seo優(yōu)化包括
  • 純色直播河南seo外包
  • android 做分享的網(wǎng)站seo的中文含義是
  • 做網(wǎng)站買了域名之后谷歌搜索官網(wǎng)
  • 學(xué)做網(wǎng)站平臺建立網(wǎng)站需要多少錢
  • 推廣方案如何寫南京網(wǎng)絡(luò)優(yōu)化公司有哪些
  • 抖音代運營服務(wù)協(xié)議網(wǎng)絡(luò)快速排名優(yōu)化方法
  • 構(gòu)建動態(tài)網(wǎng)站設(shè)計網(wǎng)絡(luò)公關(guān)公司聯(lián)系方式
  • 清遠專業(yè)網(wǎng)站建設(shè)服務(wù)網(wǎng)頁設(shè)計工作室長沙
  • 為什么要立刻做網(wǎng)站時事熱點新聞
  • 做a三級視頻在線觀看網(wǎng)站上海seo優(yōu)化bwyseo
  • 如何進行企業(yè)營銷型網(wǎng)站建設(shè)網(wǎng)站設(shè)計規(guī)劃
  • 網(wǎng)站開發(fā)有幾種語言網(wǎng)站推廣的常用途徑有哪些
  • 觸摸屏html網(wǎng)站搜索引擎哪個好用
  • 地方門戶類網(wǎng)站有哪些seo策略主要包括
  • 南京凱盛建設(shè)集團官方網(wǎng)站網(wǎng)絡(luò)營銷推廣專家
  • 網(wǎng)站入口設(shè)計規(guī)范seo優(yōu)化培訓(xùn)課程
  • 怎么把園林設(shè)計網(wǎng)站做的酷炫網(wǎng)絡(luò)推廣方案范文
  • 做網(wǎng)站用動易siteweaver cms還是phpcms精準(zhǔn)客戶信息一條多少錢
  • b2b電子商務(wù)網(wǎng)站的盈利模式有哪些中國十大小說網(wǎng)站排名
  • 文山建設(shè)局網(wǎng)站青海百度關(guān)鍵詞seo
  • 用動易做的校園網(wǎng)站如何注冊網(wǎng)站平臺
  • 想做個網(wǎng)站都需要什么短視頻如何引流與推廣
  • 做名片贊機器人電腦網(wǎng)站是多少整站快速排名
  • 怎么做自己的購物網(wǎng)站武漢搜索引擎排名優(yōu)化
  • 新手如何做網(wǎng)站運營搜一搜
  • 蚌埠網(wǎng)站建設(shè)電話舟山seo