<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 4.1 基本類型 定義:基本類型是由語言的某些關鍵字定義的類型 OpenGl著色語言中支持如下的基本類型: 透明類型 | 類型 | 含義 | |-|-| | void | 用于函數沒有返回值 | | bool | 條件類型,取值為true或者false | | int | 有符號的整型 | | uint | 無符號整型 | | float | 單精度浮點類型標量 | | double | 雙精度浮點類型標量 | | vec2 | 二維單精度浮點向量 | | vec3 | 三維單精度浮點向量 | | vec4 | 四維單精度浮點向量 | | dvec2 | 二維雙精度浮點向量 | | dvec3 | 三維雙精度浮點向量 | | dvec4 | 四維雙精度浮點向量 | | bvec2 | 二維布爾向量 | | bvec3 | 三維布爾向量 | | bvec4 | 四維布爾向量 | | ivec2 | 二維有符號整型向量 | | ivec3 | 三維有符號整型向量 | | ivec4 | 四維有符號整型向量 | | uvec2 | 二維無符號整型向量 | | uvec3 | 三維無符號整型向量 | | uvec4 | 四維無符號整型向量 | | mat2 | 2x2 的單精度浮點矩陣 | | mat3 | 3x3 的單精度浮點矩陣 | | mat4 | 4x4 的單精度浮點矩陣 | | mat2x2 | 2x2 的單精度浮點矩陣 | | mat2x3 | 2x3 的單精度浮點矩陣 | | mat2x4 | 2x4 的單精度浮點矩陣 | | mat3x2 | 3x2 的單精度浮點矩陣 | | mat3x3 | 3x3 的單精度浮點矩陣 | | mat3x4 | 3x4 的單精度浮點矩陣 | | mat4x2 | 4x2 的單精度浮點矩陣 | | mat4x3 | 4x3 的單精度浮點矩陣 | | mat4x4 | 4x4 的單精度浮點矩陣 | | dmat2 | 2x2 的雙精度浮點矩陣 | | dmat3 | 3x3 的雙精度浮點矩陣 | | dmat4 | 4x4 的雙精度浮點矩陣 | | dmat2x2 | 2x2 的雙精度浮點矩陣 | | dmat2x3 | 2x3 的雙精度浮點矩陣 | | dmat2x4 | 2x4 的雙精度浮點矩陣 | | dmat3x2 | 3x2 的雙精度浮點矩陣 | | dmat3x3 | 3x3 的雙精度浮點矩陣 | | dmat3x4 | 3x4 的雙精度浮點矩陣 | | dmat4x2 | 4x2 的雙精度浮點矩陣 | | dmat4x3 | 4x3 的雙精度浮點矩陣 | | dmat4x4 | 4x4 的雙精度浮點矩陣 | ``` Note: 下表所說"訪問紋理","sampler*"不透明類型訪問紋理,"image*"不透明類型訪問圖像,具有指定的類型。 ``` 浮點不透明類型: | 類型 | 含義 | |-|-| | sampler1D <br>texture1D <br>image1D | 訪問1D紋理的句柄 | | sampler1DShadow | 訪問1D深度紋理的句柄 | | sampler1DArray <br>texture1DArray <br>image1DArray | 訪問1D數組紋理的句柄 | | sampler1DArrayShadow | 訪問1D深度紋理數組的句柄 | | sampler2D <br>texture2D <br>image2D | 訪問2D紋理的句柄 | | sampler2DShadow | 訪問2D深度紋理的句柄 | | sampler2DArray <br>texture2DArray <br>image2DArray | 訪問2D數組紋理的句柄 | | sampler2DArrayShadow | 訪問2D深度紋理數組的句柄 | | sampler2DMS <br>texture2DMS <br>image2DMS | 訪問2D多重采樣紋理的句柄 | | sampler2DMSArray <br>texture2DMSArray <br>image2DMSArray | 訪問2D多重采樣紋理數組的句柄 | | sampler2DRect <br>texture2DRect <br>image2DRect | 訪問2D矩形紋理的句柄 | | sampler2DRectShadow | 通過比較訪問矩形紋理的句柄 | | sampler3D <br>texture3D <br>image3D | 訪問3D紋理的句柄 | | samplerCube <br>textureCube <br>imageCube | 訪問立方體映射紋理的句柄 | | samplerCubeShadow | 通過比較訪問立方體映射深度紋理的句柄 | | samplerCubeArray <br>textureCubeArray <br>imageCubeArray | 訪問立方體映射數組紋理的句柄 | | samplerCubeArrayShadow | 通過比較訪問立方體映射數組深度紋理的句柄 | | samplerBuffer <br>textureBuffer <br>imageBuffer | 用于訪問緩沖區紋理的句柄 | | subpassinput | 用于訪問浮點subpass輸入的句柄 | | subpassInputMS | 用于訪問多重采樣浮點 subpass 輸入的句柄 | 有符號整型的不透明類型: | 類型 | 含義 | |-|-| | isampler1D <br>itexture1D <br>iimage1D | 訪問整型1D紋理的句柄 | | isampler1DArray <br>itexture1DArray <br>iimage1DArray | 訪問整型1D數組紋理的句柄 | | isampler2D <br>itexture2D <br>iimage2D | 訪問整型2D紋理的句柄 | | isampler2DArray <br>itexture2DArray <br>iimage2DArray | 訪問整型2D數組紋理的句柄 | | isampler2DMS <br>itexture2DMS <br>iimage2DMS | 訪問整型2D多重采樣紋理的句柄 | | isampler2DMSArray <br>itexture2DMSArray <br>iimage2DMSArray | 訪問整型2D多重采樣紋理數組的句柄 | | isampler2DRect <br>itexture2DRect <br>iimage2DRect | 訪問整型2D矩形紋理的句柄 | | isampler3D <br>itexture3D <br>iimage3D | 訪問整型3D紋理的句柄 | | isamplerCube <br>itextureCube <br>iimageCube | 訪問整型立方體映射紋理的句柄 | | isamplerCubeArray <br>itextureCubeArray <br>iimageCubeArray | 訪問整型立方體映射數組紋理的句柄 | | isamplerBuffer <br>itextureBuffer <br>iimageBuffer | 用于訪問整型緩沖區紋理的句柄 | | isubpassinput | 用于訪問整型subpass輸入的句柄 | | isubpassInputMS | 用于訪問多重采樣整型 subpass 輸入的句柄 | 無符號整型的不透明類型: | 類型 | 含義 | |-|-| | isampler1D <br>itexture1D <br> iimage1D | 訪問無符號整型1D紋理的句柄 | | isampler1DArray <br>itexture1DArray <br>iimage1DArray | 訪問無符號整型1D數組紋理的句柄 | | isampler2D <br>itexture2D <br>iimage2D | 訪問無符號整型2D紋理的句柄 | | isampler2DArray <br>itexture2DArray <br>iimage2DArray | 訪問無符號整型2D數組紋理的句柄 | | isampler2DMS <br>itexture2DMS <br>iimage2DMS | 訪問無符號整型2D多重采樣紋理的句柄 | | isampler2DMSArray <br>itexture2DMSArray <br>iimage2DMSArray | 訪問無符號整型2D多重采樣紋理數組的句柄 | | isampler2DRect <br>itexture2DRect <br>iimage2DRect | 訪問無符號整型2D矩形紋理的句柄 | | isampler3D <br>itexture3D <br>iimage3D | 訪問無符號整型3D紋理的句柄 | | isamplerCube <br>itextureCube <br>iimageCube | 訪問無符號整型立方體映射紋理的句柄 | | isamplerCubeArray <br>itextureCubeArray <br>iimageCubeArray | 訪問無符號整型立方體映射數組紋理的句柄 | | isamplerBuffer <br>itextureBuffer <br>iimageBuffer | 用于訪問無符號整型緩沖區紋理的句柄 | | atomic_uint | 用于訪問無符號整數原子計數器的句柄 | | isubpassinput | 用于訪問無符號整型subpass輸入的句柄 | | isubpassInputMS | 用于訪問無符號多重采樣整型 subpass 輸入的句柄 | 采樣器不透明類型: | 類型 | 含義 | |-|-| | sampler | 訪問描述如何采樣一幅紋理的 狀態 的句柄 | | samplerShadow | 訪問描述如何采樣一幅深度紋理的 狀態 的句柄 | 此外,著色器可以使用數組和結構體聚合這些基本類型,以構建更復雜的類型。 沒有指針類型。 本規范中,聚合表示使用結構體或者數組(Matrices和Vectors不是聚合的類型)。集合體,矩陣和向量將統稱為復合體。 ## 4.1.1 Void 如果函數沒有返回值,必須使用void聲明。函數沒有默認的返回類型。void關鍵字不能用于其他的聲明中(空格式或者函數的實際參數除外),否則會產生編譯時錯誤。 ## 4.1.2 Boolean 布爾 定義:布爾類型是指布爾標量和向量類型(bool,bvec2,bvec3,bvec4)。 為了使代碼的條件執行更容易的表示,所以支持布爾類型,但是不期望硬件直接支持布爾類型的變量。真正的布爾類型僅僅保留意思為true或false中的一個值。GLSL中兩個關鍵字true和false被用作布爾常量。聲明布爾值,并可以選擇初始化,如以下示例所示: ``` bool success; bool done = false; ``` 用于條件跳轉的表達式(如果為for:?:,while,do-while)必須為bool類型。 ## 4.1.3 Integers ## 4.1.4 Floats ## 4.1.5 Vectors ## 4.1.6 Matrices, ## 4.1.7 Opaque Types 不透明類型 定義:不透明類型是語言隱藏的內部結構的類型。 如下小節列出的不透明類型,是聲明對其他實際上不透明對象訪問句柄的變量。這些對象通過內置函數訪問,不能通過直接讀或寫聲明的變量來實現。這些變量僅僅只能被聲明為函數參數或者uniform修飾符的變量。唯一一個可以使用內存修飾符的不透明類型是image類型。除了使用數組索引、結構體成員選擇、括號以外,不透明類型的變量不允許為表達式中的操作數,如果使用會導致編譯時錯誤。 不透明變量不能被當作左值(l-value)。因此不能用作out或inout的函數參數,也不能被賦值。這些用法都會產生編譯時錯誤。但是不透明變量可以通過in參數傳遞來匹配類型以及存儲修飾符。并且不能使用初始化來聲明。 因為單個不透明類型聲明有效地聲明了兩個對象,不透明句柄本身以及句柄操作的對象,所以存儲修飾符和內存修飾符都有空間。存儲修飾符修飾不透明句柄本身,內存修飾符修飾句柄操作的對象。 * 紋理組合采樣器 紋理組合采樣器類型(如sampler2D)是[基本類型](xxx)表中描述的用于訪問紋理的sampler類型(不包含sampler和samplerShadow)。對于不同的紋理目標,有不同的紋理組合采樣器類型如float、integer、unsigned integer數據類型。紋理的訪問通過內置紋理函數完成[紋理函數](xxx),`紋理組合采樣用來指定要訪問的紋理以及如何對其進行過濾`。 紋理組合的采樣器類型是不透明類型,聲明并具有上述不透明類型的行為。當在著色器中聚合到數組中時,只能使用動態Uniform的整數表達式對它們進行索引,否則結果會產生錯誤。 * Image 圖像類型是不透明類型,如上面對不透明類型所述進行聲明和表現。可以使用內存修飾符進一步修飾它們。當匯合到著色器中的數組時,只能使用動態Uniform的整數表達式對圖像進行索引,否則結果將不確定。 Image變量可以操作1D、2D、3D圖像,對應于一個綁定到圖像單元的單獨紋理圖像的全部或者部分。對于不同的紋理目標有不同的圖像類型如float、integer、unsigned integer。圖像的訪問必須使用與綁定到Image類型, 圖像的訪問必須使用與綁定到圖像單元的紋理目標匹配的Image類型,或者對于3D/數組非分層綁定的圖像應使用與圖像層的尺寸匹配的圖像類型(例如3D/2DArray/Cube/CubeArray的一層必須使用image2D,image1DArray的一層必須使用image1D,2DMSArray的一層必須使用image2DMS)。如果數據類型與圖像不匹配,或者如果格式布局修飾符與圖像單元類型不匹配,[OpenGL Specification](xxx)第8.25節"紋理圖像的加載和存儲",圖像訪問的結果是不確定的,但不能包括程序終止。 `Image變量用于圖像的加載,存儲和圖像函數中描述的原子功能`指定的圖像訪問。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看