自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

长生但酒狂的博客

热爱游戏开发,热爱shader

  • 博客(77)
  • 资源 (8)
  • 论坛 (1)
  • 收藏
  • 关注

原创 超实用的工具、素材、学习网站分享

文章目录-------------------------------------------学习教程篇--------------------------------------------bilibili哔哩哔哩youtube慕课网 :网易云课堂siki学院:泰课在线:可汗学院:线性代数的本质 - bilibili计算机科学速成课 - bilibiliLearnOpenGL:The Book ...

2019-12-12 17:24:29 2194 5

原创 一些提高工作效率的黑科技软件

软件:1.Q-Dir : 文件管理,多个窗口叠加。下载链接2.Clover : 文件管理。和Q-Dir 类似,都是管理文件夹的。不同的是 Clover可以在同一个窗口打开多个文件夹.,看个人喜欢选择。下载链接3.Listary: 文件搜索。Listary是一个革命性的搜索工具。有了Listary,你就再也不必经历浏览文件夹、查找正确文件名和在有限的菜单中搜索的繁琐过程了。...

2019-11-22 14:26:55 26068 59

原创 Cocos Creator - 2D扭曲Shader

前言昨天刚办完离职手续,今天闲来无事,就分享一篇关于cocos shader中的扭曲(水波纹)特效的实现吧,话不多说,直接步入正题。效果这个效果原理非常简单,就是对 texture 随机采样,当然,这个随机会有一定的约束,不能太随机,在当前uv坐标附近随机即可。也就是说对uv进行随机偏移。在shader中没有内置的随机函数,要么自己写一个随机函数,要么通过采样噪声图拿到随机值。这里我们就采用第二种方法,简单而且性能也好。(在shader中严格说来应该叫噪声,有兴趣的可以自己去查阅相关的资料)首先

2020-08-20 18:54:58 428 1

原创 Laya Air - 如何在Laya3D中实现屏幕后期特效?
原力计划

前言最近由于项目的原因,不得不去学习了一下Laya这款游戏引擎,在学习使用过程中,我发现

2020-07-09 20:23:33 330

原创 Vscode 格式化GLSL代码时提示: write EPIPE 解决方案!

前言最近在开始用Vscode编写GLSL,既然要编写Shader代码那肯定需要安装相应的代码高亮提示等相关插件了,在安装好 “Shader languages support for VS Code” 和 “Clang-Format” 插件后, 代码高亮是可以了!但是 格式化代码的时候总是提示:write EPIPE我在网上也找了好多解决方案,无一例外都是说 在vscode setting.json文件中加入以下代码 "clang-format.executable": "C:/Users/Admi

2020-05-21 21:18:40 839

原创 Unity Shader - Bloom(光晕、泛光)
原力计划

前言Bloom(光晕)是一种计算机图形效果,用于视频游戏,演示和高动态范围渲染(HDRR)中,以再现真实相机的成像伪像。该效果会产生从图像中明亮区域的边界延伸的条纹(或羽毛),从而造成超亮的光使摄像机或眼睛捕捉场景的幻觉。效果对比如下:左边是原图, 右边Bloom处理后的原理:Bloom的实现原理非常简单,大致分为三步:对需要处理的图像经过亮度提取, 并且通过一个阙值来控制亮度对经过亮度提取后的图像进行模糊处理(这里是采用高斯模糊)最后再叠加原图和模糊处理后的图像,输出即可实现下面

2020-05-14 10:02:10 684

原创 Unity Editor - 一键导出模型内置材质、设置模型设置、修改Shader
原力计划

前言在用Unity游戏开发的时候,可能有时候我们需要修改模型的缩放比例(Scale Factor)或者从FBX导出材质球,或者需要修改Shader 等等操作时,如果模型少,我们可以一个一个的修改,但是如果大量的模型都需要修改的话,那我们一个一个的单独去修改就非常的耗时耗力。所以,为了偷懒,我就去简单学习了下Unity Editor的编写。然后就简单的编写了一个Unity 编辑器扩展,支持一键...

2020-05-06 09:55:19 365

原创 Unity2019.3.5 VsCode中 找不到UnityEngine.UI命名空间

Unity2019.3.5 VsCode中 找不到UnityEngine.UI命名空间命名空间“UnityEngine”中不存在类型或命名空间名“UI”(是否缺少程序集引用?)由于在Unity2019.3.5 UI模块的dll文件移到其他位置了,vscode还是找的以前的路径所以会导致引用不正确解决方案:把Unity 中的默认编辑器改为VS,然后用VS打开工程即可。此时就修改了 Assem...

2020-04-24 19:30:32 3908 2

原创 Window 上安装任意版本的.NETFramework问题 (Unity Vscode代码无提示)

前言首先为什么需要安装任意版本的.NETFramework呢?因为在开发中我们可能会遇到需要不同版本的.NETFramework,可以是需要和同事保持版本一致,或者因为不同的项目需求,或者因为Unity Vscode代码不提示(需要选择正确的.NETFramework版本)等原因。但是当我们windows上安装高版本的时候,此时你想安装低版本的,系统会提示你 “这台计算机中已经安装了 T Fr...

2020-04-22 09:38:17 1199 3

原创 设计模式 - 状态模式与策略模式的区别

类图:状态模式和策略模式的类图几乎一模一样。策略模式:其思想是针对一组算法,将每一种算法都封装到具有共同接口的独立的类中,不同的行为使用不同的算法,并且它们可以相互替换。它是直接依赖注入到Context类的参数进行选择策略,所以客户端必须事先知道策略,由它去指定环境(Context)类使用哪种策略(算法)。状态模式:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的...

2020-04-16 18:44:26 170

原创 设计模式 - 状态模式(状态机)
原力计划

有限状态机(英语:finite-state machine,缩写:FSM)有限状态机又称有限状态自动机(英语:finite-state automation,缩写:FSA),简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学计算模型。简单说,它有三个特征:状态总数(state)是有限的。任一时刻,只处在一种状态之中。某种条件下,会从一种状态转变(transition...

2020-04-16 18:40:26 472

原创 设计模式 - 策略模式

策略模式:对象有某个行为,但是在不同的场景中,该行为有不同的实现算法。比如每个人都要“交个人所得税”,但是“在美国交个人所得税”和“在中国交个人所得税”就有不同的算税方法。策略模式定义了算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。策略模式:定义了一族算法(业务规则);封装了每个算法;这族的算法可互换代替(interchangeable)。...

2020-04-16 14:36:20 147

原创 Unity Shader - 放大镜
原力计划

前言今天闲来无事,实现了一个简单的放大镜特效。效果图如下:思路思路其实很简单,大致分为两个步骤:先实现整体放大效果;最后在一定范围内放大(这里是圆)既然是放大镜,那也就是对图像的处理, 这里我们就需要用到后期处理了,在Camera上面挂一个c#脚本来捕获需要渲染的图像,然后通过shader处理后渲染。实现1.首先我们来实现一下整体放大的效果:思路非常简单:沿着 中心点到...

2020-04-08 17:55:17 535

原创 Unity Shader - HSV 和 RGB 的相互转换
原力计划

前言对于颜色值,RGB 可能是我们接触最多的颜色模型,图像中的任何颜色都是由红色(R)、绿色(G)、蓝色(B) 这三个通道合成的,这三种颜色可以组合成几乎所有的颜色。然而,它并不直观,比如我随便说一个rgb值,你能猜到他是什么颜色吗?几乎不可能,所以,后面引入了HSV、HSL等颜色模型。HSV 相对于 RGB 来说 是一种更加直观的颜色模型,HSV更加符合我们人类视觉。HSL和HSV 概念...

2020-03-25 18:33:48 587

原创 Unity Shader - 径向模糊

前言Hello!大家好,这里先说一个题外话哈,话说有没有公司现在招U3D游戏开发的呢?哈哈,最近我也开始重新找工作了,有没有小伙伴推荐一下呀?坐标 深圳 ,感谢!( 我的微信:Li1076984375)径向模糊言归正传,前面我们实现了边缘检测,模糊处理等后期效果,今天我们就来实现一下径向模糊!径向模糊是一种从中心向外呈幅射状的逐渐模糊的效果。如果经常玩游戏的小伙伴都知道径向模糊其实在游戏...

2020-03-21 16:49:04 379

原创 ShaderToy 转换到 Unity中(超级方便的一个工具)

ShaderToy 转换到Unity中ShaderToy 我们都知道它是一个神奇的网站,在上面有着许多炫酷的特效,各路大神集聚。但是里面shader都是GLSL写的。如果我们想把ShaderToy上的特效移植到Unity中就需要我们手动去修改代码,修改方法无非就是:定义一系列宏来和ShaderToy中的GLSL衔接,如下模板:Shader "Shadertoy/Template" { ...

2020-03-16 14:51:30 935 2

原创 Unity - AssetBundle和XLua热更新教程(简单详细)
原力计划

文章目录前言实践一. Xlua及其HotFix的环境配置二. 创建一个打包AssetBundle资源的脚本并放在Editor文件夹下三. 创建Demo场景及其资源脚本四. 创建lua补丁脚本和打包AssetBundles资源五. 启动本地测试服务器六. 最后,运行测试Demo最后前言这里首先需要我们掌握了XLua的基本知识,具体教程文档可以去GitHub - XLua看看。大概思路:标记需...

2020-03-14 22:35:30 588 2

原创 Unity Shader - 边缘检测

边缘检测(英语:Edge detection)是图像处理和计算机视觉中的基本问题,边缘检测的目的是标识数字图像中亮度变化明显的点。图像属性中的显著变化通常反映了属性的重要事件和变化。这些包括(i)深度上的不连续、(ii)表面方向不连续、(iii)物质属性变化和(iv)场景照明变化。 边缘检测是图像处理和计算机视觉中,尤其是特征检测中的一个研究领域。原理边缘检测实质上就是通过对图像的卷积的结...

2020-03-04 16:34:43 201

原创 提高工作效率的黑科技软件(二)

今年注定是一个不平凡的一年,由于“新型冠状病毒”的爆发,为了不扩散病毒,我们不得不在家隔离,许多企业已经开始实施在家办公的方案了。今天我就给大家推荐一款超强黑科技软件(Quicker),不论是做前端开发、后端开发的还是美术设计的都能很大的程度上提高工作效率!下载链接点击这里软件截图主要功能:快速打开软件、文件、网站;模拟键盘输入;自定义组合动作;它的最大的一个特点就是可以用户...

2020-02-15 16:52:10 331

原创 Unity Shader -描边(后期处理)

上一篇文章中我们通过两种方式分别实现了描边效果,他们各有优缺点,也比较简单,今天我们来通过后期处理这种方式来实现描边效果,相对于之前两种实现方式要稍微复杂一点。最终效果图如下:该思路主要还是参考实现思路:...

2020-01-17 00:33:23 1069

原创 匀速贝塞尔曲线路径规划工具

在做游戏开发的时候经常会用到贝塞尔曲线来规划路径,并且在网上也没找到合适的demo,要么就是不支持高阶贝塞尔,要么就是不能匀速运动。所以决定趁着闲余时间自己写一个工具,方便以后用。并且我已经把源码放在GitHub上了,有兴趣的可以看看,希望能帮到有所需要的朋友。在线演示地址(可以直接在上面规划好后导出json文件)下面来简单演示一下该工程:初期功能比较简单,暂时只支持二阶贝塞尔,支持匀...

2020-01-16 20:17:27 3616 10

原创 Unity Shader - 均值模糊和高斯模糊

说到模糊处理我们一般就会想到多种模糊处理方法,如均值模糊,高斯模糊等等方式。通常用它们来减少图像噪声以及降低细节层次。这种模糊技术生成的图像,其视觉效果就像是经过一个半透明屏幕在观察图像,这与镜头焦外成像效果散景以及普通照明阴影中的效果都明显不同。均值模糊和高斯模糊它们各有各的优势,均值模糊处理速度更快,实现也相对简单一些,高斯模糊处理效果更好,性能差点,实现相对复杂点。我们先来实现一下相对...

2020-01-15 00:17:32 619

原创 Unity Shader - 描边

我们都知道描边效果在游戏中很常见,比如选中某个角色时需要凸显该模型,就会采用描边效果,今天我们就来实现一下该效果。描边的效果实现方式有很多种,就以目前我知道的就有三种方式。一:模型扩张大致思路:需要两个pass,一个pass渲染背面并且沿着法线方向扩张,用来作为轮廓,一个pass渲染正面,正常渲染。核心:主要在第一个pass的顶点着色器中对顶点的偏移,偏移方向为法线方向。话不多说直接上代...

2019-12-31 22:58:43 316

原创 GLSL - 噪声算法的收集

Generic 1D,2D,3D Noise - 通用噪声1Dfloat rand(float n){return fract(sin(n) * 43758.5453123);}float noise(float p){ float fl = floor(p); float fc = fract(p); return mix(rand(fl), rand(fl + 1.0), fc...

2019-12-31 18:58:48 797

原创 Unity Shader - 遮罩效果

已经有二十天没有更新博客了,这段时间也一直在学习WebGL shader,后续可能也会更新一些WebGL相关的博客。转入正题,我们来说说今天要实现的一个shader效果 - 遮罩。其实遮罩原理非常简单,把源像素和遮罩图形像素相乘就行了。大致效果如下:准备工作1.创建一个场景和一些物体(cube,sphere等)。2.创建一个新的C#脚本和一个Shader,命名为Mask。3.把Ma...

2019-12-24 19:41:42 1130

原创 Unity Shader - 基础光照之高光反射(Specular)

镜面高光上节学习了漫反射,这节我们来探索下镜面反射(高光),这里的高光反射是一种经验模型,也就是说,它并不完全符合真实世界中的高光反射现象它可用于计算那些沿着完全镜面反射方向被反射的光线,这可以让物体看起来是有光泽的,例如金属材质。...

2019-12-06 23:03:40 352

原创 JS - 实用的小技巧(ES6的新特性)

解构实用技巧:1.赋值let [a, b, c] = [1, 2, 3];console.log(a,b,c) //=> 1,2,3//支持默认值 let [a, b, c, d = 4] = [1, 2, 3];console.log(a, b, c, d) //=> 1,2,3,42.字符串赋值let [a, b, c] = "123";console.log...

2019-12-04 21:00:22 274

转载 复盘王者荣耀手游开发全过程,Unity引擎使用帧同步放弃状态同步

如今已经大获市场成功的《王者荣耀》一直是业内各方关注的对象,而我们也知道这款产品在成为国民级游戏之前,也遇到过一段鲜有人知的调优期。也就是在2015年8月18号正式不删档测试版本推出之后,被腾讯评级为不达六星之后的时间。据闪电站小猪了解,在8月之后的两个月间,《王者荣耀》技术团队对这个产品进行了非常深度的优化,并攻克了局内同步、网络要求,以及性能表现的三大难关,成功达到了腾讯六星产品的标准。比如...

2019-12-02 17:10:20 693

原创 Unity Shader - 基础光照之漫反射

在shader中,光照是一个非常基础并且重要的知识点,下面我们就来学习一下shader中的基础光照。在现实中的光照是极其复杂的,而且会受到诸多因素的影响,这是我们有限的计算能力所无法模拟的。因此我们在渲染中基本上都是使用一个简化的模型来模拟真实的光照环境。来达到我们想要的效果,看起来差不多就行。计算机图形学第一定律:如果它看起来是对的,那么它就是对的。——————《3D数学基础:图形与游戏开...

2019-12-01 18:25:17 321

原创 JavaScript - 实现循环队列

分享一下之前在LeetCode上做的一个题:实现循环队列:设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能使用这些空间...

2019-11-29 01:17:22 234

原创 A*搜索算法

作为程序员的我们可能经常会听到 A*搜索算法这个的词,听起来非常高大上,腻害,但是具体是什么呢?引用 Wiki 上的说法就是:A* 搜索算法(A* search algorithm)是一种在图形平面上,有多个节点的路径,求出最低通过成本的算法。常用于游戏中的NPC的移动计算,或网络游戏的BOT的移动计算上。该算法综合了最良优先搜索和Dijkstra算法的优点:在进行启发式搜索提高算法效率的同...

2019-11-28 19:07:49 2032

原创 基于nodejs,tinypng的压缩图片工具

通过http请求 tinypng.com 接口压缩图片接口:https://tinypng.com/web/shrink大体思路:递归获取本地文件夹里的文件过滤文件,格式必须是.jpg .png,大小小于5MB.(文件夹递归) ( 其实可以突破5M大小限制)每次只处理一个文件(可以绕过20个的数量限制)处理返回数据拿到远程优化图片地址取回图片更新本地图片纯node实现不依赖任...

2019-11-28 11:28:02 939

转载 一个基于Unity的Plist解析工具——TextureUnpacker

一、前言拆解plist大图是对已有项目进行学习(换皮)的必备手段!在做这个工具之前,我也曾在网上查找过有没有现成的东西,以免重复造轮子。结果发现,有很多用python脚本来做的(不方便,用之前还要搭环境),也有一些界面版的,或是版本太旧(不能拆解新版本texturepacker打出来的图集),或是功能不全(只能简单拆解,无法还原)。更有的竟然挂在淘宝上售卖。。于是就做了这个工具。写核心代码耗时...

2019-11-28 11:12:19 288

原创 Unity Shader - 翻书效果

今天实现一个简单的翻书的效果,话不多说,先上一张效果图:这里就随便用的一张纹理了,我们还是称为“翻木板”吧,哈哈。实现过程:其实这个效果实现起来还是挺简单的,大概思路其实就是 让所有顶点都绕Z轴旋转,并且通过正余弦使之带有一点弧度。下面开始让我们一步一步的实现该效果。首先打开Unity新建一个工程,场景,并且创建一个名为openBookEffect的Shader文件,删掉原本多余的代码...

2019-11-27 01:49:15 790 2

原创 《unity shader 入门精要》读书笔记3 - 数学基础

一 笛卡尔坐标系三维笛卡儿坐标系中,我们需要定义3个坐标轴和一个原点,这3个坐标轴也被称为是该坐标系的基矢量( basis vector)。通常情况下,这3个坐标轴之间是互相垂直的,且长度为1,这样的基矢量被称为标准正交基( orthonormal basis)。笛卡尔坐标系分为:左手坐标系和右手坐标系如图:...

2019-11-24 19:32:52 165

转载 MarkDown 插入数学公式实验大集合

0. 前言最近在学习一些机器学习相关的知识,想把自己学习的东西通过 MD 的形式在线记录下来,但是之前一直没有开始行动,因为里面的公式什么的感觉实在是麻烦。于是今天打算花点时间了解一下如何在 markdown 中插入数学公式,发现其实很简单,大概花一个小时左右就能知道如何编写了。1. 基础认识笔者认为所谓插入数学公式其实就是引入一种规则,然后通过模板?渲染成公式,不知道这个理解对不对,不对望...

2019-11-23 02:16:04 254

转载 毕业5年决定你的命运 --------值得所有不甘平庸的人看看

正如"打工皇帝"唐骏说:“我觉得有两种人不要跟别人争利益和价值回报。第一种人就是刚刚进入企业的人,头5年千万不要说你能不能多给我一点儿工资,最重要的是能在企业里学到什么,对发展是不是有利……”人总是从平坦中获得的教益少,从磨难中获得的教益多;从平坦中获得的教益浅,从磨难中获得的教益深。一个人在年轻时经历磨难,如能正确视之,冲出黑暗,那就是一个值得敬慕的人。最要紧的是先练好内功,毕业后这5...

2019-11-22 00:12:52 244

转载 Unity优化之GC——合理优化Unity的GC

介绍:在游戏运行的时候,数据主要存储在内存中,当游戏的数据在不需要的时候,存储当前数据的内存就可以被回收以再次使用。内存垃圾是指当前废弃数据所占用的内存,垃圾回收(GC)是指将废弃的内存重新回收再次使用的过程。Unity中将垃圾回收当作内存管理的一部分,如果游戏中废弃数据占用内存较大,则游戏的性能会受到极大影响,此时垃圾回收会成为游戏性能的一大障碍点。本文我们主要学习垃圾回收的机制,垃圾回收...

2019-11-20 19:38:42 233

原创 cocos creator - WebView内部页面的交互和层级问题

我们知道creator里的WebView,VideoPlayer等特殊组件有一个非常严重的问题,就是不管你怎么设置层级,这类组件始终处于最上层!其他UI组件会被遮挡。我们打开浏览器运行,F12检测元素就可以清楚的看到他们的层级关系。如下图:通过上图我们可以清楚的看到,video(videoPlayer组件) 和 iframe(webView组件) 在 canvas(GameCanvas) ...

2019-11-20 14:13:58 6481 4

原创 Unity - Ray射线检测

一:Ray射线定义:射线是一条从原点出发,沿某一方向运动的无限直线。//创建一条初始位置为startPos,方向为dir的一条射线Ray ray = new Ray (startPos, dir);//创建一条从摄像机通过屏幕点的光线。//得到的光线在世界空间中,从相机的近平面开始,经过屏幕上的(x,y)像素坐标(位置)。z是忽略。Ray camerRay = Camera.main...

2019-11-19 20:29:21 746

CompressPngTool.zip

一款自制的 基于nodejs,tinypng一键压缩图片的小工具,非常实用,前端工程师、美术设计师都非常实用的

2019-12-06

A_StarSearch.rar

基于Cocos Creator JS的 A * 搜索算法,需要的可以下来学习学习!!

2019-11-28

TextureUnpacker.rar

一个开源的,基于unity的分解 图集 .plist .png文件的工具,非常实用的一款工具!!!!!!

2019-11-28

一个简单好看的纯CSS3翻书效果.rar

一个简单好看的纯CSS3翻书效果,值得你拥有

2019-11-06

超酷的双剑动作.rar

一套超酷的双剑动作模型,用于多种待机,奔跑,双剑攻击,全集动作!

2019-11-06

经典超级玛丽

原生javaScript编写的经典小游戏:超级玛丽 , 利用二维数组搭建的关卡, 可以自行搭建后续关卡

2018-12-11

中国象棋(原生js+canvas)

简易的中国象棋 , 由原生JavaScript + canvas 开发, 适合初学者学习js 和canvas的应用!

2018-12-11

五子棋源码(js+canvas)

简易的五子棋小游戏 , 由原生JavaScript + canvas 开发, 适合初学者学习js 和canvas的应用!

2018-12-11

thinkphp5.0 报错:could not find driver 怎么办

发表于 2017-12-11 最后回复 2018-10-18

空空如也

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

TA关注的人 TA的粉丝

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