? ? ? ? 最近遇到個棘手的問題:在供應(yīng)商提供的戴爾optiplex 3000的12代處理器主機的集成顯卡Intel(R) UHD Graphics 770上使用Viewport3D 渲染失?。?D模型顯示不了,或者是顯示不全),之前開發(fā)驗證使用的是集成顯卡Intel(R) UHD Graphics 630、集成顯卡Intel(R) HD Graphics 4600、集成顯卡Intel(R) UHD Graphics 6300的主機都是沒有問題的。
**************************************************************************************************************文章來源地址http://www.zghlxwxcb.cn/news/detail-481493.html
? ? ? ? 發(fā)現(xiàn)這個問題后,就瘋狂的在網(wǎng)上搜索,奈何百度必應(yīng)搜索出來的都沒有該問題的解決方法或者該類似問題的解決方法?;侍觳回?fù)有心人啊,折騰了三四天,終是把問題解決了,在此做個筆記和分享一下解決/排查的過程,以防哪天遇到同樣或者類似的問題,還是手足無措,白白花費時間。
**************************************************************************************************************
? ? ? ? 首先來了解一下該顯卡:顯卡英特爾 UHD Graphics 770 [渲染器數(shù)量 32 發(fā)布日期 2021 核心代號 Alder Lake 生產(chǎn)工藝 10 nm,主要集成在12代Alder Lake 架構(gòu)的各種處理器中,是集成顯卡。
**************************************************************************************************************
? ? ? ? 遇到該問題首先想到可能原因有3種:1、微軟系統(tǒng)中Viewport3D和Intel(R) UHD Graphics 770的驅(qū)動不兼容;2、軟件程序中使用的Viewport3D的寫法存在問題,就是代碼錯誤;3、電腦其他硬件如主板等和微軟組件不兼容,導(dǎo)致渲染加載3D模型失敗。
**************************************************************************************************************
排查經(jīng)過:過程比較繁瑣,如果想直接看到解決方法可以跳到第8點查看。
? ? ? ? 1、首先排查的是Viewport3D的程序,之前寫的都是直接前臺實現(xiàn)的模型和控制旋轉(zhuǎn),鏡頭遠近的相對比較復(fù)雜,然后就寫一個很簡單的示例(Viewport3D里面放一個按鈕)來驗證,是否是軟件寫的不正確,顯示正常如下圖。但是拷貝到那臺新主機上運行時,顯示還是不正確,只能看到右側(cè)的一點豎下來的邊。這就說明了不是程序?qū)懙挠袉栴}。左側(cè)圖為渲染失敗圖像;
? ? ? ?
? ? ? ? 2、會不會是Viewport3D程序中使用的.NET Framework版本和電腦系統(tǒng)或和電腦不兼容了?于是乎就把.NET Framework的版本修改了,使用了.NET Framework 4.5、.NET Framework 4.6、.NET Framework 4.7、.NET Framework 4.8的,編譯過后,運行后顯示結(jié)果也還是不正確。那就證明和.NET Framework的版本沒有關(guān)系。
? ? ? ?3、使用win+x快捷方式,才菜單中點擊【設(shè)備管理器】,進入到設(shè)備管理器界面,從顯示適配器樹,查看到Intel(R) UHD Graphics 770的驅(qū)動程序是已經(jīng)安裝成功的了,也是比較新的驅(qū)動程序。里面顯示兩個驅(qū)動程序,經(jīng)過查詢第二個驅(qū)動OrayIddDriver Device是向日葵的一個虛擬驅(qū)動程序。到此以為是第二驅(qū)動程序引起的,于是把第二驅(qū)動程序禁用了,然后運行Viewport3D的程序,結(jié)果大失所望,還是顯示不正常。
?????????4、然后覺得是不是Intel(R) UHD Graphics 770不兼容微軟系統(tǒng)Viewport3D這個功能呢?于是乎,把這個驅(qū)動也禁用了,結(jié)果驚奇的發(fā)現(xiàn),Viewport3D的程序顯示正常了。至此更加肯定是顯卡驅(qū)動存在問題了。
????????5、既然Intel(R) UHD Graphics770驅(qū)動有問題,之前的顯卡顯示沒有問題,那是否可以按集成顯卡Intel(R) UHD Graphics 630驅(qū)動呢?答案是否定的,770顯卡是不支持Intel(R) UHD Graphics 630驅(qū)動程序的。
? ? ? ? 6、下載個魯大師,先吧Intel(R) UHD Graphics770驅(qū)動卸載后,顯示兩個可安裝的驅(qū)動程序,分別安裝這兩個版本,結(jié)果還是顯示有問題,既然不行,是不是要更新一下戴爾相關(guān)的驅(qū)動程序呢?20230209 ?Intel-UHD-Graphics 770 驅(qū)動? —? 無效果、20210312 ?Intel-UHD-Graphics 770 驅(qū)動? —? 無效果、Intel-UHD-Graphics-Driver_PW4R2_WIN64_30.0.101.1218_A01.EXE? —? 無效果。
? ? ? ? 7、進入戴爾官方網(wǎng)站,下載并安裝SupportAssist,安裝完后檢查更新,發(fā)現(xiàn)存在要更新項目,比如主板程序,如果顯卡不是最新的也會顯示更新項,更新完后,顯示還是不正確。
?
????????8、最后冷靜的分析了一下,既然WPF中的Viewport3D類涉及到渲染、圖形加速,那肯定是和英特爾的顯卡(3D)功能、圖形屬性、圖形設(shè)置或者3D設(shè)置參數(shù)有關(guān)聯(lián),那就要找到設(shè)置的界面了,在電腦上找了好久,沒找到入口;無意中發(fā)現(xiàn)這個是要下載客戶端軟件才行,于是在window10系統(tǒng)自帶的微軟商店中下載了【英特爾 顯卡控制中心】這個程序,如圖。下載完后,進行安裝(過程是更新了一些驅(qū)動吧,具體是什么,沒有細看),安裝好后,沒有修改任何參數(shù),運行Viewport3D示例程序,發(fā)現(xiàn)顯示正確正常了,之后卸載這個控制軟件,重啟后顯示也正常了,至此該問題解決了。
?
? ? ? ? ?以上就本人在針對“Window10和Window11系統(tǒng),使用Viewport3D 渲染失敗問題-Intel(R) UHD Graphics 770驅(qū)動程序上使用Viewport3D顯示失敗問題”的分析和排查步驟了;
**************************************************************************************************************
? ? ? ? 最后的結(jié)論是:電腦供方提供過來的optiplex 3000的主機的集成顯卡Intel(R) UHD Graphics 770的驅(qū)動存在異常;為閹割版的驅(qū)動或安裝電腦時自動匹配的驅(qū)動存在不兼容; 無法使WPF Viewport3D類功能正常顯示;需要下載英特爾官方的顯卡控制中心程序,對顯卡進行更新。文章來源:http://www.zghlxwxcb.cn/news/detail-481493.html
**************************************************************************************************************
到了這里,關(guān)于在Window10和Window11系統(tǒng),WPF使用Viewport3D 渲染失敗問題解決方案的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!