最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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ó)家法律
日喀则市| 南丰县| 社旗县| 舒城县| 南汇区| 靖宇县| 科技| 甘洛县| 蒲江县| 开封市| 上栗县| 隆化县| 宜州市| 文山县| 安义县| 育儿| 治县。| 怀仁县| 阳春市| 灵石县| 英德市| 营山县| 塘沽区| 崇阳县| 台北市| 宝丰县| 永寿县| 杭锦后旗| 佛山市| 临潭县| 海林市| 马龙县| 泊头市| 文水县| 磐安县| 枣阳市| 筠连县| 潼关县| 中西区| 西乌珠穆沁旗| 西安市|