实现Mac窗口最小化动画效果

前言

在学习opengl的过程中,经一前辈的教导,做出了一个比较有趣的东西:仿制Mac中窗口最小化的动画效果。因为是在我学习opengl的过程中制作的一个东西,所以实现的代码是使用是opengl来实现的,个人感觉思路也适用于其他的框架。实现的核心都在片元着色器中:对片元的uv坐标进行修改,从而模拟实现一个图片变形的整个过程。核心代码只有几句,刚做出来的时候自己也觉得太神奇了,所以希望把这个方法分享出来。

方法介绍

效果展示

首先给上一下最终做出来的一个效果吧~
实现Mac窗口最小化动画效果_第1张图片
上面实例用到的只是一个简单的矩形加一张贴图,这些大家就自己渲染好吧。本文主要是为了分享实现Mac窗口最小化的效果,所以有关opengl的一些渲染过程就不在本文多余的进行介绍了(默认大家都了解了,如果有需要源码的话后面可以在评论区留一下言,到时候我看到了再给大家分享出来把~)。可以给大家贴一下顶点坐标:

float vertices[] = {
	// 顶点坐标        uv坐标
	1.0f, 1.0f, 0.0f, 1.0f,1.0f,  // 右上角
	1.0f, -1.0f, 0.0f, 1.0f,0.0f, // 右下角
	-1.0f, 1.0f, 0.0f, 0.0f,1.0f, // 左上角
	1.0f, -1.0f, 0.0f, 1.0f,0.0f, // 右下角
	-1.0f, -1.0f, 0.0f, 0.0f,0.0f,// 左下角
	-1.0f, 1.0f, 0.0f, 0.0f,

你可能感兴趣的:(图形学,opengl,shader,图形学,opengl,游戏开发,shader)