自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 HTTP 首部字段

HTTP 首部字段HTTP/1.1 规范定义了如下首部字段。通用首部字段首部字段名说明Cache-Control控制缓存的行为Connection逐跳首部、连接的管理Date创建报文的日期时间Pragma报文指令Trailer报文末端的首部一览Transfer-Encoding指定报文主体的传输编码方式Upgrade升级为其他协议Via代理服务器的相关信息Warning错误通知请求首部字段首部字段名

2021-11-15 21:13:42 101

原创 正背面剔除和深度测试

OpenGL 的正背面剔除  在绘制 3D 场景的时候,我们通常会把对于观察者而言不可见的部分做一个丢弃的操作以此来提高性能。这种情况被称为隐藏面消除,也被称为消隐。画家算法  画家算法也叫作优先填充,它是一种物体空间和图像空间的消隐算法。当将三维场景投影到二维平面的时候,需要确定哪些多边形是可见的,哪些是不可见的,在物体空间中预先汁算面的可见性优先级,再在图像空间中生成消隐图。具体的操作如下,先绘制场景中的离观察者较远的物体,再绘制较近的物体,用绘制距离较近的场景覆盖较远的部分  例如下图:先绘制

2020-07-09 16:51:59 1019

原创 关于数字媒体的压缩

  为缩小数字媒体的文件大小,我们需要对其进行压缩。一般来说我们所接触的媒体内容都需要进行一定程度的压缩,也就是说我们都是在和这些内容的原始文件的压缩格式在打交道。压缩技术可以大幅缩小缩小媒体文件的尺寸,但是通常会在资源的质量上有一定程度的衰减。色彩二次抽样  视频数据是使用称之为 YUV 颜色模式的典型案例。不过大部分软件开发者都更熟悉的是 RGB 颜色模式,即每个像素都是由红、绿、蓝三个颜色组合而成的。YUV 则使用色彩(颜色)通道 UV 替换了像素的亮度通道 Y(亮度)。下图展示图片分离亮度和色彩

2020-07-08 23:23:41 1879

原创 使用 OpenGL 绘制正方形

使用 OpenGL 绘制正方形流程最终效果如下:要实现上图效果,需要两个操作:绘制正方形和添加移动指令。使用 OpenGL 绘制正方形由于该项目在 Mac App 环境下搭建,Mac 下环境搭建及 Mac 开发相关窗口不做讨论,如果有机会会在以后专门创建 Mac 开发下的学习笔记讨论相关操作。Mac 环境下需要用到的库#include "GLShaderManager.h"#include "GLTools.h"#include <GLUT/GLUT.h>GLShaderM

2020-07-06 10:28:08 3298

原创 关于 OpenGL 固定存储着色器的理解

存储着色器由 GLTools 的 C++ 类 GLShaderManager 管理着,可以满足我们基本的渲染需求

2020-07-03 14:47:20 328

原创 数字媒体介绍

  而今,数字媒体早已融入我们的生活,身边有着各种音视频应用,但朋友们是否思考过这些媒体内容是如何被数字化的呢?在生活中,看到的图像和听到的声音都是通过模拟信号传递给我们的,眼睛和耳朵将这些信息转化成大脑可以解析的电信号。现实生活中的信号是连续的,信号的频率和强度都在不断变化,但是数字世界的信号是离散的,由 1 和 0 两个状态表示。要将模拟信号转换成我们能够存储并传输的数字信号,需要经过模拟-数字转换过程,这个过程我们称之为采样(Sampling)。数字媒体采样  媒体内容的数字化主要有两种方式:时间

2020-07-02 22:03:40 963

原创 AVFoundation 核心功能

学习 AVFoundation 之初,最大的挑战就是理解该框架所提供的的大量类及其功能。该框架包含超过一百个类,有着大量的协议和常量,面对这些内容,看起来掌握起来具有一定的难度,但是如果按照功能单元进行分解,就会相对容易理解,下面来梳理一下 AVFoundation 所提供的一些核心功能。音频播放和记录AVAudioPlayer 和 AVAudioRecorder 可以在应用中提供一种更简单的整合音频播放和记录的功能。这些方法并不是 AVFoundation 用于播放和记录音频的唯一方式,但却是学习起来

2020-07-02 19:48:41 303

原创 OpenGL 渲染流程图解析

OpenGL 渲染使用客户端<——>服务端的形式实现,客户端是我们编写的代码,服务端是计算机图形硬件厂商所提供的OpenGL实现。由上图可见,渲染管线分为上下两个部分,上面一部分是客户端,下面一部分是服务端。Client 客户端客户端是存储在 CPU 存储器中的,并且在应用程序中执行,或者在主系统内存的程序中执行。会将渲染命令和数据组合起来发送给服务器执行。Server 服务端实际上就是OpenGL中直接操作 GPU 绘制图形的部分。Client 和 Server 是独立异步

2020-07-02 18:38:42 740

原创 初识 AVFoundation 框架

AV Foundation 是苹果 OS X 系统和 iOS 系统中用于处理基于时间的媒体数据的高级 Objective-C 框架。通过开发所需的工具提供了大量强大的功能集,让开发者能够基于苹果平台创建先进的媒体应用程序。其构建考虑到了目前的硬件环境和应用程序,设计过程高度依赖多线程机制。充分利用了多核硬件的优势并大量使用 block 和 GCD 机制将复杂的计算进程放在后台线程运行。

2020-07-02 00:25:13 748

原创 学习笔记_iOS 图片从文件渲染到屏幕的过程

一般情况下,显示是由 CPU 和 GPU 协作来完成的渲染,一次渲染的过程中,分工大致如下:  CPU:计算 frame,图片解码,通过数据总线将需要绘制的纹理图片交给GPU  GPU:纹理混合,顶点变换与计算,像素点的填充计算,渲染到帧缓冲区。

2020-07-01 10:25:17 879

原创 学习笔记_OpenGL下专业名词解释

快速了解OpenGL下专业名词OpenGL 上下文(context)  在应用程序调用任何 OpenGL 指令之前,需要安排创建一个 OpenGL 的上下文,这个上下文是一个非常庞大的状态机,保存了 OpenGL 的各种状态,这也是 OpenGL 指令执行的基础。  OpenGL 的函数不管在哪个语言中,都是类C语言一样的面向过程的函数,本质上都是对 OpenGL 上下文这个庞大的状态机中的某个状态或者对象进行操作,当然你得首先把这个对象设置为当前对象。因此,通过对 OpenGL 指令的封装,是可以将

2020-06-30 17:07:59 290

空空如也

空空如也

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

TA关注的人

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