Shader学习 Hello World!

本来是准备学习有关 光照和阴影算法 的,然后发现都是用shader做的。虽然做游戏有一段时间,主要接触的也是图形学部分,在OpenGL下工作,也就没有学shader了。

几个月前看过那个<GPU编程之阳春白雪与下里巴人>,但没有实践过,但也算稍微有个了解。

这次学习,主要以PowerVR的示例为教程。它有一个帮助手册<Migration from OpenGL ES 1.x to OpenGL ES 2.0 API.1.1f.External>,里面作了shader使用的说明,这是可以跟它的示例程序印证的。前面说的那本书,更全面和偏理论一点,没有相关示例进行验证。

 

第一课 Hello World:

个人整理之后觉得可以如此划分:

1: 初始化OpenGL ES.

2: Load/Compile/Link Vert/Frag shader program.

3: Creat/Use shader program

4: Gen buffer(for vertex data)

5: Render Loop.

    将在shader程序里面用到的参数传进去,如projection model view matrix, vertex pos, uv, color等。

    vert shader 与 frag shader 传参. 例如光照的计算,在vert shader里面用PMVMatrix点乘顶点normal,再点乘光的方向,得出本顶点光照的强度,然后在frag shader里面用这个去乘颜色值.

    draw array.

 

    这里有几个名词:

    Uniforms:程序用它把原始数据传递给shader。主要是比如world view projection matrix, light direction, material等,它在这一段数据渲染过程中是不变的.

    Attributes: 用来传递顶点有关的数据,如pos, normal, uv等,它随顶点的不同而不同,这是跟Uniform的差别所在。

    Varyings: 用来把数据从vertex shader传递到fragment shader.

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值