• OpenGL ES着色器语言之静态使用(static use)和预处理


    OpenGL ES着色器语言之静态使用(static use)

     在OpenGL ES中有一个术语叫静态使用(static use),什么叫静态使用呢?

              在写代码中,对于一个变量可能具有以下三种情况:

    (1)不声明不引用(No Reference),呵呵,那就没有这个变量了,如一个空语句:

                            ;

    (2)声明,但是不使用(Declared, NO used)

                           attribute vec4 position;

    (3)声明,并使用(static use)

                           attribute vec4 position;

                           ...

                           gl_Position = position;//静态使用,static use

             因此,在官方文档中,对于静态变量的定义为:在着色器中预处理之后至少有一个语句在使用声明过的变量,哪怕这一句代码从来没有真正执行过。

      

    OpenGL ES着色器语言之预处理(preprocessing)

     着色器的预处理过程是指在着色代码真正开始在内存中执行之前的整个过程。那么预处理过程包含哪些工作呢?

    -----------------------------------------------------------------------------------------------------------------------------------------------

    (1)创建一个空着色器

    (2)链接源代码字符串

    (3)将源代码字符串替换空着色器中的源码

    (4)编译着色器(顶点、片元着色器)

    (5)创建一个空的可执行程序

    (6)链接着色器

    -----------------------------------------------------------------------------------------------------------------------------------------------

    以上即为OpenGL ES的预处理过程

  • 相关阅读:
    CodeForces 7B
    CodeForces 4D
    离散化
    线段树入门
    洛谷 P3951 小凯的疑惑(赛瓦维斯特定理)
    Codeforces 1295D Same GCDs (欧拉函数)
    Codeforces 1295C Obtain The String (二分)
    Codeforces 1295B Infinite Prefixes
    Codeforces 1295A Display The Number(思维)
    Codeforces 1294F Three Paths on a Tree(树的直径,思维)
  • 原文地址:https://www.cnblogs.com/Anita9002/p/4930830.html
Copyright © 2020-2023  润新知