- 博客(35)
- 收藏
- 关注
原创 pomelo学习笔记
路由比如有多个聊天服务器,我们需要把消息路由的不同的服务器下处理/*msg结构:{ namespace: 'sys', serverType: 'gate', service: 'msgRemote', method: 'forwardMessage', args: [ { id: 1, type: 0, compressRo...
2020-04-08 23:58:09
556
原创 flex布局学习总结
flex布局任何元素都可以。 display:flex;行内元素也可以。 display:inline-flex;webkit内核加上-webkit前缀。 display:-webkit-flex; display:flex;flex布局中,子元素的float、clear和verticlal-align属性失效。flex容器采用flex布局的元素成为fl...
2020-03-10 14:33:34
249
原创 Go语言学习总结
数字与字符串字符串转数字import ("strconv")var str = "123"var num, _ = strconv.Atoi(n)数字转字符串var num = 123var str, _ = strconv.Itoa(n)time包函数返回值作用NewTime当前时间Unixint64从utc 1970年1月...
2020-03-02 21:41:14
220
原创 Go语言HTTP包学习总结
HTTP客户端方法1:import( "fmt" "net/http" "io/iotuil")func main(){ response, _ := http.Get("http://www.baidu.com") defer response.Body.Close() body, _ := ioutil.ReadAll(response.Body) fmt.Prin...
2020-03-02 15:28:47
214
原创 Redis学习总结
简介免费开源,遵守BSD协议。可以将数据保存在磁盘上。支持string、list、set、zset、hash等数据结构。支持主从模式。安装Windows:下载32bit或者64bit压缩包,直接解压。用cmd运行redis-server.ext redis.windows.conf启动服务。用cmd运行redis-cli.exe -h 127.0.0.1 -p 6379 ...
2020-02-28 17:31:12
98
原创 webpack-dev-server跨域资源访问问题的解决方法
问题:在用vue开发的过程中会使用webpack-dev-server搭建本地临时服务器,如果这时候有其他域下的脚本想要访问webpack-dev-server下面的资源就会报跨域的错误。解决方法:打开build/webpack.dev.conf.js文件,然后做如下修改:devServer: { //加一行header即可 headers:{'Access-Control-Allow...
2020-02-15 14:21:55
1614
原创 Vue学习总结
双向绑定<input v-model="name">条件<p v-if="name">test1</p><p v-else>test2</p>循环<li v-for="name in array">{{name}}</li>包装<template v-if="name"&...
2020-02-08 17:10:51
114
原创 CSS学习总结
语法:selector { property:value; }selector.class { property:value; }选择器:id选择器:#name{}类选择器:.name:{}标签选择器:name{}后代选择器:name1 name2{} 所有name1中的所有name2(可以是间接孩子)子元素选择器:name1 > name2{} 所有name1中的...
2020-02-08 16:47:30
203
原创 HTML学习总结
html大小写不敏感、推荐小写。属性(name=“value”)双引号、单引号都可以。多个空格和空行被认为是一个空格。<!doctype html> 开头 标题< head>标签标签作用< title>标题(工具栏标题、收藏栏的标题)< base href="" target="">...
2020-02-08 16:03:56
155
原创 go 技术心得
本地安装依赖包:现在githua上把依赖包下载下来。然后按照github上的路径在GOPATH/src下建立同名目录,然后把依赖包拷贝过来。打开cmd中进入包所在路径。执行go install 包名即可。...
2020-01-12 16:55:53
133
原创 MySql 使用心得
自增主键:可以设置自增步长来方便水平分表(例如:步长为100,最多就能分100张表)。查看自增步长:show variables like ‘%auto_inc%’;修改自增步长:set auto_increment_increment=100 ;查看全局自增步长:show global variables like ‘%auto_inc%’;修改全局自增步长:set global ...
2019-12-21 00:17:19
215
原创 在Unity3D中使用UniFBX加载模型太慢问题解决方法
在Unity3D中经常使用UniFBX加载FBX模型,但是使用UniFBX 2.2.3.1加载FBX模型太慢了,35M的模型需要48秒。问题主要出在UniFBXGeometries.cs文件中的ProcessingByNormals函数中,代码如下:private UniFBXGeometry.KFbxMesh ProcessingByNormals (List<Vector3>...
2019-12-05 22:23:46
4573
5
原创 《Unity3D ShaderLab开发实战详解》第13章阴影映射
原理以灯光的视角对场景进行渲染,得到一张阴影深度图,然后正常渲染场景的时候在灯光空间下判断当前片段的深度是否大于阴影深度图中对应的地方,从而判断当前片段是否在阴影中。渲染阴影深度图灯光视角的投影矩阵:平行光:用正交投影矩阵。点光源:用六个透视投影矩阵。灯光视角范围:平行光:灯光的投射体正好包含摄像机所能看到的物体。点光源:整个场景。渲染阴影深度图Pass{ F...
2019-11-29 17:03:16
251
原创 《Unity3D ShaderLab开发实战详解》第12章体积阴影
体积阴影原理: 使用两个Pass,第一个Pass将物体背光面向灯光方向挤出,渲染正面,第二个Pass将物体背光面向灯光方向挤出,渲染背面,同时利用融合将重合的部分抵消掉,只剩下阴影部分。注意: 第一个Pass渲染的结果是(纯白色 * 后面的颜色 + 后面的颜色 = 2 * 后面的颜色),第二个Pass渲染的结果是((0.5,0.5,0.5,0.5) * 2 * 后面的颜色 + 0 * 2 * ...
2019-11-28 16:27:56
303
原创 《Unity3D ShaderLab开发实战详解》第11章球体阴影
平行光对球体的投影原理:看下图,根据角度计算L,如果L小于球半径,那么当前位置就在阴影中。Shader "Tut/Shadow/SphereShadow_1"{ Properties{ _spPos("Sphere Position", vector) = (0,0,0,1) _spR("Sphere Radius", float) = 1 _Intensity("Intens...
2019-11-28 15:52:12
386
原创 《Unity3D ShaderLab开发实战详解》第10章 平面阴影
平行光对平面的投影原理:把物体顶点变换到接收阴影的平面的局部空间中,然后计算顶点沿着平行光到平面上的投影坐标。将接受阴影的平面的矩阵传递给每个发射阴影的物体。public class PlaneShadowCaster : MonoBehaviour{ public Transform reciver; void Update(){ renderer.shaderMateri...
2019-11-28 14:37:34
270
原创 《Unity3D ShaderLab开发实战详解》第9章 基于LightProbes的照明
光照探针作用:可以让静态光照和影子对动态物体起作用。原理:理论基础: L = ∑i→0i→∞SH(i)∗C(i)\sum ^{i \to \infty}_{i \to 0}{SH(i) * C(i)}∑i→0i→∞SH(i)∗C(i),光照亮度可以分解为一系列球谐基函数乘以对应系数之和。烘焙静态光影到光照探针:烘焙时计算并记录每个光照探针处的一系列系数,在运行时就可以通过系数重建光照...
2019-11-27 16:39:55
414
原创 《Unity3D ShaderLab开发实战详解》第8章 基于光照贴图的烘焙照明
在Shader中使用Lightmap的简单的例子Shader "Self-Illum/NewSurfaceShader"{ Properties{} SubShader { Tags{"RenderType" = "Opaque"} Pass { Tags{ "LightMode" = "ForwardBase"} CGPROGRAM #pragma...
2019-11-26 20:43:40
252
原创 《Unity3D ShaderLab开发实战详解》第6章 VertexLit 渲染路径
Shader中3种光源变量第一种:_WorldSpaceLightPos0:w为0是平行光,w为1是点光。_LightColor0:颜色。第二种:float4 unity_4LightPos{X/Y/Z}0:四个点光源位置(世界空间)。float4 unity_4LightAtten0:4个光源的衰减。float4 unity_LightColor[4]:4个光源的颜色。...
2019-11-25 23:28:36
239
原创 《Unity3D ShaderLab开发实战详解》第5章 第一个被执行的Pass
渲染路径渲染路径:VertexLit、Forward、Defferred。LightMode:Vertex、ForwardBase、ForwardAdd、PrepassBase、PrepassFinal、Always等。不同渲染路径下Pass的执行情况VertexLit路径:只执行光照模式为Vertex的Pass。Forward路径:优先执行光照模式为Forward的Pass,如果...
2019-11-24 22:44:54
333
原创 《Unity3D ShaderLab开发实战详解》第4章 基本的光照模型
漫反射(Lambert)Lum = C * max(0, cos(L, N))Lum:漫反光亮度。C:漫反光强度(漫反光颜色)。L:入射光方向。N:法线方向。镜面发射(Phong)Lum = C * pow(max(0, cos(R, V)), gloss)Lum:高光亮度。C:高光强度(高光颜色)。R:反射光方向。V:视角方向。gloss:镜面光滑程度。...
2019-11-24 20:44:13
300
原创 《Unity3D ShaderLab开发实战详解》第2章 Unity中Shader(着色器)的形态
组织形态Shader "Tut/NewBie/FirstShader"{ Properties{ _MainTex("Base (RGB)", 2D) = "white"{} } SubShader{ Tags{"Queue"="Background" "RenderType"="Opaque"} Pass{ Name "MYPASS" } } SubShader...
2019-11-24 16:13:40
360
原创 《Unity3D ShaderLab开发实战详解》第19章 卡通材质
描边法线挤出描边法: 使用两个Pass,第1个Pass把顶点向法线方向挤出作为阴影,第2个Pass正常渲染。问题:容易出现边缘异常、断裂、距离相机越远描边越小的问题。Shader "Tut/Shader/Toon/Outline_1"{ properties{ _Outline("Outline", range(0,0.2)) = 0.2 } SubShader{ Pass...
2019-11-23 00:10:05
574
原创 Unity3D SRP 学习笔记
自定义SRP自定义RenderPipelineAsset:作用:自定义SRP配置文件,可以创建、配置管线和管线参数。public class MyRenderPipelineAsset : RenderPipelineAsset{ //创建自定义SRP。 protected override RenderPipeline CreatePipeline() { ...
2019-11-22 14:20:15
756
原创 Unity3D LWRP 学习笔记
LightweightRenderPipelineAsset:LWRP配置文件,负责创建并配置渲染管线。分类配置项值说明GeneralRenderTypeForward Renderer默认渲染器Custom自定义渲染器(派生自默认渲染器)Depth Texture是否保存深度纹理Opaque Texture是否保存场景纹理...
2019-11-18 17:33:35
424
原创 《Windows核心编程》(第5版)第二章 字符和字符串处理
unicode编码编码尺寸utf-81 - 4字节utf-162字节utf-324字节Windows函数版本(带字符串)…A:ANSI编码。…W:UTF-16编码。…:如果定义了UNICODE宏就是UTF-16编码。…A:内部使用了…W的版本(会在内部进行转换)。C语言中的字符编码。char:ANSI编码。wchar_t...
2019-11-17 18:28:22
144
原创 《Windows核心编程》(第5版)第一章 错误处理
Windows函数的返回值返回这说明VOID不可能失败BOOL失败为0,成功为非0(不一定为1)HANDLE失败为NULL或者INVALID_HANDLE_VALUE(-1),不同的函数不一样PVOID失败为NULLLONG/DWORD失败通常为0或者-1获得错误信息当函数调用后,会有一个信息(成功或者失败)会记录在线程本地存储...
2019-11-14 19:11:17
134
原创 c# 学习总结
基本数据类型类型位符号位取值默认值说明bool8无True\FalseFlasebyte8无0sbyte8有0char16无‘\0’unicodeshort16有0ushort16无0int32有0uint32无0long64有0...
2019-11-12 16:16:44
231
原创 《IBM-PC汇编语言程序设计》(第2版) 第3章 80x86的指令系统和寻址方式
1、CPU内部EU通用寄存器AX、BX、CX、DXSI、DI堆栈寄存器SP(栈顶)、BP(栈底)标志寄存器SF、ZF、OF、CF(进位)、PF(1的数目为偶)、AF、DF、IF(中断)、TF(单步调试)ALUBIU段寄存器CS(代码段)、DS(数据段)、ES(辅助段)、SS(堆栈段)指令寄存器IP(包含下一条指...
2019-11-09 00:02:31
354
原创 23种设计模式
1、工厂方法:用抽象工厂来创建对象。2、抽象工厂:用抽象工厂创建一堆紧密相关的对象。3、原型模式:给类定义一个Clone函数,创建一个对象,调整好对象状态、传递到其他地方,用这个对象来克隆新的对象。4、构建器模式:如果一个类的构建流程不变,但是每一个构建小步骤多变,可以把构建小步骤定义成抽象函数给子类实现。5、界面模式:给系统提供一个对外接口。6、代理模式:因为开销大、安全问题、不太好...
2019-11-06 23:05:16
99
原创 在片段着色器上使用法线时,需要先单位化。
1、法线从顶点着色器传递到片段着色器中,法线有可能不再是单位向量,所以需要先单位化再使用。以下是未单位化和单位化的效果对比:未单位化效果单位化后效果可以看出未单位化,高光部分有明显的棱角感,单位化后高光更加圆滑了。...
2019-08-06 13:48:54
279
原创 vcvarsall.bat出错导致qt编译失败的问题
qt在编译的时候会先执行vs的vcvarsall.bat脚本,如果脚本运行出错就会导致qt编译失败。如果vcvarsall.bat在执行的时候出现:文件找不到的错误,有可能是脚本中的>nul出错。在有些系统中执行>nul会报找不到文件的错误,是因为系统的null.sys文件不可用导致的,更换文件后重启就可以解决问题。...
2019-05-29 11:16:59
1151
原创 GIS地球-地球块和摄像机包围球求交
在地球的开发中经常使用LOD技术,将地球按照经纬度分成若干块,然后根据摄像机的位置来细化地形。当地形块距离摄像机较近时细化程度高,当地形块距离摄像机较远时细化程度低。假如我们用一个球体去包围摄像机,我们就可以检测如果一个地形块在球体范围内就将地形块进行细化,反之则不对地形块进行细化。这样我们就需要检测球体和地形块是否相交。地形块是一个球面扇形或者叫球心扇形,我们需要检测球面扇形是否和摄像机的包围球...
2018-12-14 17:47:16
373
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人