zoukankan      html  css  js  c++  java
  • GLSL

    顶点着色器代码
    #version 330 core
    layout (location = 0) in vec3 aPos; 
    void main() 
        gl_Position = vec4(aPos.x, aPos.y, aPos.z, 1.0); 
    }
    GLSL版本号和OpenGL的版本是匹配的,比如说GLSL 330版本对应于OpenGL 3.3,我们同样明确表示我们会使用核心模式。
     
    使用in关键字,在顶点着色器中声明所有的输入顶点属性
    layout (location = 0)设定了输入变量的位置值
    顶点着色器的输出是预定义的gl_Position变量
     
     
    片段着色器代码
    #version 330 core
    out vec4 FragColor; 
    void main() 
        FragColor = vec4(1.0f, 0.5f, 0.2f, 1.0f); 
    }
    用out关键字声明输出变量
    发送方out一个变量,接收方in一个变量,当类型和名字都一样的时候,OpenGL就会把两个变量链接到一起,它们之间就能发送数据了(
     
    Uniform
    Uniform是一种从CPU中的应用向GPU中的着色器发送数据的方式
    uniform是全局的,全局意味着uniform变量必须在每个着色器程序对象中都是唯一的,而且它可以被着色器程序的任意着色器在任意阶段访问.
    如果你声明了一个uniform却在GLSL代码中没用过,编译器会静默移除这个变量
     
    因为OpenGL在其核心是一个C库,所以它不支持类型重载。
     
    类型:
    int、float、double、uint和bool
     
    容器有:向量(Vector)和矩阵(Matrix)
    一个向量的分量,使用vec.x、.y、.z和.w来获取它们的第1、2、3、4个分量
     
    通过glfwGetTime()获取运行的秒数,使用sin函数让值在0.0到1.0之间改变。
  • 相关阅读:
    Vim Reference
    Java 8 Consumer、Supplier、Predicate、Function
    Java 8 Stream 用法
    Java 基础 Builder模式
    Spring/Spring-Boot 学习 使用自定义的ArgumentResolver
    架构之分布式图片存储系统架构
    微服务和SOA服务
    Centos 上 Tengine安装
    .NET平台上插拔姿势的AOP
    P1424 刷题记录
  • 原文地址:https://www.cnblogs.com/lixiao24/p/11289374.html
Copyright © 2011-2022 走看看