New程序媛OpenGL全解析之—回调&缩放旋转平移

本文是关于OpenGL的教程,讲解了如何实现图形的旋转、平移和缩放,以及如何使用回调函数进行交互。文章中介绍了使用glm库进行矩阵变换,并提供了资源和代码下载。还列举了常用的glut回调函数,如显示、大小改变、键盘和鼠标事件的处理函数。
摘要由CSDN通过智能技术生成

大家好!

本期丹丹将给大家解析的是OpenGL中的旋转平移缩放变化实现和常用回调函数的介绍

本期视频的链接地址是:

https://www.bilibili.com/video/av22973264

大家也可以直接在bi站首页搜索:New程序媛 ,即可看到相应视频

本期的资源和代码下载链接是:

链接:https://pan.baidu.com/s/1QWd8_CDk3XNBAGByVG7oqQ 密码:cuj4

视频搭配文章一起效果更赞哦

上一期中给大家介绍了基本图元,我们画了不少美(chou)腻(lou)的图形,本期结合着马上要到来的520,丹丹画了一颗立体的大钻石

送给大家。还望大家笑纳

首先我们看看运行的效果图:

游戏中的图形变换离不开向量和矩阵的知识,但本期中我们并不会马上就细讲向量和矩阵,请大家不要着急,因为之前写的代码,图形都是静态的,所以丹丹希望大家能借助glut中的回调函数,动手写出有互动感的代码。

今天代码中的跟矩阵相关的内容,我们是直接使用的glm库,一个开源的OpenGL数学库。从官网下载下来后,直接把项目路径中的glm文件夹拷贝到项目的include文件夹中即可。或者从我共享的资源中拷贝即可。

第一步,我们要做的就是在代码中加载glm的头文件:

然后我们定义好顶点、颜色和索引数据:

接着我看看数据的初始化,xyz是来控制图形位移的,angleXYZ是绕xyz旋转的角度的变量,而scaleXYZ是物体XYZ轴上的缩放系数,本期的文章中没有写缩放的具体实现,但是有平移和旋转的实现,我们就可以以此类推出缩放的实现了。

本期中我们将shader更新了,我们往顶点着色器中不仅传入位置信息,还传入了颜色信息,然后把颜色信息作为out量传给了片元着色器,同时我们定义了uniform mat4 数据,用来保存图形的旋转平移缩放矩阵,并且把矩阵transform*positon得到变换好坐标赋值给了gl_Position,而片元着色器中,我们接收到了顶点着色器中给出的颜色信息,更新了我们的color属性:

之后是绘制函数,我们利用glm库中的translate函数得到平移矩阵,rotate函数得到绕指定轴旋转指定角度的旋转矩阵,scale函数得到缩放矩阵,并通过glUniformMartix4fv函数,更新我们shader中的transform矩阵:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值