當前位置:首頁 » 編程軟體 » 著色器編譯失敗

著色器編譯失敗

發布時間: 2022-11-07 15:24:49

⑴ WebGL的頂點著色器編譯失敗,問題,怎麼解決

WebGL里有頂點著色器和片段著色器兩種著色器。無論哪一種都可以使用GLSL來編寫。頂點著色器和片段著色器是相互依賴的,缺一不可,並且首先被調用的是頂點著色器。

⑵ 我的電腦一上CF就出來個 著色器無法編譯 該怎麼辦 跪求高手指教

首先用驅動人生這個軟體更新您的顯卡驅動,重新啟動後,下載CF客戶端,重新進行安裝,問題就可以解決

⑶ 合金彈頭7問題

DeSmuME 0.9.5 svn2809 x86
- 編譯於: Sep 3 2009 08:53:26

DirectX 輸入:
- 已成功初始化游戲手柄: USB Joystick
addonsChangePak
已成功初始化麥克風。
初始化 wpcap.dll 失敗 - SoftAP 支持已被關閉
WIFI: Ad-hoc: initialization successful.
OpenGL 模式: 硬體
沖突 : 鏈接著色器程序失敗 : Fragment shader(s) failed to link, vertex shader(s)
linked.

您的系統不支持著色器, 正在使用固定管線
(鏈接著色器程序失敗。)
模擬器暫停
已解密。
初始化 wpcap.dll 失敗 - SoftAP 支持已被關閉

ROM crc: 89F4BBA2

ROM serial: METALSLUG7___YM7JH4
成功載入 2466 - Metal Slug 7.nds
模擬器未暫停
WIFI: TX slot 2 trying to send a packet: TXCnt = 0008, TXBufLoc = 0000

⑷ glsl語言和c語言的區別·也就是不同的地方有哪些,明確點。謝謝嘍

變數

GLSL的變數命名方式與C語言類似。變數的名稱可以使用字母,數字以及下劃線,但變數名不能以數字開頭,還有變數名不能以gl_作為前綴,這個是GLSL保留的前綴,用於GLSL的內部變數。當然還有一些GLSL保留的名稱是不能夠作為變數的名稱的。

基本類型

除了布爾型,整型,浮點型基本類型外,GLSL還引入了一些在著色器中經常用到的類型作為基本類型。這些基本類型都可以作為結構體內部的類型。如下表:

類型 描述
void 跟C語言的void類似,表示空類型。作為函數的返回類型,表示這個函數不返回值。
bool 布爾類型,可以是true 和false,以及可以產生布爾型的表達式。
int 整型 代表至少包含16位的有符號的整數。可以是十進制的,十六進制的,八進制的。
float 浮點型
bvec2 包含2個布爾成分的向量
bvec3 包含3個布爾成分的向量
bvec4 包含4個布爾成分的向量
ivec2 包含2個整型成分的向量
ivec3 包含3個整型成分的向量
ivec4 包含4個整型成分的向量
mat2 或者 mat2x2 2×2的浮點數矩陣類型
mat3或者mat3x3 3×3的浮點數矩陣類型
mat4x4 4×4的浮點矩陣
mat2x3 2列3行的浮點矩陣(OpenGL的矩陣是列主順序的)
mat2x4 2列4行的浮點矩陣
mat3x2 3列2行的浮點矩陣
mat3x4 3列4行的浮點矩陣
mat4x2 4列2行的浮點矩陣
mat4x3 4列3行的浮點矩陣
sampler1D 用於內建的紋理函數中引用指定的1D紋理的句柄。只可以作為一致變數或者函數參數使用
sampler2D 二維紋理句柄
sampler3D 三維紋理句柄
samplerCube cube map紋理句柄
sampler1DShadow 一維深度紋理句柄
sampler2DShadow 二維深度紋理句柄

結構體

結構體

結構體可以組合基本類型和數組來形成用戶自定義的類型。在定義一個結構體的同時,你可以定義一個結構體實例。或者後面再定義。
struct surface {float indexOfRefraction;

vec3 color;float turbulence;

} mySurface;

surface secondeSurface;

你可以通過=為結構體賦值,或者使用 ==,!=來判斷兩個結構體是否相等。

mySurface = secondSurface;

mySurface == secondSurface;

只有結構體中的每個成分都相等,那麼這兩個結構體才是相等的。訪問結構體的內部成員使用. 來訪問。

vec3 color = mySurface.color + secondSurface.color;

結構體至少包含一個成員。固定大小的數組也可以被包含在結構體中。GLSL的結構體不支持嵌套定義。只有預先聲明的結構體可以嵌套其中。
struct myStruct {

vec3 points[3]; //固定大小的數組是合法的

surface surf; //可以,之前已經定義了

struct velocity { //不合法float speed;

vec3 direction;

} velo;

subSurface sub; //不合法,沒有預先聲明;};struct subSurface { int id;
};

數組

GLSL中只可以使用一維的數組。數組的類型可以是一切基本類型或者結構體。下面的幾種數組聲明是合法的:
surface mySurfaces[];
vec4 lightPositions[8];
vec4 lightPos[] = light www.hnne.com Positions;const int numSurfaces = 5;
surface myFiveSurfaces[numSurfaces];float[5] values;

指定顯示大小的數組可以作為函數的參數或者使返回值,也可以作為結構體的成員.數組類型內建了一個length()函數,可以返回數組的長度。

lightPositions.length() //返回數組的大小 8

最後,你不能定義數組的數組。

修飾符

變數的聲明可以使用如下的修飾符。

修飾符 描述
const 常量值必須在聲明是初始化。它是只讀的不可修改的。
attribute 表示只讀的頂點數據,只用在頂點著色器中。數據來自當前的頂點狀態或者頂點數組。它必須是全局范圍聲明的,不能再函數內部。一個attribute可以是浮點數類型的標量,向量,或者矩陣。不可以是數組或則結構體
uniform 一致變數。在著色器執行期間一致變數的值是不變的。與const常量不同的是,這個值在編譯時期是未知的是由著色器外部初始化的。一致變數在頂點著色器和片段著色器之間是共享的。它也只能在全局范圍進行聲明。
varying 頂點著色器的輸出。例如顏色或者紋理坐標,(插值後的數據)作為片段著色器的只讀輸入數據。必須是全局范圍聲明的全局變數。可以是浮點數類型的標量,向量,矩陣。不能是數組或者結構體。
centorid varying 在沒有多重采樣的情況下,與varying是一樣的意思。在多重采樣時,centorid varying在光柵化的圖形內部進行求值而不是在片段中心的固定位置求值。
invariant (不變數)用於表示頂點著色器的輸出和任何匹配片段著色器的輸入,在不同的著色器中計算產生的值必須是一致的。所有的數據流和控制流,寫入一個invariant變數的是一致的。編譯器為了保證結果是完全一致的,需要放棄那些可能會導致不一致值的潛在的優化。除非必要,不要使用這個修飾符。在多通道渲染中避免z-fighting可能會使用到。
in 用在函數的參數中,表示這個參數是輸入的,在函數中改變這個值,並不會影響對調用的函數產生副作用。(相當於C語言的傳值),這個是函數參數默認的修飾符
out 用在函數的參數中,表示該參數是輸出參數,值是會改變的。
inout 用在函數的參數,表示這個參數即是輸入參數也是輸出參數。

內置變數

內置變數可以與固定函數功能進行交互。在使用前不需要聲明。頂點著色器可用的內置變數如下表:

名稱 類型 描述
gl_Color vec4 輸入屬性-表示頂點的主顏色
gl_SecondaryColor vec4 輸入屬性-表示頂點的輔助顏色
gl_Normal vec3 輸入屬性-表示頂點的法線值
gl_Vertex vec4 輸入屬性-表示物體空間的頂點位置
gl_MultiTexCoordn vec4 輸入屬性-表示頂點的第n個紋理的坐標
gl_FogCoord float 輸入屬性-表示頂點的霧坐標
gl_Position vec4 輸出屬性-變換後的頂點的位置,用於後面的固定的裁剪等操作。所有的頂點著色器都必須寫這個值。
gl_ClipVertex vec4 輸出坐標,用於用戶裁剪平面的裁剪
gl_PointSize float 點的大小
gl_FrontColor vec4 正面的主顏色的varying輸出
gl_BackColor vec4 背面主顏色的varying輸出
gl_FrontSecondaryColor vec4 正面的輔助顏色的varying輸出
gl_BackSecondaryColor vec4 背面的輔助顏色的varying輸出
gl_TexCoord[] vec4 紋理坐標的數組varying輸出
gl_FogFragCoord float 霧坐標的varying輸出

片段著色器的內置變數如下表:

名稱 類型 描述
gl_Color vec4 包含主顏色的插值只讀輸入
gl_SecondaryColor vec4 包含輔助顏色的插值只讀輸入
gl_TexCoord[] vec4 包含紋理坐標數組的插值只讀輸入
gl_FogFragCoord float 包含霧坐標的插值只讀輸入
gl_FragCoord vec4 只讀輸入,窗口的x,y,z和1/w
gl_FrontFacing bool 只讀輸入,如果是窗口正面圖元的一部分,則這個值為true
gl_PointCoord vec2 點精靈的二維空間坐標范圍在(0.0, 0.0)到(1.0, 1.0)之間,僅用於點圖元和點精靈開啟的情況下。
gl_FragData[] vec4 使用glDrawBuffers輸出的數據數組。不能與gl_FragColor結合使用。
gl_FragColor vec4 輸出的顏色用於隨後的像素操作
gl_FragDepth float 輸出的深度用於隨後的像素操作,如果這個值沒有被寫,則使用固定功能管線的深度值代替

表達式

操作符

GLSL語言的操作符與C語言相似。如下表(操作符的優先順序從高到低排列)

操作符 描述
() 用於表達式組合,函數調用,構造
[] 數組下標,向量或矩陣的選擇器
. 結構體和向量的成員選擇
++ – 前綴或後綴的自增自減操作符
+ – ! 一元操作符,表示正 負 邏輯非
* / 乘 除操作符
+ - 二元操作符 表示加 減操作
<> <= >= == != 小於,大於,小於等於, 大於等於,等於,不等於 判斷符
&& || ^^ 邏輯與 ,或, 異或
?: 條件判斷符
= += –= *= /= 賦值操作符
, 表示序列

像 求地址的& 和 解引用的 * 操作符不再GLSL中出現,因為GLSL不能直接操作地址。類型轉換操作也是不允許的。 位操作符(&,|,^,~, <<, >> ,&=, |=, ^=, <<=, >>=)是GLSL保留的操作符,將來可能會被使用。還有求模操作(%,%=)也是保留的。

數組訪問

數組的下標從0開始。合理的范圍是[0, size - 1]。跟C語言一樣。如果數組訪問越界了,那行為是未定義的。如果著色器的編譯器在編譯時知道數組訪問越界了,就會提示編譯失敗。

vec4 myColor, ambient, diffuse[6], specular[6];

myColor = ambient + diffuse[4] + specular[4];

構造函數

構造函數可以用於初始化包含多個成員的變數,包括數組和結構體。構造函數也可以用在表達式中。調用方式如下:

vec3 myNormal = vec3(1.0, 1.0, 1.0);

greenTint = myColor + vec3(0.0, 1.0, 0.0);

ivec4 myColor = ivec4(255);

還可以使用混合標量和向量的方式來構造,只要你的元素足以填滿該向量。

vec4 color = vec4(1.0, vec2(0.0, 1.0), 1.0);

vec3 v = vec3(1.0, 10.0, 1.0);

vec3 v1 = vec3(v);

⑸ apex編譯著色器怎麼解決

在程序設置先選中《Apex英雄》,然後找到著色緩存器,先關閉然後點擊應用,然後再重新打開再次應用。等載入著色器成功,之後在進入《Apex英雄》就不需要每次載入著色器了。

首先在節目設置中選中 Apex的英雄,然後找到顏色緩存器,關閉然後點擊應用,然後再重新打開應用程序。等待著色器被載入成功,之後每次進入 Apex英雄都不再需要每次載入顏色。

韓國Nexon子公司Symmetricspace開發的新款休閑射擊網游《APEX》。《APEX》是一款休閑動作TPS,玩家可以體驗簡單、暢快的戰斗。

游戲介紹:

韓國Nexon子公司Symmetricspace開發的新款休閑射擊網游《APEX》。《APEX》是一款休閑動作TPS,玩家可以體驗簡單、暢快的戰斗。游戲標榜「正面突擊」即固定正面視角,使初學者也可簡單上手。此外,作為休閑游戲,玩家可以利用眾多補助道具展開快速的攻防戰斗。

《APEX》的游戲模式有玩家間對戰模式(PVP)、玩家們共同協力鎮壓敵軍的模式(PVE),此外游戲中還添加了多樣的迷你游戲。

⑹ 穿越火線cannot compile shader怎麼搞

cannot compile shader譯成中文是:不能編譯著色器。
從顯卡驅動入手,有時候顯卡驅動過舊時也會出現顯示的異常,將顯卡驅動升級更新到最新,也可以參照官網按其要求升級顯卡驅動,然後進入游戲測試是否正常顯示。
畫面調到最低特效然後測試,最低效果OK再逐步往上調試,直到適合本機的最佳顯示效果。
也可以重新安裝游戲、重新安裝系統,這是以上方案都不能解決的備用方案。

⑺ 啟動AE CC時,提示:光線追蹤3D,初始著色器編譯失敗,如圖中:

去裝這個就不會失敗了!!
Adobe After Effects CC V12官方簡體中文版[含破解補丁]
http://www.ibcde.com/thread-6515-1-1.html
(出處: 致學網)

⑻ 《使命召喚》cod17著色器為什麼一直百分之0

游戲丟失了一些重要文件。

1、修復游戲:一般出現著色器卡住不動的原因很可能是游戲丟失了一些重要文件,進行游戲修復一般即可解決。

2、著色器問題:玩家們可以在游戲中的畫面設置中進行著色器的重新安裝操作,點擊後游戲會自動刪除著色器重新安裝。

3、卸載並重新安裝游戲:游戲可能丟失了比較重要的文件,並且游戲自身也無法修復,這種情況下只能卸載游戲重裝來解決,以上兩種方法都無法解決著色器安裝問題時,在選擇第三種。

相關信息

武器分為主武器和副武器兩種,功能和外觀均採用現代設計,可為玩家提供全新的功能特性。武器可分為彈丸型、近戰型、能量型和原型武器種類,玩家可使用不同的配件根據自己的玩法進行調整。游戲中有上百種武器可解鎖。

玩家將通過完成多人比賽獲得製作經費,製作源性武器還將附帶槍械技能,可以改變原型武器的功能,使其符合玩家打法。

⑼ One or more shaders failed to compile,This likely means that you either need new graphics card driv

一個或多個著色未能編寫,這可能意味著你要麼需要新的圖形卡驅動或你的圖形卡不支持材質模型3

換顯卡

熱點內容
我的世界伺服器崩了重啟 發布:2025-05-14 16:09:37 瀏覽:44
android深拷貝 發布:2025-05-14 16:09:35 瀏覽:153
cf電腦版轉伺服器神器還在嗎 發布:2025-05-14 16:09:02 瀏覽:211
百度文庫伺服器如何搭建 發布:2025-05-14 16:09:00 瀏覽:248
安卓微信刪除的好友怎麼找回 發布:2025-05-14 16:08:56 瀏覽:706
iphone的訪問限制密碼忘記了怎麼辦 發布:2025-05-14 16:08:56 瀏覽:184
php對象轉換成數組 發布:2025-05-14 16:07:55 瀏覽:27
java服務端緩存 發布:2025-05-14 15:53:37 瀏覽:105
php判斷postget 發布:2025-05-14 15:34:24 瀏覽:357
linux查看電腦配置 發布:2025-05-14 15:32:07 瀏覽:317