自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 unity 性能优化指标

显卡驱动所反馈的内存分配到。以下,闪退风险才低。中实际使用的空间地址大小。内存峰值控制在硬件总内存。存在泄露风险,控制在。

2023-09-17 13:42:50 561

原创 真实感角色渲染总览

skin:主要部分Specular Reflections:Global illuminationsubsurface Scattering(sss), 次表面散射轮廓模型UE4 的一些皮肤渲染特点:边缘溢色, 双镜叶高光,反向散射的光线传输 , 短距离动态辐照度。 Practica...

2020-05-19 11:00:26 520 1

原创 Human and Content Digitization

记录下我的开源项目数字人计划计划分为下面几个部分:1 渲染部分 眼睛,头发, 皮肤D2 自动聊天部分,包含对答,表情,口部动作3 扩展部分:姿态动作,舞蹈生成2020-5-15

2020-05-15 19:57:03 286

原创 Mental APP 以及 游戏的渲染性能优化策略-----delivering optimized mental apps ans games

Paralax cubemap reflections: 视差的cubemap reflectionsRender opaque meshed first and translucent meshes laterDon’t render invisible meshesSubmit offscreen work early...

2020-01-21 16:07:29 232

原创 模型法线的计算以及调整

顶点法线计算 computation:在①中,总结了几种根据 face normal 计算 Vertex Normal 的方法:1. MWE(Mean Weighted Equally)简单来说,就是根据顶点周围的共光滑组的面法线的和求平均来得到该点的顶点法线2. MWA(Mean Weighted by Angle)这个方法,在考虑了每个三角面的两条边的角度作为权重...

2020-01-20 16:39:59 1901

原创 基于相片集的头发重建研究实现

The overall flow is as described as follows. Firstly, we use colmap to get the frame pointcloud. After that, though hair segmentation with deep learning and gabor filter, we obtain the 2D hair...

2020-01-20 16:04:50 298

原创 light map 的改进策略

1,Lighting Technology of the Last Of Us(Sig 2013)这篇文章主要阐述了两个思想:1 烘培方向性 ,如下两张图的对比,可以看出2,接缝的最小二乘法优化二, Efficient Irradiance Normal Mapping 也是另外一种,改进light map 法线效果不好的方法。使...

2019-08-23 09:35:50 199

原创 PBR开发相关知识导图(及总结)

PBR 相关公式的推导:diffuse 部分:Specular 部分:PBR 知识体系总结(导图结构部分,参考浅墨)SpecularBRDF: Specular D: 法线分布函数(Normal Distribution Function) 描述微表面法线的概率分布 各项同性: GGX[2007], Blinn-Pho...

2019-07-05 09:07:17 1137

原创 《计算思维方式》摘要以及书评

“编程解题的一般思维方法或过程,可以概述为‘观察-联想-变换’, 通过对问题的观察,认识;然后通过联想,寻找问题同已有知识和经验之间的联系;最后通过变换,转为另一个或几个易于解决的新问题,最终达到解决问题的目的”----- 在程序查找bug 或实现一个需求的时候,经常都是这样的;这个过程中每个步骤都很重要; 观察,可以针对某个bug,或问题,首先需要log,或断点观察更多的...

2019-06-02 11:46:36 239

原创 头发的生成以及渲染方案

搁笔良久,今起复耕本文主要涉及头发的生长方案,光照模型,阴影效果,透明效果以及多次采样抗锯齿。一. 头发的生长:       定义根节点以及头发长度参数       头发从头皮生长,根据mesh的UV展开图,编辑头部头发生长区域以及利用颜色控制头发的长度。 鉴于头发后期仿真模拟的需要,此处使用tessellation shader,可以生长更加细密的头发。       对头部头...

2017-10-02 10:11:59 5016

原创 贴花编辑器实现细节

之前写过一篇unity 的贴花编辑,当时是学习unity插件的代码。最近因为工作需要,做了一个可以编辑纹理局部贴花的功能实现。大致上是根据以前的思想。但是自己用openGL 实现一遍,还是切身体会到不少深入的东西。回顾之前的贴花编辑器的思想,在unity 中用gameObject 作为 decal。 然后通过对影响到的mesh做切割,获取顶点,再重新计算mesh信息(uv, tangent

2017-04-18 18:48:30 1053

原创 简单的纹理旋转以及平移操作

实现效果,可以控制材质纹理的旋转以及平移编辑。实现思想:通过传入shader 中的矩阵,利用鼠标的运动,影响控制纹理坐标的改变,进而实现纹理的平移和旋转操作知识背景:矩阵的旋转平移实现步骤:1.定义uniform, 2. 获取到纹理,纹理的坐标矩阵3. 鼠标的运动改变纹理的矩阵坐标4. 在渲染流程中set uniform matrix关于鼠标控制的附

2017-03-31 15:45:08 2004

原创 编辑器中材质参数设置以及记录保存功能

PBR 参数调整记录功能       功能介绍 struct matPBRInfo{    int nShininess;    int nRougthness;    bool nHasTexture;  string nTextureFile;}Typedef std:: map TMAT_PBRINFO;   typedef unsigne

2017-03-05 17:15:12 975

原创 unity 溶解贴花编辑器

实现的效果:       游戏中,比如溅水花到墙壁上,然后水渍在墙上慢慢消融的这种效果实现机制:        首先需要把水花贴到墙壁,这里需要用到贴花的知识。然后,实现贴花消融的效果,需要一个溶解的shader。在贴花的实现中,有几种方法,一种是利用后期的方法,通过深度buff,检测到可以看到的物体的表面,然后对这些模型重新着色,这种方法的好处是可以获取更加逼真自然,也不容易受物体表

2016-11-26 11:51:17 2672

原创 基于UE4+ OpenCV 的混合现实 (webCamera, mix-reality, blue screen matting)

总体效果       类似混合现实,实现展示玩家玩的VR游戏的实况基本思想       利用openCV 插件,通过摄像头获取到玩家在蓝幕中玩游戏的场景,再使用蓝幕技术,对图像做处理,获取玩家的图像;最后和游戏场景进行叠加。具体实现( UE 4.12,  Opencv 2.4.13)1, 在UE4 中打开 vs,添加一个class,  继承 Actor, WebCame

2016-10-16 11:36:38 10172

原创 C++元编程思想(译)

C++ 是一种类型概念较强的语言,编译的时候都需要知道变量的类型。有时,在编译过程中,需要动态确定类型先看一种简单的 class Book { public: Book(const string & author_, const string & title_, const strin

2016-07-21 08:57:14 530

原创 透明物体的渲染

前段时间涉及到一个功能的开发,游戏中当模型首次出现在场景中加载的时候,需要有渐变出现的效果。当时是对模型材质进行替换为透明材质,然后对透明材质alpha做曲线变换。这个过程看似比较顺利,但是对于怎么渲染透明物体确是没有深入的研究。以后开发中需要多深入的了解过程中的一些隐藏的部分,这样能力才会有更多的提高。-----------------------------------------

2016-06-26 10:33:58 2304

原创 游戏中鼠标拾取方法

在游戏中,鼠标拾取是不可或缺的。在D3D sample 中有一种方法,对鼠标点进行MVP 的逆变换,得到它的空间位置,然后使用 函数 D3DIntersect , 和物体的位置进行比较,进而判断出是否是拾取到某个mesh1. 获取当前的转换矩阵,包括 projection, view, 和 worldvoid detect_picking(){ // get th

2016-06-25 08:55:20 2433

原创 辉光效果(Glow Effect)

辉光效果在游戏中有着广泛的应用,比如城市夜景,比如特效光效产生辉光,还有些人物模型在升级时候加辉光加强效果。自然界中,辉光产生的原理是因为光线经过折射以及散射,到达人眼中的光线看起来会比原来的光源大,尤其是在雨雾天气;明白了辉光产生的原理。在游戏中,我们要制作辉光效果的大体思路就是,找到需要产生辉光的部分,然后对它进行glow,blur;最后一步即贴回到 framebu

2016-04-30 17:17:50 17245

原创 Kiss the Rain -- 地表雨水动态效果 (Dynamic rain and its effects)

水主要影响 材质,水积累和水洼Type 1: 干燥区域Type 2: 湿地区域:即湿润,但是没有积水的地方Type 3:湿透区域:比如水洼的边缘,the water remains to some extent but no puddles are formed.Type 4:水洼区域;对于Type 2, 在文献[1] 中,建议设置5到10 的镜面反射系数,0.

2016-03-07 00:36:43 4079

原创 使用设计模式优化设计案例<一>

使用设计模式设计工程文件

2016-02-23 21:27:33 612

原创 游戏中掉落效果的实现

模拟实现游戏物品掉落效果

2016-01-31 12:43:57 3672

原创 智能指针

智能指针即是可以让程序员不用考虑释放的问题. auto_ptr 的实现如下,template class auto_ptr{  T* ptr; public:    explicit auto_ptr(T* p =0) : ptr(p) {}   ~ auto_ptr()                      {delete ptr;}   T& operator*

2016-01-28 17:46:17 811

原创 本月工作总结—淡入淡出效果以及贴花的改进

游戏中人物出现在视野中,需要有个渐变的过程,及淡出。做法当然想到用alpha 的渐变来控制,此时需要在update 中不断的变化alpha 值。这里涉及到一个问题,alpha 的渐变,要有人物的实际淡入淡出效果,还是需要是一种透明材质。所以综合来说,思路如下1. 有淡出的出发条件,保存原来材质,设置透明材质;2. update 透明材质的alpha 值,通常是 0~1 的渐变;

2016-01-28 15:22:56 642

原创 写在2016开篇

2015年就要过去了,有诸多不舍;2016年就要到了,满怀希冀;过去的一年中,尝试过很多,广泛的涉猎游戏图形编程领域。对游戏开发有更多的认识,年底也经历的很多的反思,在这条道路上要怎么走的更好。2016,是自己迈入计算机领域的第10个年头,在这个特殊的年头,希望自己有更大的进步。总结过去的一年,也是参加工作第一个重要年份,觉得关键是要养成良好的工作学习习惯。优秀的习惯,是能够卓越的关键

2015-12-31 22:33:16 453

原创 光栅化

1. 视口转换 2. 扫描转换

2015-12-08 11:01:33 544

原创 顶点处理机制

渲染管线主要由以下各阶段组成: 顶点操作包括: 转换操作、光照操作 以及动画操作。 1世界转换 1.1 View transform   相机空间 根据3个参数: Eye, At and Up. 这些参数用于构造 相机空间 相对于相机空间,维护场景对象时,需要将相机空间(Eye, u,v,n) 叠加到世界空间(O,e1, e2, e3) 分为两步:将Eye 移到 O; 旋转

2015-12-08 09:23:10 1016

原创 光照模型

物体表面的颜色由 自发光(emissive), 环境反射(ambient), 漫反射(diffuse) 和 镜面反射(specular)等光作用的总和。 介绍并Cg代码实现了这几种光照模型。

2015-11-21 09:38:51 609

原创 纹理映射(Texture Mapping)

纹理的过滤,寻址,映射等

2015-11-17 22:39:58 4832

原创 3D 图形转换(3D Transformation)

1. 移动 其中(a,b,c) 表示移动的方向向量,比如沿X 移动 -5, 则表示为 图形学中,有以下几种空间概念: object space, world space, view space, projection space, 和  screen space 通常物品显示出来,需要经如下变换   旋转: 如下分别表示沿X,Y,Z 旋转 缩放变换:sx, sy,

2015-11-16 22:25:24 976

原创 粒子系统

1. 基本原理粒子系统由大量的粒子构成,每个粒子有大小,位置以及纹理,另外还有比如颜色,透明度,运动速度,加速度,自旋周期,生命周期等属性粒子系统随时间不短变换,常经过下面几个变换1)产生新的粒子2)更新现有粒子属性3)删除已经消亡的粒子4)绘制出粒子2. 粒子系统设计1) 定义粒子数量,区域,宽度,高度  #define PARTICLE_NUMBER 100

2015-11-16 22:22:00 597

原创 常见智力算法类面试题分析

1. 二进制中1 的个数int NumberOf1(int n){ int count = 0; while (n) { ++ count; n = (n-1) & n; } return count;}2. 出现次数超过一半的数字     利用标记,相邻相同就是加1,不同减1      一个数字,一个次数3. 找

2015-11-15 22:42:07 454

原创 游戏区域系统设计

游戏中地图中需要设置不同的区域,尤其对于大型网络游戏,到达不同的区域通常需要提示本区域名称。本节主要讨论一种游戏区域信息的管理方法:实现步骤 1.首先对区域进行边界的描边,获取区域的顶点描边信息2. 对存储有区域以及区域描边信息的地图,进行信息归纳,形成稀疏矩阵存储, 其中X再加入区域ID信息区域信息: struct SMapAreaInfo { typede

2015-11-15 22:00:05 942

翻译 A*算法

http://www.redblobgames.com/pathfinding/a-star/introduction.html   Breadth First search frontier 1. pick and reomove a location from the frontier 2. mark the location as visited so that we know n

2015-11-15 21:33:25 325

原创 BSP 树 和 八叉树

八叉树: The Quadtree derives  from the idea of dividing a square area into smaller squares. start with a unity square as the root of the tree, now divide the square into four smaller aquares.   eac

2015-11-15 21:28:29 1849

原创 细胞状态机(Cellular Automata)产生地形

以下解释来自 百度百科: 细胞自动机模型的基本思想是:自然界里许多复杂结构和过程,归根到底只是由大量基本组成单元的简单相互作用所引起。因此,利用各种细胞自动机有可能模拟任何复杂事物的演化过程。 分类: 1)最简一维细胞自动机: 黑色为1,白色为0. 那么任意一个方格和周围两个方格就有 111,110,101,100,011,010,001,000 8种状态。 2)编码规则: 当前细胞ci,

2015-11-15 21:26:40 1315

原创 骨骼动画

一,3D模型动画原理和分类 关节动画(Skeletal Animation): 原理:  角色模型是层次模型,要活的某一个部分相对于世界坐标的位置,必须从根节点开始遍历该节点所有的祖先节点累计计算模型的世界变换。模型不是一个整体的Mesh,而是分成很多部分Mesh,通过一个父子层次结构将分散的Mesh组织在一起,父Mesh带动其下 Mesh 运动。动画帧中设置各个子Mesh相对其父Mesh变换

2015-11-13 21:21:03 1244

原创 【Unity Shaders and Effects Cookbook】Diffuse Shading

1. 基础的shader 写法Shader "CookbookShaders/BasicDiffuse" { Properties { _MainTex(“Base(RGB)”,2D) = “white”{} } SubShader { Tags { "RenderType"="Opaque"

2015-11-09 21:24:33 626

原创 【Unity Shaders and Effects Cookbook】Using Textures for Effects

使用纹理可以使得Shaders更快速,也更逼真;使用的同时,需要控制纹理数目,避免过多加载纹理的运行消耗下面逐步说明使用纹理制作流行水面的效果:1.定义 X方向以及Y方向的速度变量(因为UV 是二维的),控制纹理的流动速度Properties{   _MainTint("Diffuse Tint",Color) = (1,1,1,1)   _MainTex("Base (R

2015-11-01 11:50:27 455

原创 【Design Patterns】命令模式

//抽象出 orderpublic interface Order{ void execute();}//定义类,封装执行方法public class Stock{private String name= "ABC";privare int quantity = 10;public void buy(){ System.out.println("Stock[Name:" +

2015-11-01 11:19:06 304

3D Game engine design

3D Game engine design

2023-09-18

potentially visibility set场景剔除,可见序列集的计算

场景剔除,可见序列集的计算

2023-09-17

顶点法线计算方法总结英文

顶点法线计算方法总结

2023-09-17

港股股票公司按行业分类

用于股票研究学习,数据分析,仅供参考,数据来源网络,股票有风险,投资要谨慎

2023-09-17

A股上市公司名单(代码)按行业分类大全

A股上市公司名单(代码)按行业分类大全,适合数据分析,股票研究学习,数据具有时效性,数据来源网络,仅供参考,股票有风险,投资要谨慎

2023-09-17

图形学知识经典书籍,详细介绍纹理,模型,采样等内容

图形学知识经典书籍,详细介绍纹理,模型,采样等内容

2023-04-29

importance sampling.pdf

重要新采样,适合图形学,以及深度学习人员查看

2021-02-27

OpenCV 摄像机功能UE插件

OpenCV 版本 2.4.13 UE 版本 4.12 提供对摄像机WebCamera 的UE4支持

2016-11-13

real shading in Unreal Engine

介绍了一些虚幻引擎中使用的渲染技术

2016-09-25

设计模式示例工程文件

使用设计模式优化代码设计,含有工厂模式,适配器模式,桥接器模式

2016-02-23

实习管理系统UML

实习管理系统 数据模型,活动图,时序图 等课程设计

2015-11-17

【Ray Tracing from Ground Up】工程代码

书中所有示例代码的文件,涵盖摄像机,光源,阴影,BRDF等实现

2015-10-06

introduce to D3D Game Programming code

龙书 9~15章 的代码,"" 需加 L"", d3dutility.cpp 文件中需加 winmm.lib

2015-09-13

最优二叉搜索树模范讲解

详细讲解了OBST的构造,并举例说明,最后给出了代码。

2015-08-30

Directx 11 3D 编程纹理,光照,材质等

简单罗列了3D编程的一些基础知识 主要涉及纹理 光照 材质 平移变换等知识

2013-08-16

effective C++ 读书笔记 PPT

摘录了《Effective C++》 (Scott Meyers 著)中有参考价值的编写代码建议,方面阅读

2013-07-10

《programming pearls》 Reading Notes

《编程珠玑》(英文版) 读书笔记, 以ppt方式展现了这本书中的一些精华所在..

2013-04-12

空空如也

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

TA关注的人

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