自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【C# 基础】垃圾回收机制

大致的组成由 应用程序如何构造新对象 托管堆如何控制对象的生存期 如何回收对象的内存 CLR 要求所有对象都从托管堆分配。进程初始化时,CLR 划出一个地址空间区域作为托管堆。CLR 还要维护一个指针,我们把它称作 NextObjPtr,该指针指向下一个对象在堆中分配位置。 C# new 操作导致 CLR 执行步骤 计算类型的字段所需要的字节数 加上对象的开销所需的字节数...

2018-09-28 23:42:14 951

原创 【C# 基础】类型相关

C# 所有类型都从 System.Object 派生,不论隐式和显式 System.Object 的公共方法 Equals:两个对象有相同的值,返回 true GetHashCode:如果类型对象要在哈希表集合中作为 key 使用,重写该方法 ToString:默认返回类型完整名称 GetType:返回从 Type 派生的一个类型的实例 new 操作符所做的事情...

2018-09-27 10:25:54 156

原创 【图形学】CPU 与 GPU

CPU 处理器结构:冯诺依曼结构组成部分:一个包含算数逻辑单元和处理寄存器的处理单元 一个包含指令寄存器和程序计数器的控制单元 内存存储数据和指令 额外大存储器 输入、输出设备指令的处理过程,是从内存中读取数据和指令到寄存器中执行该指令,寄存器的读取速度非常快,所以关键的地方是从内存中读取,这是瓶颈所在,称为冯诺依曼瓶颈。克服冯诺依曼瓶颈的方法有缓存,预取和多线程。缓...

2018-09-26 11:21:59 887

原创 【Unity Shader】在后处理阶段使用模板

美式漫画风格的边缘描边,是基于图像检测的全屏后处理手段,做法是在 OnRenderImage 方法中处理。然后需要做到部分不描边,这个也可以用来分来做描边,很自然的想到使用模板来分开处理,但是 OnRenderImage 中按 unity 论坛中有人说的是 stencil 这时数据已经被清除了(不确定具体原因),一直没有效果,所以将这部分的处理移到了 OnPostRender 方法中,通过手动绘制...

2018-09-11 11:31:10 814

原创 【Unity Shader】光照模型

光照模型 Lambertian 各向同性的光照模型,与视角无关,效率高,用于低模的情况较多,属于 Unity 内置光照模型,使用时只需要声明 #pragma surface surfFunc Lambertian 即可,不需要额外方法 光照强度,即该表面顶点处的颜色的相关性: I = NdotL = dot (normal, lightDir) 简单的自定义光照模型,#pra...

2018-08-30 20:33:27 231

转载 【Unity Shader】非真实渲染

 冯乐乐的非真实渲染实验室

2018-08-30 14:52:22 603

原创 【Unity Shader】Surface Shader 和纹理相关的用法

用法篇Standard Surface Shader 该 Shader 的输出主要是为表面光照提供一些初始值用于计算,可以在官网下载内置着色器文件,然后搜索一些相关结构体的组成,比如 SurfaceOutputStandard 等 一篇关于这个的文章 Packed Arrays // 填充部分o.Alpha = _Color.a;o.Albedo = _Color.r...

2018-08-29 14:47:53 546

原创 DX杂记之延迟渲染

描述:这次来记录一下延迟渲染的部分,说是延迟渲染,其实包括了 Deferred Rendering,Light PrePass Deferred Rendering,Tile Based Deferred Rendering 等三部分,大体的做法都是相似,都是通过多个 Render Targets 存储图形表面的信息和光照信息至 GBuffer,然后计算,这几种方式不断改进是为了平衡gbuffer...

2018-08-27 15:43:08 709

原创 DX杂记之细分着色器和利用贝塞尔曲面平滑模型

细分着色器的构成细分着色器是为了将一大块的区域继续划分,划分成很多的小块 大体上由三部分构成,但也会涉及一些其它阶段的内容。 这三个阶段分别为 Hull Shader Stage, Tesslator Stage, Domain Shader Stage,他们需要一起工作,从名字就可以看出来是两个可编程着色器阶段中间夹着一个可配置阶段,具体顺序如图第一部分:Hull Shader...

2018-08-13 16:44:20 1221

原创 C++ 拷贝构造函数等编译器自动生成的函数

了解 C++ 默认编写的函数空的类,在C++处理过后,编译器会为它声明默认构造函数 copy 构造函数 copy assignment 操作符 析构函数并且这些函数都是 public 且 inline 的。class Empty {};class Empty {public: Empty() {...} // 默认构造函数 Empty(const Empty &amp...

2018-07-13 16:32:13 1141

原创 游戏编程精粹(一) 有限状态机FSM

1. FSM 文中是用于改进复杂人工智能决策,除此之外,其实建立一个行为模型都可以用这个方法2.行为模式是什么样的?拥有一个初始状态,根据输入,状态进行切换3.可以看下 unity 中的动画状态机模块,他是图形界面的,更加的直观和容易理解我们从 Entry 来看一下,这是入口状态,状态为Locomotion,他拥有两个可以选择转换的状态,一个是 vault,另一个是 Slide,由此我们可以看到,...

2018-07-06 23:37:43 370

原创 游戏编程精粹(一) 自动的单例(Singleton)模式

介绍一种通过模板自动实现的单例模式#include <assert.h>template<typename T>class Singleton{ static T* ms_Singleton;public: Singleton() { assert(!ms_Singleton); int offset = (...

2018-06-27 20:40:04 371

原创 游戏编程精粹(一) 模板元降低数学方法时间复杂度

1.模板元可以作为虚拟编译程序,快速大量的创建优化的代码。2.任何数学算法都能被模板化,只要有好的编译程序,中间可以完全优化掉,已达到最高的效率例子1:斐波那契序列:0,1,1,2,3,5,8,13... 通用方程为 Fib(n) = Fib(n-1) + Fib(n-2)通用函数:unsigned RecursiveFib(unsigned n){ if (n <= 1) ...

2018-06-27 19:01:07 174

空空如也

空空如也

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

TA关注的人

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