apex出現著色器編譯問題
1. APEX英雄游戲都要載入著色器的解決方法
作為正野皮一款全新的科幻FPS游戲,《Apex英雄》以鮮明的美式動畫風格,獨特的逃殺模式,加上目前的免費游戲,舉差僅上線一周就吸引了2000萬玩家,席捲整個游戲界。盡管游戲發展迅速,但如在線失敗、游戲卡頓等問題,也讓橘子平台的老問題浮現。在此推薦使用專門為Apex准備電競線路的奇游加速器,可以有效地減少延遲,保證游戲的順利進行。
下面為大家准備了《Apex英雄》的各種著色問題解決方法,希望對大家有所幫助:
事實上,對游戲玩家來說,不管是著色器,還是色器緩存都不陌生。事實上,當我們看到地面、植被、水體等逼真的細節,以及清晰而清晰的反光效果時,都需要色器來完成。
方案一:
先打開N卡或N卡控制面板
在程序設置先選中《Apex英雄》,然後找到著色緩存器,先關閉然後點擊應用,然後再重新打開再次應用。等載入著色器成功,之後在進入《Apex英雄》就不需要每次載入著色器了。
首先在節目設置中選中Apex的英雄,脊衡然後找到顏色緩存器,關閉然後點擊應用,然後再重新打開應用程序。等待著色器被載入成功,之後每次進入Apex英雄都不再需要每次載入顏色。
方案二:
Valve表示,2017年7月開始,Valve公司表示,不管用戶的硬體設備是什麼,都會為用戶的顯卡下載預編譯(Pre-Compiled)的著色器配置,這明顯改善了初代游戲載入的時間,並且減少了卡頓,帶來更流暢的游戲體驗。對玩家來說,這是一個巨大的利好,並且對各種API都很有效。但是,由於需要附加的網路服務,可以想像每次游戲啟動後,分析用戶著色的使用報告會提升一小部分網路帶寬需求。
可以在設置當中看到新增的該功能,因為是新功能所以還沒有來得及翻譯,直接在控制器(Controller)設置的下面顯示為"ShaderPre-Caching",目前沒有太多設置,只有開關而已,說明部份寫的和更新日誌大同小異,意思都是會根據用戶的硬體情況下載預緩存的著色器配置。大家可以試試自己的游戲體驗是否有足夠的不同。
方案三:
當然,每次需要載入也有可能是網路問題導致的,這就需要一個穩定高速的加速器了,最好用奇游加速器,針對《Apex英雄》專線優化,緩存完整文件,不再每次載入。
奇游加速器
2. 著色器緩存生成器進出錯退出代碼
可以在電腦上解決。
1、打開顯卡設置,選擇APEX程序並將著色器緩存器改為開,隨後登錄APEX英雄,等待第一次編譯著色器,完成後以後就不需要再編譯了。
2、打開顯卡設置,選擇全程序設置,找到著色緩存大小,將設置驅動默認值改為無限制,隨後重啟游戲進入。
著色器(Shader)是用來實現圖像渲染的,用來替代固定渲染管線的可編輯程序。其中VertexShader(頂點著色器)主要負責頂點的幾何關系等的運算,PixelShader(像素著色器)主要負責片源顏色等的計算。著色器替代了傳統的固定渲染管線。
3. apex無法為紋理創建著色器資源
apex無法為紋理創建著色器資源解決方法:
1、找到Apex游戲當中的著色緩存器設置的選項。
2、將設置選項中著色器設置為開,點擊保存。
3、打開顯卡控制中心,找到著色器緩存大小,設置成無限制,重啟游戲進入即可。
4. apex著色器在哪個文件
打開游戲,如圖所示遇到著色器問題無法登錄游戲。如圖所示首先回到電腦桌面點擊滑鼠右鍵後選擇打開【NVIDIA控制面板】如圖所示隨後在陸游螞磨磨【管理3D設置中】添加【apex啟動早埋程序】即可解決著色器問題
5. 【安卓實踐】apex導致的安卓編譯失敗原因調查
在實現功能的時候,我把我的功能邏輯實現在libmeminfo.so庫當中。
由於我的功能需要調用libmemtrack.so庫中的一些函數,我就在libmeminfo的Androidbp中將libmemtrack.so動態連接過來了。如下:
這樣增加之後無論是在 其他so庫中調用我提供的方法,還是單獨編譯libmeminfo都可以編譯通過,並且功能驗證不會有問題。
但是當我帶patch編譯整個rom包的時候,卻報了以下錯誤:
拿到這個錯誤的時候,由於這個錯誤最多是「Unexpected file 'lib64/libmemtrack.so'」這一行與我的修改有關系,
所以我一度覺得不是我的問題。後來調查了兩個小時我才發現編譯錯誤的原因。
確實我的修改不會導致問題,但是在安卓編譯的過程中編譯com.android.runtime.debug時,編譯腳本會檢查/apex/com.android.runtime.debug/目錄下多個目錄lib/lib64/bin/以及lib/bionic等路徑下是否包含非法的so庫。
如果包含非法的so庫,就會在編譯腳本中報錯,導致rom包的編譯失敗。
修改編譯腳本,執行「make art-check-debug-apex-gen -j16」列印expected_paths如下:
可以看到libmeminfo.so包含在這些庫當中。
這意味著,如果我在libmeminfo.so中想要動態連接其他非expected_paths中的so庫,如libmemtrack,就會在編譯的時候把libmemtrack放在apex/com.anroid.runtime.debug/lib64/路徑下。
而編譯腳本會檢查此路徑下的庫是否都是expected_paths中所包含的庫,如果不是,就會報錯。
而這次報錯中之所以會有其他庫如libhwbinder.so,原因是libmemtrack動態連接了這些庫。
至此,問題原因調查完畢。
那隻能換一種方式實現我的功能了,至少不能放在libmeminfo.so中去實現。
6. 著色器緩存生成器進程退出代碼出錯
一、將著色緩存器的按鈕設置為開;
找到Apex游戲當中的著色緩存器設置的選項,將設置選項設置為開然後保存,重新打開之後等待著色器載入成功之後,之後就不需要每次都再編譯著色器了;
二、著色器緩存解決辦法:
1.找到n卡控制中心;
2.找到著色器緩存大小,設置成無限制,然後重啟游戲進入即可;