您当前的位置: 首页 >  ar

Jave.Lin

暂无认证

  • 1浏览

    0关注

    704博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

LearnGL - 03 - DrawQuad - VBO/EBO - 理解 CW, CCW 的正背面

Jave.Lin 发布时间:2020-06-08 11:26:25 ,浏览量:1

文章目录
  • 如何绘制?
    • 先画第一个直角三角形
      • 绘制效果
    • 再画第二个直角三角形
      • 绘制效果
    • 查看正面的顺/逆时针
  • 使用 索引缓存 EBO/IBO 来节省显存
    • 重新计算显存顶点+索引用量
    • 索引缓存 EBO/IBO 的创建、绑定、设置数据
    • 绘制
  • 完整源码
  • References
LearnGL - 学习笔记目录

本人才疏学浅,如有什么错误,望不吝指出。

上一篇:LearnGL - 02 - DrawTriangle、LearnGL - 02.1 - DrawTriangle_Extension,学会了如何画一个三角形。

这一篇:画一个 Quad(Quadrilateral) 四边形。

如何绘制?

之前已经画了一个三角形了。

那么画四边形就简单多了,两个三角形组合成一个四边形不就好了,如下图: 在这里插入图片描述

就是两个直角三角形的组合嘛,那么开始咯。

先画第一个直角三角形

先看看之前的文章话的 在这里插入图片描述

这个显然不是直角三角,需要调整一下数值。 之前的数值为:

float vertices[] = {
	// x,	y,	  z			r,	  g,	b
	-0.5f, -0.5f, 0.0f,		1.0f, 0.0f, 0.0f,
	 0.5f, -0.5f, 0.0f,		0.0f, 1.0f, 0.0f,
	 0.0f,  0.5f, 0.0f,		0.0f, 0.0f, 1.0f,
};

调整为:

float vertices[] = {
	// x,	y,	  z			r,	  g,	b
	-0.5f, -0.5f, 0.0f,		1.0f, 0.0f, 0.0f,
	 0.5f, -0.5f, 0.0f,		0.0f, 1.0f, 0.0f,
	-0.5f,  0.5f, 0.0f,		0.0f, 0.0f, 1.0f,
};
绘制效果

在这里插入图片描述

再画第二个直角三角形

最简单的思维是:直接添加多三个顶点即可。(后面会使用更好的方式)

float vertices[] = {
	// x,	y,	  z			r,	  g,	b
	// 第一个直角三角性
	-0.5f, -0.5f, 0.0f,		1.0f, 0.0f, 0.0f,
	 0.5f, -0.5f, 0.0f,		0.0f, 1.0f, 0.0f,
	-0.5f,  0.5f, 0.0f,		0.0f, 0.0f, 1.0f,
	// 第二个直角三角性
	 0.5f, -0.5f, 0.0f,		0.0f, 1.0f, 0.0f,
	 0.5f,  0.5f, 0.0f,		1.0f, 1.0f, 0.0f,
	-0.5f,  0.5f, 0.0f,		0.0f, 0.0f, 1.0f,
};

然后是 glDrawArray 的参数调整为绘制6个顶点:

原来是绘制3个顶点的:

glDrawArrays(GL_TRIANGLES, 0, 3);						// 绘制三角图元,从0号顶点,开始绘制3个顶点

调整为绘制6个顶点的:

glDrawArrays(GL_TRIANGLES, 0, 6);						// 绘制三角图元,从0个顶点,开始绘制3个顶点
绘制效果

在这里插入图片描述

查看正面的顺/逆时针

可以通过 glGet 中的 glGetIntegerv 第一个参数使用符号常量:GL_FRONT_FACE,第二个参数传入返回的指针 GLint*即可拿到当前正面的设置。

也可以通过 glFrontFace 传入 GL_CW 或是 GL_CCW 来设置正面面向。

	//glFrontFace(GL_CW);											// 顺时针
	//glFrontFace(GL_CCW);										// 逆时针(默认的)ClockWise
	GLint facing;
	glGetIntegerv(GL_FRONT_FACE, &facing);						// 获取正面的顺逆时针 : CW(ClockWise - 顺时针), CCW(Counter ClockWise - 逆时针)
	std::cout             
关注
打赏
1664331872
查看更多评论
0.0653s