WebGL中着色器shader的处理方法

在WebGL中,不存在固定渲染管线,所有坐标变换需通过着色器完成。着色器分为顶点着色器和片段着色器,用于处理几何图形顶点和像素。着色器可通过HTML的script标签或直接在JavaScript中定义。

关于着色器

WebGL中,所谓的固定渲染管线是不存在的。估计会有人问,什么是固定渲染管线?先来简单说明一下。

固定渲染管线,简单来说,就是3d渲染所进行的一连串的计算流程,就像流水线一样。(说的有点太简单了。)

固定渲染管线中,上次所说的模型,视图,投影的坐标变换都会替我们完成。不需要理解细节,只需要知道所有的这些坐标变换都包含在里面,都会帮我们计算好。

如果有了固定渲染管线,编写程序就比较容易了,因为所有的变换都是由固定渲染管线来完成的,但是缺点就是自由度低。固定渲染管线只能完成一些最基本的操作,如果想要做一些特殊的处理,就比较麻烦了。

好了,固定渲染管线就说到这里了。

前面说了,WebGL中不存在固定渲染管线。也就是说,坐标变换必须全部由自己来做。而且,这个记述了坐标变换的机制就叫做着色器(Shader)。

这样可以由程序员控制的机制叫做可编辑渲染管线。而着色器又有 处理几何图形顶点的顶点着色器和处理像素的片段着色器两种类型。

由于WebGL中没有固定管线,所以必须准备好顶点着色器和片段着色器。

固定渲染管线与可编程渲染管线的区别: https://www.cnblogs.com/lihonglin2016/p/6270771.html

着色器的处理方法

顶点着色器和片段着色器要怎么准备呢?

实际上,着色器的添加可以有多种做法。着色器是由程序员自己编写的,而且着色器的代码就是简单的字符串而已。所以,不管用什么方法,只要把这个着色器字符串传给程序就可以了。

最简单的方法,就是把着色器记录在HTML中。使用这种方法的话,是利用HTML的script标签来做的。下面是一个简单的例子。

写在HTML中:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值