Quincy-QC

个人博客

Ubuntu内核升级与开启BBR加速

BBR Accelerate

Introduction BBR(新的TCP拥塞控制算法Bottleneck Bandwidth and RTT)是个好东西。 众所周知,Ubuntu开启BBR的前提是内核必须高于或等于4.9,所以想要使用它需要先看看我们的内核是否在4.9或以上。 查看命令:uname -a 如果内核版本已经在4.9或以上,那么就可以跳过内核升级这一步骤。如何在4.9以下,那么就需要更新一下内核了。(很遗憾......

Sliding Window algorithm - substring search problems

Leet Code

Introduction Sliding Window algorithm template to solve almost Leetcode substring search problem. Find All Anagrams in a String Given a string s and a non-empty string p, find all the start indices......

OpenGL ES--光照

About OpenGL ES

颜色 现实世界中有无数种颜色,每一个物体都有它们自己的颜色。我们需要使用(有限的)数值来模拟真实世界中(无限)的颜色,所以并不是所有现实世界中的颜色都可以用数值来表示的。然而我们仍能通过数值来表现出非常多的颜色,甚至可能都不会注意到与现实的颜色有任何的差异。颜色可以数字化的由红色(Red)、绿色(Green)和蓝色(Blue)三个分量组成,它们通常被缩写为RGB。仅仅用这三个值就可以组合出任......
iOS

OpenGL ES坐标系统

About OpenGL ES

OpenGL ES希望在每次顶点着色器运行后,我们可见的所有顶点都为标准化设备坐标。也就是说,每个顶点的x,y,z坐标都应该在-1.0到1.0之间,超出这个坐标范围的顶点都将不可见。我们通常会自己设定一个坐标的范围,之后再在顶点着色器中将这些坐标变换为标准化设备坐标。然后将这些标准坐标传入光栅器,将它们变换为屏幕上的二维坐标或像素。 将坐标变换为标准化设备坐标,接着再转化为屏幕坐标的过程通......
iOS

OpenGL ES学习--同步对象和栅栏

About OpenGL ES

OpenGL ES 3.0为应用程序提供了一组OpenGL操作在GPU上执行结束的机制。我们可以同步多个图形上下文和线程中的GL操作,这对于许多高级图形应用来说很重要。例如:我们可能希望等待交换反馈的结果,然后在应用程序中使用这些结果。 刷新和结束 OpenGL ES 3.0 API继承了OpenGL的客户-服务器模型。应用程序(或客户)发出命令,这些命令由OpenGL ES实现(或者服......
iOS

OpenGL ES学习--帧缓冲区对象

About OpenGL ES

在本篇中我们将描述帧缓冲区对象的概念、应用程序创建它们的方法以及应用程序使用它们渲染到屏幕外缓冲区或者纹理的方法。 为什么使用帧缓冲区对象 在应用程序调用任何OpenGL ES命令之前,需要首先创建一个渲染上下文和绘图表面,并使之成为现行上下文和表面。渲染上下文和绘图表面通常由原生窗口系统通过EGL等API提供。渲染上下文包含正确操作所需的对应状态。由原生窗口系统提供的绘图表面可以是一个......
iOS

OpenGL ES学习--片段操作

About OpenGL ES

在OpenGL ES 3.0片段管线中执行片段着色器之后,可能应用到整个帧缓冲区或者单独片段的操作。片段着色器的输出是片段的颜色和深度值。下面的操作在片段着色器执行之后发生,可能影响像素的可见性和最终颜色: 裁剪区域测试 模板缓冲区测试 深度缓冲区测试 多重采样 混合 抖动 片段在前往帧缓冲区途中经历的测试和操作如下图所示。 缓冲区 OpenGL ES支持3中缓冲区,每种缓冲区都保......
iOS

OpenGL ES学习--片段着色器

About OpenGL ES

介绍片段着色器编写方面的细节。 固定功能片段着色器 在研究片段着色器的细节之前,值得简单地回顾一下老式的固定功能片段管线,这将帮助我们理解老式的固定功能管线映射到片段着色器的方式。在转到更先进的片段编程技术之前,这是很好的起点。 在OpenGL ES 1.1(以及固定功能桌面OpenGL)中,可以使用一组有限的方程式,确定如何组合片段着色器的不同输入。在固定功能管线中,实际上可以使用3中......
iOS

OpenGL ES学习--纹理

About OpenGL ES

之前我们已经介绍了顶点着色器,管线的下一步是片段着色器,这是大部分OpenGL ES 3.0视觉魔法发生的地方。片段着色器的核心方面是对表面应用纹理。 纹理基础 3D图形渲染中最基本的操作之一是对一个表面应用纹理。纹理可以表现只从网格的几何形状中无法得到的附加细节。OpenGL ES 3.0中的纹理有多种形式:2D纹理、2D纹理数组、3D纹理和立方图纹理。 纹理通常使用纹理坐标应用到一个......
iOS

OpenGL ES学习--顶点着色器

About OpenGL ES

本章首先概述顶点着色器,包括其输入和输出。然后,讨论几个例子,说明如何编写顶点着色器。 顶点着色器概述 顶点着色器提供顶点操作的通用可编程方法。下图展示了顶点着色器的输入和输出,顶点着色器的输入包括: 属性–用于顶点数组提供的逐顶点数据; 统一变量和统一变量缓冲区–顶点着色器使用的不变数据; 采样器–代表顶点着色器使用的纹理的特殊统一变量类型; 着色器程序–顶点着色器程序源代码或者描述......
iOS