从0到1实战特效美颜相机,吃透视频特效原理,快速成为音视频领域抢手人才!

*   00 资料/

  *   源代码/

    *   01 opengl.zip (16.52 MB)

*   01 第1章 课程介绍及学习指南/

  *   01 1-1 视频渲染-导学.mp4 (48.23 MB), 09:12

*   02 第2章 为什么应该学好OpenGL/

  *   01 2-1 为什么要选择OpenGL及OpenGL的发展.mp4 (57.15 MB), 10:58

*   03 第3章 在系统学习OpenGL特效之前,需要先学会如何实现一个照相机/

  *   01 3-1 [原理]清楚Android相机采集原理.mp4 (46.19 MB), 08:50

  *   02 3-2 [原理]Android系统下图像渲染原理.mp4 (58.27 MB), 10:35

  *   03 3-3 [实战]带你创建一个最简单的Android工程并实现相机操作界面.mp4 (107.63 MB), 16:56

  *   04 3-4 [实战]申请相机权限并实现拍照功能(一).mp4 (72.58 MB), 12:59

  *   05 3-5 [实战]申请相机权限并实现拍照功能(二).mp4 (74.64 MB), 13:41

  *   06 3-6 [实战]定义相机预览界面并展示采集到的图片.mp4 (62.61 MB), 11:27

  *   07 3-7 [实战]设置闪光变焦等相机参数.mp4 (119.19 MB), 15:13

  *   08 3-8 [理论]实现相机拍照功能(一).mp4 (47.89 MB), 08:34

  *   09 3-9 [实战]实现相机拍照功能(二).mp4 (76.13 MB), 14:08

  *   10 3-10 [实战]实现前置摄像头与后置摄像头切换.mp4 (73.38 MB), 12:02

  *   11 3-11 Android系统下的显示原理.html (0.87 MB)

*   04 第4章 掌握渲染环境是实现特效的基石/

  *   01 4-1 [原理]图形渲染管线清楚图形渲染的流程是怎样的.mp4 (83.23 MB), 15:03

  *   02 4-2 [原理]Android系统下渲染管线的建立与图形渲染管线的区别.mp4 (77.51 MB), 14:07

  *   03 4-3 [原理]以GLSurfaceView为例讲解它是如何构建OpenGLES渲染管线的.mp4 (84.89 MB), 15:10

  *   04 4-4 [实战]使用GLSurfaceView完成OpenGL ES渲染管线的建立.mp4 (81.13 MB), 11:10

  *   05 4-5 Android下OpenGL环境的建立.html (0.53 MB)

*   05 第5章 OpenGL基础实战第一步:如何基于Shader(着色器)绘制一个三角形/

  *   01 5-1 什么是Shader为什么要使用它渲染图像.mp4 (50.69 MB), 09:24

  *   02 5-2 掌握好坐标系才能确定图形的起点在哪儿.mp4 (23.50 MB), 04:08

  *   03 5-3 详解着色器作用及其语法.mp4 (67.96 MB), 12:35

  *   04 5-4 [实战]编写着色器程序及着色器数据为绘制三角形做好准备.mp4 (65.26 MB), 08:42

  *   05 5-5 Shader程序的编译与加载.mp4 (32.64 MB), 06:06

  *   06 5-6 [实战]Shader程序的编译与加载.mp4 (62.71 MB), 10:53

  *   07 5-7 [实战]使用OpenGL完成三角形的绘制.mp4 (90.07 MB), 15:16

  *   08 5-8 图形渲染管线与Shader编程.html (0.59 MB)

*   06 第6章 OpenGL基础实战第二步:如何轻松实现图像的放大缩小、旋转与平移/

  *   01 6-1 图形学的本质是数学,让我们从向量开始.mp4 (25.79 MB), 06:13

  *   02 6-2 掌握向量的基本运算-向量的加法与点乘.mp4 (64.67 MB), 11:11

  *   03 6-3 掌握向理的基本运算-向量的叉乘.mp4 (41.03 MB), 07:46

  *   04 6-4 掌握矩阵的基本运算,为图形变换打好基础.mp4 (47.21 MB), 08:25

  *   05 6-5 基于矩阵实现各种2D变换.mp4 (58.23 MB), 10:29

  *   06 6-6 各种图形变换的核心-齐次坐标.mp4 (35.39 MB), 06:27

  *   07 6-7 利用齐次坐标实现各种3D变换.mp4 (38.24 MB), 06:55

  *   08 6-8 [实战]基于齐次坐标实现[平移-旋转-缩放]等图形变换.mp4 (68.68 MB), 09:53

  *   09 6-9 图形学中的矩阵.html (0.84 MB)

*   07 第7章 OpenGL基础实战第三步:牢牢掌握特效渲染中的色彩空间/

  *   01 7-1 光与五彩缤纷的颜色.mp4 (39.39 MB), 07:31

  *   02 7-2 各种各样的色彩空间.mp4 (57.68 MB), 10:12

  *   03 7-3 RGB与YUV格式是什么样.mp4 (55.75 MB), 10:39

  *   04 7-4 RGB与YUV格式之间的相互转换.mp4 (55.44 MB), 09:46

  *   05 7-5 光与色彩.html (0.66 MB)

*   08 第8章 OpenGL基础实战第四步:如何提升性能及对渲染的精准控制/

  *   01 8-1 提高Shader性能-VBO基础知识.mp4 (44.74 MB), 08:23

  *   02 8-2 [实战]使用VBO提高绘制三角形的效率.mp4 (56.09 MB), 10:01

  *   03 8-3 提高Shader性能-EBO基础知识.mp4 (37.85 MB), 07:00

  *   04 8-4 [实战]使用EBO提高绘制三角形的效率.mp4 (73.62 MB), 13:14

  *   05 8-5 提高Shader性能-VAO基础知识.mp4 (25.53 MB), 04:49

  *   06 8-6 [实战]使用VAO提高绘制模型的效率.mp4 (41.84 MB), 08:21

  *   07 8-7 代码优化.mp4 (106.56 MB), 13:45

  *   08 8-8 在Shader中使用条件判断.mp4 (108.90 MB), 19:34

  *   09 8-9 在Shader中的使用循环与函数.mp4 (50.13 MB), 09:07

  *   10 8-10 Shader性能优化.html (0.48 MB)

*   09 第9章 OpenGL基础实战第五步:特效渲染中的坐标变换与投影/

  *   01 9-1 我们不得不知道的视图变换.mp4 (54.07 MB), 10:13

  *   02 9-2 简单但很重要的正交投影.mp4 (36.07 MB), 06:33

  *   03 9-3 投影变换的重中之重--透视投影.mp4 (70.81 MB), 12:57

*   10 第10章 特效进阶实战一:如何基于纹理高效渲染出照片/

  *   01 10-1 高效渲染视频和照片-纹理基础知识.mp4 (54.85 MB), 10:19

  *   02 10-2 高效渲染视频和照片基础-绘制矩形模型.mp4 (47.92 MB), 08:13

  *   03 10-3 高效渲染视频和照片基础-设置纹理参数.mp4 (58.63 MB), 09:52

  *   04 10-4 实战-高质量渲染图片之图片导入与纹理参数的设置.mp4 (129.81 MB), 17:29

  *   05 10-5 实战-高质量渲染图片之顶点坐标与纹理坐标之间的对应关系.mp4 (25.20 MB), 04:18

  *   06 10-6 实战-高质量渲染图片之修改Shader程序.mp4 (63.39 MB), 08:48

  *   07 10-7 实战-高质量渲染图片之向Shader送数据并渲染图片.mp4 (83.34 MB), 12:31

  *   08 10-8 理论-高质量渲染图片之防止图片拉伸方法一.mp4 (43.19 MB), 07:57

  *   09 10-9 实战-高质量渲染图片之防止图片被拉伸的方法一.mp4 (102.86 MB), 15:07

  *   10 10-10 理论-高质量渲染图片之防止图片拉伸方法二.mp4 (43.56 MB), 07:36

  *   11 10-11 实战-高质量渲染图片之防止图片被拉伸方法二.mp4 (132.10 MB), 16:58

  *   12 10-12 正确渲染图片.html (0.68 MB)

*   11 第11章 特效进阶实战二:如何基于外部纹理高效的渲染视频/

  *   01 11-1 高效渲染视频-视频渲染的整体过程.mp4 (42.64 MB), 07:40

  *   02 11-2 高效渲染视频-Camera2的基础知识.mp4 (72.13 MB), 12:03

  *   03 11-3 实战-高效渲染视频之通过Camera2采集视频数据.mp4 (71.27 MB), 12:59

  *   04 11-4 (图片侵权)高效渲染视频-内部纹理与外部纹理的区别及使用.mp4 (32.21 MB), 05:48

  *   05 11-5 实战-高效渲染视频之创建外部纹理.mp4 (39.81 MB), 05:04

  *   06 11-6 理论-打通从Camera到OpenGL的生命之路.mp4 (43.55 MB), 07:34

  *   07 11-7 实战-打通Camera到OpenGL之间的生命之路.mp4 (92.46 MB), 16:53

  *   08 11-8 实战-获得Camera的最佳分辨率.mp4 (53.60 MB), 09:29

  *   09 11-9 实战-Shander使用外部纹理渲染视频帧.mp4 (68.90 MB), 10:35

  *   10 11-10 原理-防止视频帧被拉伸.mp4 (34.62 MB), 05:31

  *   11 11-11 实战-防止视频帧被拉伸(一).mp4 (63.22 MB), 09:23

  *   12 11-12 实战-防止视频帧被拉伸(二).mp4 (61.11 MB), 10:49

  *   13 11-13 实战-防止视频帧被拉伸(三).mp4 (17.07 MB), 02:54

  *   14 11-14 实战-正确渲染视频内容.mp4 (63.35 MB), 09:37

*   12 第12章 特效进阶实战三:如何通过OpenGL实现多种经典特效/

  *   01 12-1 OpenGL实现多种特效.mp4 (11.68 MB), 02:24

  *   02 12-2 实战-OpenGL实现黑白特效.mp4 (50.64 MB), 06:23

  *   03 12-3 原理-通过kernel算子实现特效.mp4 (48.06 MB), 08:37

  *   04 12-4 实战-OpenGL实现blur特效-1.mp4 (44.84 MB), 07:19

  *   05 12-5 实战-OpenGL实现blur特效-2.mp4 (56.84 MB), 10:29

  *   06 12-6 实战-OpenGL实现blur特效-3.mp4 (19.29 MB), 03:35

  *   07 12-7 实战-通过多种kernel实现不同的特效.mp4 (86.64 MB), 11:03

  *   08 12-8 实战-使用OpenGL实现素描效果.mp4 (72.17 MB), 08:02

  *   09 12-9 先来了解一下什么是LUT.mp4 (29.75 MB), 05:39

  *   10 12-10 使用3DLUT的基本步骤.mp4 (41.89 MB), 06:04

  *   11 12-11 实战-使用3DLUT对图像调色-算法.mp4 (25.40 MB), 03:38

  *   12 12-12 实战-使用3DLUT对图像调色-编写Shader程序.mp4 (74.27 MB), 12:57

  *   13 12-13 实战-使用3DLUT对图象调色-传递数据.mp4 (27.66 MB), 04:34

  *   14 12-14 实战-使用3DLUT对图像调色-实现多种色彩风格.mp4 (14.26 MB), 02:53

*   13 第13章 特效进阶实战四:如何基于OpenGL实现多种经典转场/

  *   01 13-1 什么是转场特效.mp4 (25.42 MB), 04:37

  *   02 13-2 实现转场特效的原理.mp4 (26.77 MB), 05:21

  *   03 13-3 实战-OpenGL实现擦除转场特效-算法.mp4 (34.93 MB), 04:33

  *   04 13-4 实战-OpenGL实现擦除转场特效-拆分Shader程序.mp4 (100.82 MB), 16:18

  *   05 13-5 实战-OpenGL实现擦除转场特效-编写Shader代码.mp4 (40.80 MB), 07:03

  *   06 13-6 实战-OpenGL实现擦除转场特效-向Shader传递数据.mp4 (42.73 MB), 07:35

  *   07 13-7 实战-OpenGL实现擦除转场特效-调试.mp4 (30.02 MB), 05:45

  *   08 13-8 原理-OpenGL放大场特效的算法.mp4 (38.16 MB), 06:40

  *   09 13-9 实战-实现OpenGL放大转场特效.mp4 (46.24 MB), 07:59

  *   10 13-10 原理-百叶窗转场特效算法.mp4 (45.01 MB), 08:09

  *   11 13-11 实战-OpenGL实现百叶窗转场特效.mp4 (42.00 MB), 07:31

*   14 第14章 特效进阶实战五:如何基于AI实现各种美颜特效/

  *   01 14-1 AI的一些基本概念.mp4 (51.33 MB), 09:30

  *   02 14-2 介绍一些好用的人脸识别AI库.mp4 (28.77 MB), 05:25

  *   03 14-3 实现大眼特效-使用MLKit获得眼部位置.mp4 (56.88 MB), 10:08

  *   04 14-4 实现大眼特效-用Shader实现大眼特效的原理.mp4 (33.28 MB), 06:20

  *   05 14-5 实现大眼特效-编写Shader程序.mp4 (104.60 MB), 17:56

  *   06 14-6 实现大眼特效-向Shader传递数据-1.mp4 (53.52 MB), 09:46

  *   07 14-7 实现大眼特效-向Shader传递数据-2.mp4 (53.31 MB), 09:36

  *   08 14-8 实现大眼特效-调试并展示大眼特效.mp4 (29.77 MB), 05:24

  *   09 14-9 实现瘦脸特效-原理与算法.mp4 (33.13 MB), 06:07

  *   10 14-10 实现瘦脸特效-编写Shader程序.mp4 (58.99 MB), 10:17

  *   11 14-11 实现瘦脸特效-向Shader中传递数据.mp4 (64.73 MB), 11:41

  *   12 14-12 实现瘦脸特效-调试并展示效果.mp4 (16.06 MB), 03:09

*   15 第15章 离屏渲染技术/

  *   01 15-1 OpenGL离屏渲染.html (1.47 MB)

  *   02 15-2 启动SurfaceView渲染线程并为之构建EGL环境.html (0.48 MB)

  *   03 15-3 二次渲染与BlitFramebuffer实现离屏渲染的迥异.html (0.47 MB)

  *   04 15-4 使用FBO实现离屏渲染.html (0.55 MB)

*   16 第16章 课程总结/

  *   01 16-1 OpenGL+AI课程总结.mp4 (25.47 MB), 04:36

课程目录

{10}--第10章 特效进阶实战一:如何基于纹理高效渲染出照片?
[10.10]--10-10 理论-高质量渲染图片之防止图片拉伸方法二_ev.mp4
[10.1]--10-1 高效渲染视频和照片-纹理基础知识_ev.mp4
[10.3]--10-3 高效渲染视频和照片基础-设置纹理参数_ev.mp4
[10.5]--10-5 实战-高质量渲染图片之顶点坐标与纹理坐标之间的对应关系_ev.mp4
[10.6]--10-6 实战-高质量渲染图片之修改Shader程序_ev.mp4
[10.7]--10-7 实战-高质量渲染图片之向Shader送数据并渲染图片_ev.mp4
[10.8]--10-8 理论-高质量渲染图片之防止图片拉伸方法一_ev.mp4
[10.9]--10-9 实战-高质量渲染图片之防止图片被拉伸的方法一_ev.mp4
{11}--第11章 特效进阶实战二:如何基于外部纹理高效的渲染视频?
[11.10]--11-10 原理-防止视频帧被拉伸_ev.mp4
[11.11]--11-11 实战-防止视频帧被拉伸(一)_ev.mp4
[11.12]--11-12 实战-防止视频帧被拉伸(二)_ev.mp4
[11.13]--11-13 实战-防止视频帧被拉伸(三)_ev.mp4
[11.14]--11-14 实战-正确渲染视频内容_ev.mp4
[11.1]--11-1 高效渲染视频-视频渲染的整体过程_ev.mp4
[11.2]--11-2 高效渲染视频-Camera2的基础知识_ev.mp4
[11.3]--11-3 实战-高效渲染视频之通过Camera2采集视频数据_ev.mp4
[11.4]--11-4 (图片侵权)高效渲染视频-内部纹理与外部纹理的区别及使_ev.mp4
[11.5]--11-5 实战-高效渲染视频之创建外部纹理_ev.mp4
[11.7]--11-7 实战-打通Camera到OpenGL之间的生命之路_ev.mp4
[11.8]--11-8 实战-获得Camera的最佳分辨率_ev.mp4
[11.9]--11-9 实战-Shander使用外部纹理渲染视频帧_ev.mp4
{12}--第12章 特效进阶实战三:如何通过OpenGL实现多种经典特效
[12.10]--12-10 使用3DLUT的基本步骤_ev.mp4
[12.11]--12-11 实战-使用3DLUT对图像调色-算法_ev.mp4
[12.12]--12-12 实战-使用3DLUT对图像调色-编写Shader程序_ev.mp4
[12.13]--12-13 实战-使用3DLUT对图象调色-传递数据_ev.mp4
[12.1]--12-1 OpenGL实现多种特效_ev.mp4
[12.2]--12-2 实战-OpenGL实现黑白特效_ev.mp4
[12.3]--12-3 原理-通过kernel算子实现特效_ev.mp4
[12.4]--12-4 实战-OpenGL实现blur特效-1_ev.mp4
[12.5]--12-5 实战-OpenGL实现blur特效-2_ev.mp4
[12.6]--12-6 实战-OpenGL实现blur特效-3_ev.mp4
[12.7]--12-7 实战-通过多种kernel实现不同的特效_ev.mp4
[12.8]--12-8 实战-使用OpenGL实现素描效果_ev.mp4
[12.9]--12-9 先来了解一下什么是LUT_ev.mp4
{13}--第13章 特效进阶实战四:如何基于OpenGL实现多种经典转场
[13.10]--13-10 原理-百叶窗转场特效算法_ev.mp4
[13.11]--13-11 实战-OpenGL实现百叶窗转场特效_ev.mp4
[13.1]--13-1 什么是转场特效_ev.mp4
[13.2]--13-2 实现转场特效的原理_ev.mp4
[13.3]--13-3 实战-OpenGL实现擦除转场特效-算法_ev.mp4
[13.4]--13-4 实战-OpenGL实现擦除转场特效-拆分Shader程_ev.mp4
[13.5]--13-5 实战-OpenGL实现擦除转场特效-编写Shader代_ev.mp4
[13.6]--13-6 实战-OpenGL实现擦除转场特效-向Shader传递_ev.mp4
[13.7]--13-7 实战-OpenGL实现擦除转场特效-调试_ev.mp4
[13.8]--13-8 原理-OpenGL放大场特效的算法_ev.mp4
[13.9]--13-9 实战-实现OpenGL放大转场特效_ev.mp4
{14}--第14章 特效进阶实战五:如何基于AI实现各种美颜特效?
[14.10]--14-10 实现瘦脸特效-编写Shader程序_ev.mp4
[14.11]--14-11 实现瘦脸特效-向Shader中传递数据_ev.mp4
[14.12]--14-12 实现瘦脸特效-调试并展示效果_ev.mp4
[14.1]--14-1 AI的一些基本概念_ev.mp4
[14.2]--14-2 介绍一些好用的人脸识别AI库_ev.mp4
[14.3]--14-3 实现大眼特效-使用MLKit获得眼部位置_ev.mp4
[14.4]--14-4 实现大眼特效-用Shader实现大眼特效的原理_ev.mp4
[14.5]--14-5 实现大眼特效-编写Shader程序_ev.mp4
[14.6]--14-6 实现大眼特效-向Shader传递数据-1_ev.mp4
[14.7]--14-7 实现大眼特效-向Shader传递数据-2_ev.mp4
[14.8]--14-8 实现大眼特效-调试并展示大眼特效_ev.mp4
[14.9]--14-9 实现瘦脸特效-原理与算法_ev.mp4
{15}--第15章 离屏渲染技术
本章图文,没有视频
{16}--第16章 课程总结
[15.1]--15-1 OpenGL+AI课程总结_ev.mp4
{1}--第1章 课程介绍及学习指南
[1.1]--1-1 视频渲染-导学_ev.mp4
{2}--第2章 为什么应该学好OpenGL?
[2.1]--2-1 为什么要选择OpenGL及OpenGL的发展_ev.mp4
{3}--第3章 在系统学习OpenGL特效之前,需要先学会如何实现一个照
[3.10]--3-10 [实战]实现前置摄像头与后置摄像头切换_ev.mp4
[3.1]--3-1 [原理]清楚Android相机采集原理_ev.mp4
[3.2]--3-2 [原理]Android系统下图像渲染原理_ev.mp4
[3.3]--3-3 [实战]带你创建一个最简单的Android工程并实现相机_ev.mp4
[3.4]--3-4 [实战]申请相机权限并实现拍照功能(一)_ev.mp4
[3.5]--3-5 [实战]申请相机权限并实现拍照功能(二)_ev.mp4
[3.6]--3-6 [实战]定义相机预览界面并展示采集到的图片_ev.mp4
[3.7]--3-7 [实战]设置闪光变焦等相机参数_ev.mp4
[3.8]--3-8 [理论]实现相机拍照功能(一)_ev.mp4
[3.9]--3-9 [实战]实现相机拍照功能(二)_ev.mp4
{4}--第4章 掌握渲染环境是实现特效的基石
[4.1]--4-1 [原理]图形渲染管线清楚图形渲染的流程是怎样的_ev.mp4
[4.2]--4-2 [原理]Android系统下渲染管线的建立与图形渲染管线_ev.mp4
[4.3]--4-3 [原理]以GLSurfaceView为例讲解它是如何构建_ev.mp4
[4.4]--4-4 [实战]使用GLSurfaceView完成OpenGL_ev.mp4
{5}--第5章 OpenGL基础实战第一步:如何基于Shader(着色器
[5.1]--5-1 什么是Shader?为什么要使用它渲染图像_ev.mp4
[5.2]--5-2 掌握好坐标系才能确定图形的起点在哪儿_ev.mp4
[5.3]--5-3 详解着色器作用及其语法_ev.mp4
[5.4]--5-4 [实战]编写着色器程序及着色器数据为绘制三角形做好准备_ev.mp4
[5.5]--5-5 Shader程序的编译与加载_ev.mp4
[5.6]--5-6 [实战]Shader程序的编译与加载_ev.mp4
[5.7]--5-7 [实战]使用OpenGL完成三角形的绘制_ev.mp4
{6}--第6章 OpenGL基础实战第二步:如何轻松实现图像的放大缩小、
[6.1]--6-1 图形学的本质是数学,让我们从向量开始_ev.mp4
[6.2]--6-2 掌握向量的基本运算-向量的加法与点乘_ev.mp4
[6.3]--6-3 掌握向理的基本运算-向量的叉乘_ev.mp4
[6.4]--6-4 掌握矩阵的基本运算,为图形变换打好基础_ev.mp4
[6.5]--6-5 基于矩阵实现各种2D变换_ev.mp4
[6.6]--6-6 各种图形变换的核心-齐次坐标_ev.mp4
[6.7]--6-7 利用齐次坐标实现各种3D变换_ev.mp4
[6.8]--6-8 [实战]基于齐次坐标实现[平移-旋转-缩放]等图形变换_ev.mp4
{7}--第7章 OpenGL基础实战第三步:牢牢掌握特效渲染中的色彩空间
[7.1]--7-1 光与五彩缤纷的颜色_ev.mp4
[7.2]--7-2 各种各样的色彩空间_ev.mp4
[7.3]--7-3 RGB与YUV格式是什么样_ev.mp4
[7.4]--7-4 RGB与YUV格式之间的相互转换_ev.mp4
{8}--第8章 OpenGL基础实战第四步:如何提升性能及对渲染的精准控
[8.1]--8-1 提高Shader性能-VBO基础知识_ev.mp4
[8.2]--8-2 [实战]使用VBO提高绘制三角形的效率_ev.mp4
[8.3]--8-3 提高Shader性能-EBO基础知识_ev.mp4
[8.4]--8-4 [实战]使用EBO提高绘制三角形的效率_ev.mp4
[8.5]--8-5 提高Shader性能-VAO基础知识_ev.mp4
[8.6]--8-6 [实战]使用VAO提高绘制模型的效率_ev.mp4
[8.7]--8-7 代码优化_ev.mp4
[8.8]--8-8 在Shader中使用条件判断_ev.mp4
[8.9]--8-9 在Shader中的使用循环与函数_ev.mp4
{9}--第9章 OpenGL基础实战第五步:特效渲染中的坐标变换与投影
[9.1]--9-1 我们不得不知道的视图变换[4]_ev.mp4
[9.1]--9-1 我们不得不知道的视图变换_ev.mp4
[9.2]--9-2 简单但很重要的正交投影[4]_ev.mp4
[9.2]--9-2 简单但很重要的正交投影_ev.mp4
[9.3]--9-3 投影变换的重中之重--透视投影[4]_ev.mp4
[9.3]--9-3 投影变换的重中之重--透视投影_ev.mp4