自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【GAMES101计算机图形学笔记】Lecture03 Transformation

文章目录2D变换矩阵缩放矩阵反射矩阵Shear矩阵旋转矩阵线性变换等价于矩阵齐次坐标系平移变换齐次坐标系仿射变换用齐次坐标来表示2D变换逆变换变换组合与分解3D变换2D变换矩阵缩放矩阵均匀缩放非均匀缩放反射矩阵Shear矩阵旋转矩阵线性变换等价于矩阵齐次坐标系平移变换齐次坐标系平移变换无法表示成矩阵与向量相乘的形式,并非线性变换。解决方案:齐次坐标系。齐次坐标系通过添加一个维度,将平移变换与其他线性变换表示为统一的矩阵与向量相乘的形式。同时通过新加的

2022-02-13 21:42:56 292 1

原创 【GAMES101现代计算机图形学笔记】Lecture02 Review of Linear Algebra

图形学依赖的学科基础数学(线性代数、微积分、统计)物理(波动光学)其他(信号处理(走样、反走样技术)、数值分析(积分(蒙特卡洛积分)))美学线性代数基础知识向量向量表示法Vector Normalization...

2022-02-08 11:10:43 506

原创 【GAMES101现代计算机图形学笔记】Lecture01 Overview

GAMES101现代计算机图形学笔记

2022-01-30 22:16:42 613

原创 基于Filament引擎的Animoji效果实现

Animoji是2017年9月13日苹果发布的新款手机iPhone X上的增强现实(AR)表情包。其使用面部识别传感器来检测用户面部表情变化,同时用麦克风记录声音,并最终生成可爱的3D动画表情符号。2018年6月5日,2018年苹果WWDC开发者大会上,苹果为Animoji引入了一项新技术——舌头感知Tongue Detection,可以感知用户吐舌头的表情,让表情更可爱。下面是一个demo视频:我们基于Filament渲染引擎也实现了Animoji能力,下面是两个示例素材demo:本文重点介绍一下

2021-05-28 15:08:36 3168 4

原创 渲染引擎性能优化:Shader Program共享

OpenGL的渲染管线包括很多阶段,顶点着色器,图元装配,栅格化,片元着色器,测试和混合,最后输出到FrameBuffer上,如下图所示:其中顶点着色器和片元着色器是两个可编程管线阶段,其他阶段都是固定管线阶段。一个OpenGL Program绑定了一个vertex shader和一个fragment shader,渲染时使用program就可以在顶点着色器和片元着色器处理阶段使用program绑定的vertex shader和program shader。下面是一个例子,是抠脸视频滤镜用到的vert

2021-05-28 14:45:18 592 1

原创 Android图像处理系列:VTF兼容性处理方案

一般的特效渲染引擎都包含对人脸进行形变的功能,能够对图片或实时相机流数据中的人脸进行形变,以实现脸部美型或者夸张搞笑的脸部形变效果。形变方式通常有两种:分次渲染和位移向量图。分次渲染是每次网格点位置调整后都先将结果渲染出来,作为下一次形变的原始图像输入;位移向量图可以先将多次的网格形变统一计算处理,最后再将最终的形变效果渲染出来。位移向量图的实现方式效率较高,但是在Android平台上会有顶点着色器纹理采样点个数限制的兼容性问题,本文就对此兼容性问题进行讨论。形变基本原理特效渲染引擎对人脸进行形变的功能

2021-05-28 14:37:35 512

原创 Android图像处理系列:渲染性能优化——GL多线程的使用

对于一个相机类应用来说,帧率或者流畅度是最关键的性能指标之一。一般来说,相机类应用因为要对图像数据做美颜、滤镜等处理,对每一帧数据的处理流程都比较长。天天P图的相机滤镜链处理过程也很长,中间包含了非常多步的计算和渲染,相机流处理流程中一帧要经过10~20个滤镜处理,即要调用OpenGL draw call10~20次,还包括了很多CPU阻塞操作,包括CPU计算(人脸检测、手势检测等)、纹理上传和下载等,而且滤镜处理数据还在随着产品需求增加而不断增加。如何在保证产品效果需求不断增加渲染和计算的情况下保证用户使

2021-05-28 11:59:57 2202 3

原创 Android图像处理系列:OpenGL混合模式的使用

OpenGL一次渲染过程包含了多个阶段,包括顶点着色器、图元组装、栅格化、片元着色器、测试和混合等,最后将结果输出的FrameBuffer上。渲染管线最后一个阶段就是混合。混合是在绘制时,不是直接把新的颜色覆盖在原来旧的颜色上,而是将新的颜色与旧的颜色经过一定的运算,从而产生新的颜色。新的颜色称为源颜色,原来旧的颜色称为目标颜色。传统意义上的混合,是将源颜色乘以源因子,目标颜色乘以目标因子,然后相加。在OpenGL里做颜色混合一般有两种方式,一种是将要混合的纹理都传入Fragment Shader,在

2021-05-28 11:54:24 1222 1

原创 Android图像处理系列:离屏GL线程的创建和使用

在Android上做图片或视频帧处理一般有两种方式,一种是在CPU上运行,比如用Matrix类对bitmap做平移、缩放、旋转等变换操作,用OpenCV对图片做格式转换等;另一种是在GPU上运行,一般是通过GLSurfaceView在屏幕上申请一块Surface,调用OpenGL ES API对图片纹理做处理。CPU的图片处理耗时一般是GPU的数十倍,在实时性要求比较高的场景下还是需要用GLSurfaceView来做处理。OpenGL ES API的调用和执行需要OpenGL上下文环境,而创建OpenGL

2021-05-28 11:42:48 1397 1

原创 算法:只用位操作实现+、-、*、/、幂次运算

本文整理了不用常规算术运算,只用位操作和判断,实现+、-、*、/和幂次操作的算法题的解题思路,基本想法都是通过把一个运算数看作二进制数,利用不同运算固有的运算率减少计算次数,仔细观察会发现它们都有基本一致的套路,掌握了以后就可以很轻松地举一反三。

2017-04-27 08:55:40 1803

原创 算法:判断数字奇偶性(parity)

数字奇偶性在英文里称为parity,意思是一个数字的bit位中,1的个数是否是奇数。本文介绍了4种计算数字parity的方法,除了brute-force以外,其他方法各有精妙处,与大家分享。

2017-04-19 22:03:56 5969

原创 重拾键盘

重拾键盘

2017-03-31 08:52:51 435

原创 OAuth 2.0 原理介绍

最近在做对用户的认证及REST API的访问权限控制,需要用OAuth来实现第三方应用对我们API的访问控制。OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。OAuth在全世界得到广泛应用,目前版本是2.0版。本文对OAuth 2.0的应用场景、设计思路和运行流程做一个简明通俗的解释。

2015-08-20 15:00:51 3630 1

原创 Spring boot 学习知识点

最近再看Spring boot官方文档,发现一些之前没理解或是没注意到的知识点,在此记录:@ComponentScan 注解自动收集所有的Spring组件, 包括 @Configuration 类。如果你绝对需要使用基于XML的配置, 我们建议你仍旧从一个 @Configuration 类开始。 你可以使用附加的 @ImportResource 注解加载XML配置文件。Spring Boot自

2015-07-24 16:50:37 689

原创 MySql zip Package installed on Windows 7

Today is my first day to new company. I deal with the registration stuff in the morning. In the afternoon, I began to configure the environment of their plugin management system. During this process, I

2015-07-22 22:17:55 482

原创 用Primefaces框架创建的报社管理系统

在去年正式入职之前,经历了一段漫长而煎熬的STM,我的RD4项目是报社管理系统,利用Primefaces框架实现,具体功能自己设计。本文对报社管理系统NP Pillar的功能做一个总结。系统功能系统功能主要包括8个部分:内容信息管理销售信息管理管理员信息配置员工信息管理时间管理评价系统日程管理个人信息管理权限管理登陆后页面如下所示: 菜单栏对这八部分的功能进行了分类,用户

2015-07-20 16:13:57 2754 1

原创 Android 启动页面弹出效果

OCRus支持三种语言的识别:英语、中文和日文。这三个Tesseract语言包合起来约有70M左右,APK文件中拷贝语言包到手机存储中需要几秒时间,所以我们做了一个启动页面,在为用户展示App第一印象的同时,后台拷贝这三个语言包。经过比较,知乎日报的启动页面有从中心点展开逼进用户的效果,我们决定利用此效果来设计启动页面。最终效果如图所示:

2015-07-15 12:04:59 1776

原创 向两边展开的Floating Action Button

在开发OCRus的照相页面时,我们希望能更好的引导用户进行操作,用户在点击照相按钮后,分别向两边弹出确认和删除按钮,并隐藏照相按钮,避免让用户迷惑。最后实现效果如图: 弹出效果是基于FloatingActionButton做的,但这个库中子按钮的弹出方向都只能沿同一个方向,都向左、都向右、都向上或都向下,不能分别向左和向右的效果。所以我Hack进源码对这个库做了扩展,源码和示例程序见Gith

2015-07-14 12:50:06 2579

原创 Tesseract 源码分析

之前的OCRus开发工作告一段落,后端OCR识别利用开源OCR引擎Tesseract。此文介绍了Tesseract源码阅读环境的配置,并对Page layout analysis部分的源码进行分析跟踪,输出中间结果以方便未来调试。

2015-07-14 10:51:32 11112 8

空空如也

空空如也

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

TA关注的人

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