webgl学习之路(一)——基础概念shader

首先是shader,这个名词经常听,其实它就是一段代码。

然后有专门编写shader的语言,比如:

  1. 基于OpenGL的OpenGL Shading Language,简称GLSL。
  2. 基于DirectX的High Level Shading Language,简称HLSL。
  3. 还有NVIDIA公司的C for Graphic,简称Cg语言。

shader分为:顶点shader和片段(片元)shader

顶点shader顾名思义就是负责坐标中的顶点。还有每个顶点的颜色值。

当然它还负责将一些变量从顶点shader送往片段shader,比如将顶点颜色值送往片段shader。

片段shader的作用是渲染每个像素的颜色,当然这个颜色不单纯只字面意思的那种颜色,包括纹理等在每个像素上的颜色。


下面放一段shader代码

<script id="vertex_shader" type="shader/x-vertex">
    // 一个属性变量,将会从缓冲中获取数据
   attribute vec4 a_Position;

    // 所有着色器都有一个main方法
    void main() {
      // gl_Position 是一个顶点着色器主要设置的变量
      gl_Position = vec4(1.0, 1.0, 0.5, 1);
      gl_PointSize = 10.0;
    }
</script>
<script id="fragment_shader" type="shader/x-vertex">
   // 片断着色器没有默认精度,所以我们需要设置一个精度
    // mediump是一个不错的默认值,代表“medium precision”(中等精度)
    precision mediump float;
    void main() {
       // gl_FragColor是一个片断着色器主要设置的变量
       gl_FragColor = vec4(1, 0, 0.5, 1);
   }
</script>

vertex_shader这一段是顶点shader,fragment_shader这一段是片段shader。这一段代码的作用是渲染一个点。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值