OpenGL在不同着色器之间传递数据

通过上一篇的动态移动的三角形,知道关键字inout的用法之后,可以动态的改变三角形渲染的位置(也就是改变了动态改变顶点坐标了),咱们知道这个三角形的颜色是在片段着色器里面进行控制的,那是不是也可以动态的去控制这个颜色。

那就捋一捋,通过OpenGL管线咱们知道,数据会先进入顶点着色器,最后才到片段着色器中,那么,要能动态改变片段着色器中的颜色,这个数据还是得先能进入顶点着色器中,通过inout关键字,就可以在顶点着色器中写出如下代码

#version 450 core

layout(location = 0) in vec4 offset;
layout(location = 1) in vec4 color;

out vec4 vs_color;

void main(void) {
    vs_color = color;
}

第四行用in关键字声明了color,用于接收输入的color,在第六行使用out声明的vs_color作为输出,输出到后续管线之中。想想咱们在编写第一个片段着色器的时候,是不是也使用了out声明了一个color<

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值