自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

派大星PatrickStar的博客

我们一起去捉水母吧

  • 博客(21)
  • 资源 (2)
  • 收藏
  • 关注

原创 纹理过滤

前言当纹理贴到具体的像素上时,纹理中心不一定位置上刚好对应着像素坐标的中心,因此在贴图时会产生一定的偏差,会产生模糊错位等问题。这时我们就需要纹理的映射过程进行一定的处理时,这就是纹理过滤。最近点采样(Nearest Point Sampling)这是一种最简单的采样过滤方式,它对于纹理采样点texel与最终画面上的pixel不对应时,会采样离这个pixel最近的texel进行采样。这...

2018-04-01 00:34:19 3180

原创 AssetBundle

开发阶段创建AssetBundle文件使用BuildPipeline类的BuildAssetBundle进行文件创建public static AssetBundleManifest BuildAssetBundles(string outputPath, BuildAssetBundleOptions assetBundleOptions, BuildTarget targe

2018-01-09 01:16:37 275

原创 Unity 3D协程

Unity3D 是单线程的StartCoroutine 开启协程Coroutine StartCoroutine(IEnumerator routine);Coroutine StartCoroutine(string methodName, object value = null);yield 暂停协程执行yield return null //暂停一帧,

2018-01-08 23:36:45 305

原创 Unity 3D优化

前言优化对游戏开发有很重要的意义,它主要分为三个方面的优化:CPU方面,GPU方面和内存方面的优化CPU优化DrawCallDrawCall是CPU调用底层图形接口,每渲染一次都要调用一次DrawCall,这对CPU无疑是巨大的开销。所以我们主要减少每个对象的渲染次数,多个物体最好一起渲染。主要有以下几个措施:Static Batching静态批处理。主要针对状态不会

2018-01-08 00:11:08 260

原创 C#实现List

前言使用泛型和索引器来自己实现一个集合类MyList,我们主要实现功能如下:1.Capacity获取容量大小2.Add()方法添加元素3.Insert()方法插入元素4.[index]访问元素(索引器)5.Count属性访问元素个数6.RemoveAt()方法移除指定位置的元素7.IndexOf()方法取得一个元素所在列表中的索引位置LastIndexOf()上面的方法是从前往后搜索,这个是从后往前

2017-11-01 19:07:48 733

原创 C#异常与调试

1. 错误信息打印 IDE 操作 VS Console.Write(); Console.WriteLine(); Unity Debug.Log(“”); Debug.LogError(“”); Debug.LogWarn(“”)2. 断点点击调试-窗口-断点,这个窗口显示了所有断点。3. 监视变量在中断模式下,通过调用堆栈和即时窗口查看 窗口 描述 调

2017-10-26 00:10:53 500

原创 Unity Shader入门精要总结--光照衰减

通过纹理实现光照衰减Unity在内部使用一张名为_LightTexture0的纹理来计算光源衰减。我们通常只关心_LightTexture0对角线上的纹理颜色值,这些值表明了再光源空间中不同位置的点的衰减值。例如(0,0)点表明了与光源位置重合的点的衰减值,而(1,1)点表明了再光源空间中所关心的距离最远的点的衰减。具体应用float3 lightCoord = mul(_LightMatrix0,

2017-08-05 17:25:55 3233

原创 Unity Shader入门精要总结--渲染路径

前向渲染路径原理​ 每进行一次完整的前向渲染,我们需要渲染该对象的渲染图元,并计算两个缓冲区的信息:一个是颜色缓冲区,一个是深度缓冲区。我们利用深度缓冲来决定一个片元是否可见,如果可见就更新颜色缓冲区中的颜色值。我们可以用下面的伪代码来描述前向渲染路径的大致过程:Pass { for(each primitive in this model){ for(each

2017-07-29 03:57:06 1347

原创 Unity Shader入门精要总结--透明效果

前言透明度测试:它采用一种“霸道极端”的机制,只要一个片元的透明度不满足条件(通常是小于某个阈值),那么它对应的片元就会被舍弃。被舍弃的片元将不会再进行任何处理,也不会对颜色缓冲产生任何影响;否则,就会按照普通的不透明物体的处理方式来处理它,即进行深度测试、深度写入等。也就是说,透明度测试是不需要关闭深度写入的,它和其他不透明物体最大的不同就是它会根据透明度来舍弃一些片元。虽然简单,但是它产

2017-07-29 01:50:58 6248

原创 Unity Shader入门精要总结--基本光照

环境光(ambient)除了直接光照,物体也可以被间接光照照亮,间接光照是光线经过多个物体之间反射,最后进入摄像机。在标准光照模型中,我们用环境光近似模拟间接光照。环境光计算简单,通常是一个全局变量,场景中所有物体都使用这个环境光。下面等式是环境光的计算: cambient=gambientc_{ambient}=g_{ambient}自发光(emissive)这部分用于描述给定

2017-07-28 18:26:02 1757

原创 线性表总结

线性表思维导图

2017-07-17 14:02:05 671

原创 树的性质

树的性质树中结点数等于所有结点的度数加1;度为m的树中第i层上至多有mi−1m^{i-1}个结点;高度为h的m叉树至多有mh−1m−1\frac {m^h-1} {m-1};具有n个结点的m叉树的最小高度为 ⌈logm(n(m−1)+1)⌉\lceil log_m(n(m-1)+1) \rceil;总分支数就是所有结点的度数;二叉树的性质非空二叉树上叶子结点数等于度为2的结点数加1,

2017-07-17 12:34:24 1112

原创 光栅渲染器

光栅渲染器代码

2017-05-16 10:54:00 863

原创 常用变换矩阵总结

前言在软渲中需要各种变换的应用,这里列出了几种常见的变换矩阵。虽然并不一定要知道每一步的推导过程,但看一下推导过程对于这些变换可以有更好的理解和记忆。变换矩阵1. 平移变换 具体推导⎡⎣⎢⎢⎢100dx010dy001dz0001⎤⎦⎥⎥⎥ \begin{bmatrix} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 1 & 0\\ dx&dy

2017-04-11 17:46:01 3724

原创 BRDF

前言现实世界中的表面绝大多数都是凹凸不平的。在这种情况下,可以把表面看成是大量朝向各异的微小光学平面的集合,我们肉眼可见的每个点都包含了很多个这样的微小光学平面。 光线照射到这些微小表面上时,同样一部分在表面发生反射。这些朝向不同的微表面把入射光线反射到不同的方向。另一部分光线发生折射,折射光线何去何从取决于物质的组成成分。 对于金属,折射进表面的光线的能量会立即被金属中的自由电子吸收,转换成电

2017-03-29 22:23:23 12712

转载 C++ 异常机制分析

转载自:http://www.cnblogs.com/QG-whz/p/5136883.htmlC++异常机制概述异常处理是C++的一项语言机制,用于在程序中处理异常事件。异常事件在C++中表示为异常对象。异常事件发生时,程序使用throw关键字抛出异常表达式,抛出点称为异常出现点,由操作系统为程序设置当前异常对象,然后执行程序的当前异常处理代码块,在包含了异常出现点的最内层的try块,依次匹配ca

2017-03-27 17:43:43 765

转载 GC基本算法及C++GC机制

转载自:http://www.cnblogs.com/QG-whz/p/5079638.html前言垃圾收集器是一种动态存储分配器,它自动释放程序不再需要的已分配的块,这些块也称为垃圾。在程序员看来,垃圾就是不再被引用的对象。自动回收垃圾的过程则称为垃圾收集(garbage collection)。在一个支持垃圾收集的语言中,程序显式地申请内存,但从不需要显式的释放它们。垃圾收集器会定期识别垃圾块,

2017-03-22 18:06:01 966

原创 GPU渲染管线

几何阶段:主要负责顶点坐标变换、光照、裁剪、投影以及屏幕映射,该阶 段基于 GPU 进行运算,在该阶段的末端得到了经过变换和投影 之后的顶点坐标、颜色、以及纹理坐标 光照计算属于几何阶段,因为光照计算涉及视点、光源和物 体的世界坐标,所以通常放在世界坐标系中进行计算;从 object space 到 world space将一个与其他物体没有任何参照关系的转移到一个统一的世界坐标中,

2017-03-22 17:10:05 1599

原创 桥模式

结构桥模式强调接口与实现的解耦 具体操作确定域中是否存在两个正交维度。这些概念可以是:抽象/平台,域/基础设施,前端/后端或接口/实现思考客户想要什么,平台提供什么设计一个面向平台的接口。它的目的是将抽象与平台分离为每个平台定义该接口的派生类创建一个“has”平台对象的抽象基类,并将面向平台的功能委托给它如果需要的话,定义抽象类的特化案例#include <iostream

2017-02-20 15:52:58 758

原创 观察者模式

描述观察者模式就是MVC模式中的View部分,所以应用也比较多。观察者模式定义了一种一对多的依赖关系,当一个对象的状态改变时,就自动通知并更新依赖关系。其实观察者这种一对多的关系就像拍卖。每个竞标者都有一个编号牌用来竞价。一旦拍卖开始,当一个竞标者(Observer)举牌,拍卖人(Subject)就会提高出价,并将新的价格告诉所有的竞标者(Observer)已进行新一轮的竞价。 结构Subject

2017-02-19 14:44:40 793

原创 装饰模式

结构当客户端只在意CoreFunctionality.doThis(),对OptionalOne.doThis()或OptionalTwo.doThis()并不关心。这时这些类会被Decorator基类所委托,而Decorator基类会以包含wrappee对象的方式进行委托。具体操作通常需要确保有一个核心控件,多个可选的装饰类以及一个接口创建一个通用的接口创建第二级基类(Decorator)用

2017-02-19 00:38:59 677

Real-Time Rendering 4th

Chapter 1 Introduction Chapter 2 The Graphics Rendering Pipeline Chapter 3 The Graphics Processing Unit Chapter 4 Transforms Chapter 5 Shading Basics Chapter 6 Texturing Chapter 7 Shadows Chapter 8 Light and Color Chapter 9 Physically Based Shading Chapter 10 Local Illumination Chapter 11 Global Illumination Chapter 12 Image-Space Effects Chapter 13 Beyond Polygons Chapter 14 Volumetric and Translucency Rendering Chapter 15 Non-Photorealistic Rendering Chapter 16 Polygonal Techniques Chapter 17 Curves and Curved Surfaces Chapter 18 Pipeline Optimization Chapter 19 Acceleration Algorithms Chapter 20 Efficient Shading Chapter 21 Virtual and Augmented Reality Chapter 22 Intersection Test Methods Chapter 23 Graphics Hardware Chapter 24 The Future Chapter 25 Collision Detection (download chapter) Chapter 26 Real-Time Ray Tracing (download chapter)

2018-09-14

光栅化渲染器

简单的光栅化渲染器,实现几何阶段,图元装配,Triangle Setup,光栅阶段

2017-05-16

空空如也

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

TA关注的人

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