国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Unity-GLSL 著色器程序

2021-04-10 09:43 作者:unity_某某師_高錦錦  | 我要投稿

除了使用?Cg/HSL 著色器程序之外,還可以直接編寫(xiě) OpenGL 著色語(yǔ)言 (GLSL) 著色器。

但是,只有需要進(jìn)行測(cè)試時(shí),或者當(dāng)您知道目標(biāo)平臺(tái)僅限于 Mac OS X、OpenGL ES 移動(dòng)設(shè)備或 Linux 時(shí),才建議使用原始 GLSL。在所有正常情況下,Unity will 會(huì)在需要時(shí)將 Cg/HLSL 交叉編譯為優(yōu)化的 GLSL。

GLSL 代碼片段

在?GLSLPROGRAM?和?ENDGLSL?關(guān)鍵字之間編寫(xiě) GLSL 程序代碼片段。

在 GLSL 中,所有著色器函數(shù)入口點(diǎn)都必須名為?main()。Unity 加載 GLSL 著色器時(shí),會(huì)為頂點(diǎn)程序加載一次源代碼(使用?VERTEX?預(yù)處理器定義),然后為片元程序再加載一次(使用?FRAGMENT?預(yù)處理器定義)。所以,在 GLSL 代碼片段中將頂點(diǎn)程序和片元程序部分分開(kāi)的方法是在它們周?chē)由?#ifdef VERTEX ..#endif?和 #ifdef FRAGMENT ..#endif`。每個(gè) GLSL 代碼片段必須同時(shí)包含頂點(diǎn)程序和片元程序。

標(biāo)準(zhǔn) include 文件與 Cg/HLSL 著色器的 include 文件匹配;只是它們的擴(kuò)展名為?.glslinc

頂點(diǎn)著色器輸入來(lái)自預(yù)定義的 GLSL 變量(gl_Vertexgl_MultiTexCoord0?等等)或者是用戶(hù)定義的屬性。通常,只有切線(xiàn)矢量才需要用戶(hù)定義的屬性:

從頂點(diǎn)程序到片元程序的數(shù)據(jù)是通過(guò)?varying?變量傳遞的,例如:

外部 OES 紋理

Unity 在著色器編譯期間會(huì)進(jìn)行某些預(yù)處理;例如,根據(jù)圖形 API(GlES3 或 GLCore),texture2D/texture2DProj?函數(shù)可能會(huì)替換為?texture/textureProj。一些擴(kuò)展不支持新約定,最明顯的就是?GL_OES_EGL_image_external

如果希望在 GLSL 著色器中采樣外部紋理,請(qǐng)使用?textureExternal/textureProjExternal?調(diào)用,而不是?texture2D/texture2DProj。

示例:


Unity-GLSL 著色器程序的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
亳州市| 通榆县| 务川| 宁国市| 沽源县| 福鼎市| 当涂县| 淮安市| 红桥区| 康马县| 铅山县| 永吉县| 岚皋县| 平江县| 南昌县| 平顺县| 大姚县| 增城市| 肇东市| 共和县| 上高县| 米泉市| 乐安县| 陵水| 威海市| 防城港市| 舒城县| 滕州市| 吉木乃县| 金门县| 曲靖市| 阿拉善左旗| 常州市| 永平县| 阿拉善右旗| 泗阳县| 万州区| 河北区| 略阳县| 明星| 南昌市|