- 博客(20)
- 资源 (7)
- 收藏
- 关注
原创 字符编码
为什么写这篇文章 字符编码的问题一直以来困然着我,每次遇到相关问题需要解决,都要重新去搜索学习。但是,网上的一些文章往往也是自相矛盾的半成品,再加上windows的奇怪命名,导致我对这些概念似懂非懂,所以想借此机会重新理顺这些概念顺带学习。相关概念字符集(character set) 为每一个「字符」分配一个唯一的 ID(学名为码位 / 码点 / Code Point)。编码规则/编解码(encoding) 将「码位」转换为字节序列的规则(编码/解码 可以理解为 加密/解密 的过程)字
2021-02-07 11:09:08
222
原创 DeferredShading
目录什么是延迟渲染延迟渲染的原理延迟渲染的优点延迟渲染的缺点1.什么是延迟渲染 正向渲染(Forward Rendering)的渲染思路是,需要把要渲染的Mesh对场景中每一个(受影响的)光照都要渲染一次。如果一个场景中有N个光源和M个Meshes,那么一次绘制就需要N*M次draw calls。如果场景中Mesh数量很少的话并不会称为性能瓶颈,但是如果Mesh很多并且有多...
2018-12-06 18:08:33
337
原创 八叉树场景管理
目录什么是八叉树(八叉树的数据结构)八叉树的图例八叉树的实现算法八叉树的场景管理器代码实现八叉树的应用场景1.什么是八叉树——八叉树的数据结构 八叉树是一个树形结构,它的特点就是每个节点正好拥有八个子节点。它的这个结构特点正好能把空间立方体平均分成对称八份。利用这个特性,八叉树经常用在3D图形学中或者3D游戏中的碰撞检测,场景管理等。Each node in an o...
2018-12-05 17:09:38
3299
原创 UGUI-Cavans
Canvas是unity中的一个组件。它的意思就是画布,作用就是让UI它上面绘制。所有的UI控件必须是拥有Canvas组件的GameObject的子节点。我们在Scene中创建一个Canvas,其实就是创建了一个带有Canvas组件的GameObject。Canvas属性:RenderMode:RenderMode列举了Canvas的渲染模式,可供选择的有Screen Spcae-Overlay,S
2017-04-11 10:32:20
709
原创 Unity meta文件
meta文件从哪里来Unity中每个资源文件都会对应生成一个.meta文件。meta文件的作用meta文件是用来区分项目中不同资源的。meta文件格式内容大致如下(并不全且也不都是这样):fileFormatVersion: 2guid: 95a43df2fe411494ba1c2b65feb8a9f9folderAsset: yestimeCreated: 1490586051licens
2017-03-31 14:41:44
5655
转载 Unity 内存管理
作者:终点 原文地址:http://gad.qq.com/article/detail/7192174Unity 内存管理为什么在unity项目开发中的内存占用是一个非常大的问题,那是因为一些场景和代码造成的非必要内存的占用,那么这种问题如何解决呢?下面会为大家unity中的内存管理,了解内存的种类以及对应种类的优化和使用的技巧。三种内存·
2017-03-24 14:06:56
695
原创 Unity3D 点光源使用衰减公式Shader
Unity在内部使用一张名为_LightTexture0的纹理来计算光源衰减。第一次看到比较懵逼,本着学习的态度,就自己实现一个衰减公式。衰减公式参考龙书:shader:Shader "NinCoolShader/MyForwardRendering2"{ Properties { _Diffuse("Diffuse", Color) = (1, 1, 1, 1) _
2017-03-14 20:40:58
4753
2
原创 光照模型
光照模型是计算机图形学中最基础的知识,是用数学方法和物理方法来描述现实生活中的光照。现实环境中真实的光照可以抽象为三种独立的光照效果叠加:1.环境光(Ambient Lighting)2.漫反射(Diffuse Lighting)3.镜面光(Specular Lighting)环境光:在现实生活中太阳光经过无数物体的反射能够充斥到任何一个它能进入的角落。我们把这
2017-03-10 13:40:44
4130
原创 记录一次非常蠢的经历
问题描述:计划用Vs2015来测试下boost的正则表达式,就新建了一个win32项目,配置好include路径,然后#include,结果编辑器提示找不到!!!解决问题:1.首先怀疑是环境变量设置错误,所以第一时间检查系统环境变量下boost的路径,发现没有问题。2.然后怀疑自己大脑短路,是否忽略了什么设置,所以打开原来的项目对比配置,发现没有区别。3.怀疑vsbug。因为我装的是中
2017-03-02 15:41:57
394
原创 C++11 std::move和std::forward
1.左值,右值和右值引用:在C++开发过程中我们会经常遇到左值,右值这种专业名词,似乎不懂得他们到底是什么照样也能编写出程序,他们到底是什么呢?最简单的判定方法就是"="左边的就是左值,右边的就是右值。到了C++11中,右值又用了两个概念来区分,一个是将亡值(xvalue, eXpiring value),一个是纯右值(prvalues, pure rvalue).重新划分的话,就
2016-09-23 21:14:44
461
原创 游戏开发中有限状态机
有限状态机在游戏开发中是经常用到的数学模型,虽然我做的是"万年捕鱼",但是有幸在2014年用Unity开发《怒海潜江》(已经成为线上尸体)中研究学习了有限状态机并且在项目中成功使用,对BOSS状态的控制让我惊艳到了(虽然是自己开发的,哈哈)。时至今日很多时候都在做重复的工作,最近的招聘好多应聘者都谈到了有限状态机这个东西,那么就重新来学习一次吧。有限状态机,(英语:Finite-state
2016-09-20 13:32:18
2620
原创 《java与模式》学习之状态模式
行为模式是对在不同的对象之间划分责任和算法的抽象化。行为模式不仅仅是关于类和对象的,而且是关于他们之间的相互作用的。行为模式分位类的行为模式和对象的行为模式两种。1.类的行为模式 类的行为模式使用继承关系在类之间分配行为。2.对象的行为模式 对象的行为模式则使用对象的聚合来分配行为。---------《java与模式》阎宏状态模式把所有研究对象的行为包装在不
2016-09-18 17:32:47
500
原创 《java与模式》学习之观察者模式
行为模式是对在不同的对象之间划分责任和算法的抽象化。行为模式不仅仅是关于类和对象的,而且是关于他们之间的相互作用的。行为模式分位类的行为模式和对象的行为模式两种。1.类的行为模式 类的行为模式使用继承关系在类之间分配行为。2.对象的行为模式 对象的行为模式则使用对象的聚合来分配行为。---------《java与模式》阎宏观察者模式的结构:
2016-09-14 13:35:26
466
原创 python拷贝文件
在做cocos2dx-js的时候每次打测试包都要拷贝js到打包环境中,但是又有很多文件不想拷贝进去,所以就用python写了一个脚本来进行拷贝粘贴,顺便学习了一下python。代码非常简单,第一个功能是直接拷贝整个文件夹,第二个功能是遍历判定后缀名拷贝,但是还是会创建文件夹路径(暂时没有优化掉,我的一个思路是先判定当前路径树下是否有需要拷贝的文件,但是感觉复杂度瞬间就高了,暂时没有好的解决方案,先
2016-09-13 11:09:57
1127
转载 C++对象模型
何为C++对象模型?C++对象模型可以概括为以下2部分:1. 语言中直接支持面向对象程序设计的部分2. 对于各种支持的底层实现机制语言中直接支持面向对象程序设计的部分,如构造函数、析构函数、虚函数、继承(单继承、多继承、虚继承)、多态等等,这也是组里其他同学之前分享过的内容。第一部分这里我简单过一下,重点在底层实现机制。在c语言中,“数据”和“处
2016-09-02 10:26:22
438
原创 C++ shared_ptr
std::shared_ptr属于STL库,它的作用和auto_ptr相似,也是管理一个对象指针,提供一个释放内存的封装操作,但是它可以和其他shared_ptr对象共享对指针的管理。它的实现原理是再内部维护一个引用计数,当引用计数为0的时候进行释放销毁操作。 std::shared_ptr的构造函数有多重,我们常用的是默认构造函数和带有指针参数的构造函数:
2016-08-30 11:35:50
792
原创 C++ unique_ptr
std::unique_ptr属于STL库,它的作用和auto_ptr相似,也是管理一个对象指针,提供一个释放内存的封装操作。我们知道了std::auto_ptr存在一个问题就是可以同时持有同一个对象指针,这对我们的使用者来说可以说是致命的,而std::unique_ptr则把这个问题给解决了,同时它还具有一些自身特有的性质。 顾名思义,std::unique_ptr独有对象指针
2016-08-29 21:12:21
672
原创 C++ auto_ptr
std::auto_ptr属于STL库,但是在C++11中已经被废除掉了,至于为什么被费除掉,我们稍后再看。 std::auto_ptr的作用是控制一个对象的生命周期,内部持有对象的所有权,保存着对象的指针。它的实现非常简单,内部仅仅维护一个对象指针(the wrapped object pointer),在构造函数中构造封装的对象,在析构函数中释放。 std:
2016-08-29 13:45:29
608
原创 STL 的各个版本
HP STL HP版本是所有STL实现版本的始祖。HP STL是Alexandar Stepanov在惠普Palo Alto实验室工作时,与Meng Lee合作完成的。HP STL是C++ STL的第一个实现版本,而且是开放源码。其它版本的C++ STL一般是以HP STL为蓝本实现出来的。P.J.Plauger实现版本 P
2016-08-29 11:56:41
6114
原创 Unity3D 模型换肤技术
最近在看Unity3D的人物模型和动画。所以今天先说下人物的换装吧。相信大家都玩过网游吧,没有玩过的也相信见过,就是网游或者单机游戏里的人物会有更换服装,更换武器的功能。如果外形(mesh)是一样的,那么把贴图换下就好,但是如果外形不一样甚至骨骼都变了的话,就需要我们今天讨论的技术了。 一.Unity3D里的3D模型Unity3D里的基础模型是从3D工具中导出来的fbx文件。把f
2013-10-14 19:49:57
13184
1
PVRTextureCompression.pdf
2019-11-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人