glsl着色器学习(四)

前面讲到已经创建了程序对象,链接到顶点着色器和片段着色器,接着继续。


const positionLoc = gl.getAttribLocation(prg, 'position');
const normalLoc = gl.getAttribLocation(prg, 'normal');
const texcoordLoc = gl.getAttribLocation(prg, 'texcoord');

const projectionLoc = gl.getUniformLocation(prg, 'projection');
const modelViewLoc = gl.getUniformLocation(prg, 'modelView');
const diffuseLoc = gl.getUniformLocation(prg, 'diffuse');
const decalLoc = gl.getUniformLocation(prg, 'decal');
const diffuseMultLoc = gl.getUniformLocation(prg, 'diffuseMult');
const lightDirLoc = gl.getUniformLocation(prg, 'lightDir');
获取属性变量位置
  1. const positionLoc = gl.getAttribLocation(prg,'position');
    1. 使用gl.getAttribLocation方法从程序对象(上篇文章中的prg)中获取名为'position'的属性变量的位置。这个属性变量在顶点着色器中用于存储顶点的位置信息。在后续渲染过程中,可以通过这个位置来设置顶点的位置数据。
  2. const normalLoc = gl.getAttribLocation(prg,'normal');
    1. 获取名为'normal'的属性变量的位置,该变量存储顶点的法线信息,用于光照计算等。
  3. const texcoordLoc = gl.getAttribLocation(prg,'texcoord');
    1. 获取名为"texcoord"的属性变量的位置,存储顶点的纹理坐标信息,用于确定如何从纹理图像中采样颜色值。
获取统一变量位置
  1. const projectionLoc = gl.getUniformLocation(prg,'projection');
    1. 使用gl.getUniformLocation方法从程序对象中获取为名'projection'的统一变量的位置。这个统一变量在顶点着色器和片段着色器中用于存储投影矩阵,它定义了将3D场景投影到2D屏幕上的方式。
  2. const modelViewLoc = gl.getUniformLocation(prg,'modelView');
    1. 获取名为“modelView”的统一变量位置,存储模型视图矩阵,用于将顶点从模型空间转换到视图空间。
  3. const diffuseLoc = gl.getUniformLocation(prg,'diffuse');
    1. 获取名为'diffuse'的统一变量位置,对应一个二维纹理采样器,用于从基本颜色中采样颜色值。
  4. const decalLoc = gl.getUniformLocation(prg,'decal');
    1. 获取名为'decal'的统一变量位置,对应一个二维纹理采样器,用于从贴花纹理中采样颜色值。
  5. const diffuseMultLoc = gl.getUniformLocation(prg,'diffuseMult');
    1. 获取名为'diffuseMult'的统一变量的位置,存储一个四维向量,用于对基本颜色纹理进行缩放。
  6. const lightDirLoc = gl.getUniformLocation(prg,'lightDir');
    1. 获取名为'lightDir'的统一变量的位置,存储光照方向向量,用于光照计算。
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

superTiger_y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值