自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 3D渲染引擎-透视投影(Perspective Projection)

电脑显示器是一个2D平面。如果一个渲染一个3D场景到显示器上,需要对顶点(Vdertex)进行投影变换。投影变换会将顶点从相机空间(Camera Space)转换到裁剪空间(Clip Space)。最终通过除法(Perspective Division)将顶点从裁剪空间转换到NDC(Normalized Device Coordinate)。

2023-01-13 11:43:57 408

原创 图像处理-最近邻&双线性缩放

图像处理-最近邻&双线性缩放前言天才和普通人不一样的地方在于,天才可以根据A推导出C,但是普通人只能通过A推导出B,然后在推导出C。作为普通人只能多花时间,去得到天才很容易得到的推论。但是天道酬勤,心心念念,必有回响。简介图像缩放包含两种操作——缩小和放大。有三种经典的缩放算法,分别是最近邻插值(neareset interpolation),双线性插值(bilinear interpolation),双立方插值(bicubic interpolation)。在我的理解中,缩小和放大的操

2021-09-17 15:17:22 896

原创 使用Metal绘制简单的形状 ShapeMeal

使用Metal绘制简单的形状Metal使用过程中遇到的问题ShapeMetalMetal使用过程中遇到的问题Metal的坐标系是归一化的坐标系,范围是从[-1, 1]。所以我们屏幕上使用的坐标系系统不能直接在Metal中使用,每次都需要转换顶点,就是好麻烦。如果我们使用Core Graphics框架来绘制一些简单的图形,例如,绘制一个矩形,我们只需要传入一个NSRect,就可以绘制出来我们想要的形状。但是如果是metal的话就需要生成5个顶点信息来绘制出一个矩形。(这里为什么是5个顶点,后面会介绍到

2020-05-29 11:54:54 1233

原创 Swift图像直方图

图像直方图最近公司项目需求需要绘制出来图像的直方图,所以近期研究了一下。图像的直方图是什么?图像的直方图跟图像的亮度有很大关系。图像的亮度可以分为0-255个数值,不同的值代表不同的亮度,0代表纯黑色的黑暗区域,255表示最亮的纯白色区域。以亮度作为横轴,图像在不同的亮度下包含的像素的个数作为纵轴得到的图像就是图像的直方图。有的童鞋想深入了解一下图像的直方图,可以看一下这篇 文章,这里...

2020-01-04 18:49:53 343 1

原创 单例模式Swift

单例模式(singleton)单例模式是什么?百度百科是这样解释的:单例模式,属于创建类型的一种常用的软件设计模式。通过单例模式的方法创建的类在当前进程中只有一个实例(根据需要,也有可能一个线程中属于单例,如:仅线程上下文内使用同一个实例。单例的使用场景使用单例模式表示现实世界中的资源,比如Node JS中的Server对象,图片缓存。用一种统一的方式来处理所有同类型的任务,比如...

2019-11-26 08:57:04 208

原创 GCD初认识

GCD初认识任务和队列同步执行 Synchronous.(dispatch_sync)异步执行 Asynchronous.(dispatch_async)同步执行不会创建新的线程,只会在当前线程中执行任务,并且会阻塞当前的线程,直到任务执行完毕。所以不要在串行队列中嵌套使用同步执行,不然会造成线程死锁。下面的代码会造成线程死锁。//创建一个串行队列dispatch_queue_...

2019-11-25 16:18:19 136

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除