用三个顶点坐标填充整个屏幕

1.在应用程序中调用绘制 API ,也就是drawcall

我用vulkan ,你用gl 也一样,就是设置顶点数量为3

vkCmdDraw(drawCmdBuffers, 3, 1, 0, 0);

不用创建顶点缓冲区,这样就ok 了。

  1. 在glsl 的 顶点着色器里
      vec2  outUV = vec2((gl_VertexIndex << 1) & 2, gl_VertexIndex & 2);
	gl_Position = vec4(outUV * 2.0f - 1.0f, 0.0f, 1.0f);

gl_VertexIndex 这是高版本才有的内置变量,就是顶点的索引 [0,1,2]。

经过位运算后 生成了 三个顶点
vec2(0.0,0.0),vec2(2.0,0.0),vec2(0.0,2.0)

其实和下面的写法是一样的

vec2 poitions[3] = vec2 [](vec2(0.0,0.0),vec2(2.0,0.0),vec2(0.0,2.0));

数组赋值时里面的每个元素都要有类型,否则会无法编译通过。

然后 再来二次坐标变换,我们让这三个点覆盖屏幕。
先放大两倍,再沿轴的负方向平移1.0f.
在这里插入图片描述依次黑色->红色->绿色 的过程,这样就搞定了 ,要注意的是vulkan 的 y轴 在坐标系是向下的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值