美文网首页音视频学习
Opengl es shading language

Opengl es shading language

作者: 众少成多积小致巨 | 来源:发表于2019-07-29 18:33 被阅读0次

    着色器语言学习推荐:3.0文档,对应opengl es 3.0(默认1.0 对应opengl es 2.0)

    概述

    着色器语法和c/C++类似

    包括变量类型、关键字、修饰符、内嵌函数、内嵌特殊变量、内嵌常量、宏、预处理指令等主要内容

    如果是做游戏开发,写shader脚本,上面内容都要精通;但是不做游戏开发,知道变量类型,关键字,修饰符,和一些特殊内嵌特殊变量就可以了;因为你也不需要写复杂的shader脚本。。。

    对于有语言基础的,上述都很容易学习;就算忘记了,看一遍就ok了

    特别注意

    1、着色器版本(好像不同版本不兼容最好遵守各自语法)

    #version 300 es  或者不声明

    3.0中一个程序必有一个vetex shader 和一个fragment shader组成,且它们版本必须一致

    2、变量赋值

    变量构造器赋值

    变量不可隐式转换,使用构造器转换

    3、layout 限定符

    直接指定location,不需要opengl es查找位置

    4、out 和in

    vetex shader 的out 要在fragment shader 中同样定义(out --> in)

    5、fragment shader需要设置精度

     percision mediump float 所有float类型精度设这

    mediump float a   变量a精度

    6、shader 内嵌变量

    以gl_开始

    gl_Position : vetex shader中的vetex 位置

    简单示例

    我是一个android开发者,所以这里在AS写时,需要安装shader插件;这个插件只能提示语法错误,变量可以不存在,方法也可以不存在。。。

    shader插件

    shader 编写

    main函数,当shader被编译后,执行的主体

    layout 定义了索引

    in 输入

    out 输出

    gl_ 开头的 : 系统内嵌变量

    简单shader示例

    相关文章

      网友评论

        本文标题:Opengl es shading language

        本文链接:https://www.haomeiwen.com/subject/kyrirctx.html