自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 资源 (2)
  • 收藏
  • 关注

转载 Unity渲染教程的GAD中文翻译版本地址

Unity 渲染教程(一):矩阵 :http://gad.qq.com/program/translateview/7181958Unity 渲染教程(二):着色器基础 :http://gad.qq.com/program/translateview/7173930Unity 渲染教程(三):使用多张纹理贴图:http://gad.qq.com/program/translateview/...

2019-11-21 21:35:11 326

原创 Shader笔记——使用粒子序列图实现体积云

最近看到一个效果还不错的体积云,了解了下其实现原理,将其实现思路做一个简单的整理和记录,并重写该Shader其效果图:该效果来自名为CloudPuff的Unity资源包中示例场景截图实现的主要思路为: 使用MatCap对预先存储的光照进行采样 MatCap是使用存储了视空间下不同法线方向的球形光照纹理,在计算光照时直接对纹理进行采样,运算效率高,但也有其局限,只能适用于单...

2019-10-31 15:35:29 3426 1

转载 使用粒子实现Logo消融效果

使用粒子实现Logo消融效果UnityUnity官方平台本文将由游戏开发者Mirza分享使用Unity的默认Shuriken粒子系统,在不使用插件或编写脚本的情况下,实现Logo消融效果。这是一个Unity中运行的实时效果,你可以使用任意图片实现该效果,无论图片是否是彩色的。本教程将使用纯白色纹理来制作,根据该纹理调整设置,你可以改变部分粒子颜色,使其更符合自己使用...

2019-10-25 15:24:31 592

原创 Unity中嵌入Echarts图表

Unity中做图表类的数据展示一直是个麻烦事,使用原生的Mesh绘制方式出来的图表存在样式单一,缺乏交互的问题,而Echart的数据图表样式丰富,数据呈现上非常美观,包含多样的交互方式,如果将Echart的图表嵌入到Unity中,项目中的数据呈现效果会改观很多。这里需要用到Unity中的网页嵌入插件和Echart的图表样式文件:1.Unity中的网页嵌入插件:Embedded Browser...

2019-08-26 15:45:40 7156 1

原创 Unity 读取Excel文件 踩坑记录

Unity 读取 Excel 文件Unity读取Excel文件需要引入 dll 链接库: Excel.dll ICSharpCode.SharpZipLib 同时添加 Unity 安装目录下的以下 dll 库文件: System.Data (D:\Unity2018.2.3\Install\Editor\Data\Mono\lib\mono\2.0)...

2019-06-13 19:22:43 2278 2

转载 【转】Xcode OpenGL 配置

原文地址:https://blog.csdn.net/qq_38130710/article/details/80898543步骤1:安装brew打开终端,复制下面一行命令执行,安装需要一分钟左右,过程中需要输入密码,其他无需操作/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/ins...

2019-06-10 22:37:44 474

原创 Unity UI Mask实现原理

Unity UI Mask实现原理Mask的实现思路: 与Image组件配合工作,根据Image的覆盖区域来定位显示范围,所有该Image的子级UI元素,超出此区域的部分会被隐藏(包括UI的交互事件)Mask的实现原理:Mask会赋予Image一个特殊的材质,这个材质会给Image的每个像素点进行标记,将标记结果存放在一个缓存内(这个缓存叫做 Stencil Buffer) 当子级U...

2019-04-16 22:21:08 9009

原创 笔记二十二——RayMarch简单实践02 Simple-SDF-RayMarchingScene

写在前面在上一篇笔记中,通过从摄像机发出射线,并采用步进的方式求解场景中的碰撞点,利用碰撞点信息进行着色,在屏幕上绘制了一个Sphere和Plane,本篇笔记中将丰富上一个场景,并做相对复杂的光照处理。采取和上篇中绘制Sphere,Plane相同的方式绘制更多的三维图形,因此需要引入更多距离计算函数,也就是SDF(Sign Distance Functions),这些函数用来计算空间中点到目标模...

2018-12-28 15:18:20 885

原创 笔记二十一 RayMarch简单实践01_SimpleRayMarchingScene

写在前面光线追踪简单来说是通过若干条从摄像机发出的光线,通过步进的方式去和场景中的物体求交,根据交点处的信息和光源信息计算交点处的光照。 这种方式区别于与光栅化渲染,也就是将场景中物体的三角面通过空间的变换最终映射到屏幕上,并将三角面覆盖的区域逐像素处理,做插值计算。关于光线追踪的简化处理过程,可以参考下图(网络截图,侵删):入门简单实践根据光线追踪的处理思路,实现步骤可简化如下:获取摄...

2018-12-28 10:12:57 821

原创 Cinemachine&Timeline实践

使用前:Cinemachine 为Unity 2017新功能,2018使用时在新建项目时选择导入对应的包,直接在商店里导入资源包可能会报编译错误 Timeline 直接集成在编辑器中,可以在Project中直接创建Timeline,放入场景中相关参考博客: https://blog.csdn.net/beihuanlihe130/article/details/79233320Time...

2018-10-24 12:26:12 1584

原创 初识Unity SRP

Unity SRP 即 Unity Scriptable Rendering Pipeline(可编程渲染管线),是Unity 2018的新功能,使开发者可以通过脚本按需构建自己的渲染过程。在学习和参考:吉祥的游戏编程笔记中关于Unity SRP的相关内容后,这里做一个简单的学习记录,如有错误之处,希望可以多多交流。SRP中的内容可以用一张图说明: SRP的创建过程分为3个部分:Cu...

2018-10-23 19:09:47 8357 6

原创 Shader笔记二十——带噪声的能量盾实现

先上效果: 该效果的实现主要分为两个部分:能量盾与场景相交处的高光处理 能量盾的纹理变化能量盾与场景相交处的高光处理能量盾与场景中其他物体的相交部分的高光,主要是通过比较能量盾自身的深度值与场景内相交的部分物体的深度值,通过两者深度值的差异大小来决定高亮颜色的显示比例插值:float diff =pow((1-saturate(sceneZ-i.scrPos.z))/1.0...

2018-09-20 15:02:09 977

原创 Shader笔记十九——三种凹凸纹理实现

Normal Map法线纹理是通过一张与漫反射纹理相对应的法线图,存储法线信息,使用的时候对应纹理坐标进行采样,通过法线值影响光影计算的结果,从而产生凹凸效果。Normal Map可能是目前使用最为广泛的一种凹凸贴图技术了。之前的内容也有介绍过, https://zhuanlan.zhihu.com/p/31450857 这里不详述。贴一下Shader代码:Shader "Bump/00...

2018-09-13 12:02:04 2392

原创 Unity 框架学习资源&笔记

UI框架类https://www.cnblogs.com/LiuGuozhu/p/6421685.html

2018-08-31 11:26:28 460

原创 噪声学习

关于噪声噪声在图形学中的使用非常普遍,这里的噪声是通过程序生成一系列的随机值,通过特定的噪声算法,在给定一个输入,生成对应输出,输入和输出可以是不同维数的组合。 噪声在图形学中常用来模拟火焰、地形、云朵等包含随机变化的对象。既然是获得随机值,为何不直接使用类似 random 这样的随机函数呢?原因是随机函数所得到的值在既定范围内分布过于均匀,这样的随机值被称为"白噪声",二维白噪声的纹理为:...

2018-07-31 18:27:20 1759

原创 Hololens开发遇坑记录

1.数据解析  使用 LitJson 进行数据解析,在联调时没问题,部署时会报错 改用  Unity 自带 JsonUtility 工具进行解析    2.联网  应用程序如果需要进行联网获取数据,在 Build 时,需要在 Player Setting 中勾选:  InternetClient   InternetClientServerPrivateNetworkC...

2018-07-23 17:14:02 2040 2

原创 Unity HoloLens 开发调试及部署配置【新】

目前,Hololens的开发配置教程普遍为: Unity 5.6 + VS2015(Update 3) + Win10 其配置普遍较老,因此使用更新的软件时,会出现众多的问题,在经历 VS2015 ,VS2017的反复卸载,安装(主要由于打包SDK的问题 )以及系统重装后,总算完成Hololens的开发,调试,部署的完整过程,并使用目前最新的软件和系统版本。现将配置过程记录如下:1.系统系统版本号...

2018-06-28 18:43:10 16646 9

原创 渲染学习博客地址合辑

  主线博客合辑:《Real-Time Rendering 3rd》 提炼总结   主线补充内容:数学基础:矩阵变换 旋转变换:https://blog.csdn.net/csxiaoshui/article/details/65446125视差纹理(parallax map)    https://www.cnblogs.com/jim-game-dev/...

2018-06-28 11:06:39 199

转载 【记】同一个 Github 账号之多台电脑间协同开发

1. 先生成 key,命令是ssh -keygen -t rsa -C "注册 Github 的邮箱" 2. 将产生的公钥复制到 Github 的 SSH keys 中,步骤如下:    打开 Github,找到 Settings, 点击 SSH and GPG keys,点击New SSH key,粘贴 3. 将仓库克隆到本地 (git clone xxx) 4. 可能需要配置账号以及输入密码 ...

2018-06-26 21:02:09 2629

原创 Shader笔记十八 噪声纹理的利用

噪声的使用会使结果充满随机性,从而表现效果更加自然。消融效果消融效果常在游戏中角色死亡,物品烧毁中被使用。消融效果往往从不同区域开始,并向看似随机的方向进行扩张,最后整个物体都消失不见。消融效果可以通过噪声纹理+透明度测试去实现。使用对噪声纹理进行采样的结果与某个控制消融效果的阈值进行比较,小于阈值,使用clip函数将该像素点裁剪掉,对应被烧毁的部分,而边缘部分的烧焦效果则将两种颜色进行混合,在使...

2018-06-13 14:39:05 2248 2

原创 Shader笔记十七 卡通渲染

卡通风格渲染的游戏画面通常物体颜色分界明显,具有黑色的线条描边。卡通渲染的实现有多种方法,基于色调的着色技术是其中之一,实现过程中通过使用漫反射系数对一维纹理进行采样,控制漫反射色调。之前通过一张渐变纹理来控制漫反射颜色实现过卡通风格的渲染效果。卡通风格的高光效果往往是一块分界明显的色块,而物体边缘通常会有描边。本节中将通过基于模型的方式进行描边,而不是之前的屏幕后处理的方式。轮廓线渲染轮廓线的渲...

2018-06-13 14:38:25 2818

原创 Shader笔记十六 利用深度纹理实现更多特效

利用深度纹理实现运动模糊之前实现的运动模糊是通过混合多张屏幕图像来模拟运动模糊。另一种实现运动模糊的方式是通过速度映射图,而且该方式应用更加广泛。速度映射图中存储每个像素的速度,使用该速度决定模糊的方向和大小。生成速度缓冲可以将场景中所有物体的速度渲染到一张纹理中,不过该方法需要修改场景中所有物体的Shader代码,使其添加计算速度的代码并输出到下一个渲染纹理中。有一种方法是通过深度纹理在片元着色...

2018-06-13 14:38:10 951

原创 Shader笔记十五 获取深度和法线纹理

很多时候不仅需要当前屏幕的信息,同时希望得到深度和法线信息。例如在做边缘检测时,是直接根据渲染完后的屏幕图像的RGB值进行计算的,如果某些物体受到阴影的影响,那么检测结果就不一定准确。如果可以直接在深度纹理和法线纹理上进行边缘检测,那么就不会受到场景中的阴影的影响。获取深度和法线纹理首先深度纹理是一张纹理图,既然是一张纹理图,那么其值的范围是在[0,1]之间的,那么这个值的范围是如何转化得到的呢?...

2018-06-13 14:37:55 1713

原创 Shader笔记十四 屏幕后处理效果

屏幕后处理是指渲染完整个场景得到屏幕图像后,再对屏幕图像做处理,实现屏幕特效。实现屏幕后处理效果的关键在于得到渲染后的屏幕图像,Unity提供了对应的接口 OnRenderImage ,其函数声明MonoBehaviour.OnRenderImage(RnederTexture src, RenderTexture dest) 参数 src :源纹理,用于存储当前渲染的得到的屏幕图像参数 d...

2018-06-13 14:37:32 658

原创 Shader笔记十三 通过顶点位置判断实现类似黑洞效果

该效果的首发在https://zhuanlan.zhihu.com/p/32131147参考喵神的优化建议,自己对其中代码做了部分优化,自己实现的效果:该效果的核心思想在与判断角色模型与场景中的“黑洞”的位置和距离关系,当两者距离到达一个阈值时,开始受到类似吸引的效果,实际上是将顶点向“黑洞“的方向靠近,若变化后的新顶点超过了”黑洞“的位置,则将其位置设置为”黑洞“的位置,即被吞噬,因此这个变化过...

2018-06-13 14:36:35 1754

原创 Shader笔记十二 动画效果

动画效果动画效果需要引入时间变量,Unity内置的时间变量:这些时间变量可以用来实现纹理动画和顶点动画纹理动画序列帧动画序列帧动画是通过依次播放一系列关键帧图像,当播放速度达到一定数值时,看起来就像是一个连续的动画。灵活性较强,通过一张包含关键帧的图像可以得到比较细腻的动画效果,缺点在于需要大量时间制作包含关键帧的图像。关键帧实现的关键在于,每个时刻计算该时刻下应该播放的关键帧的位置完整代码 Sh...

2018-06-13 14:36:14 302

原创 Shader笔记十一 高级纹理

高级纹理立方体纹理立方体纹理(CubeMap)是 环境映射(Enviroment Mapping) 的一种实现方式。立方体纹理包含6张图像,每个面表示沿着世界空间下的轴向(上、下、左、右、前、后) 观察所得的图像。对立方体纹理的采样需要提供三维纹理坐标,表示在世界空间下的一个3D方向,方向矢量从立方体中心出发,向外部延伸就会和立方体的6个纹理之一发生相交,采样结果由交点计算而来。立方体纹理在实时渲...

2018-06-13 14:35:55 340

原创 Shader笔记十 Unity光照衰减&阴影

Unity中的光照衰减Unity在内部使用一张名为_LightTexture0的纹理来计算光源衰减,好处在于计算衰减不依赖于复杂的数学公式。fixed atten = tex2D(_LightTexture0, dot(lightCoord, lightCoord).rr).UNITY_ATTEN_CHANNEL; 通常只会关心_LightTexture0对角线上的纹理颜色值,这些值表明了在...

2018-06-12 15:32:19 1827

原创 Shader笔记九 渲染路径&复杂光照

渲染路径&复杂光照渲染路径(Rendering Path)决定光照如何应用到UnityShader中。为了获取场景中的光源数据,需要为每个Pass指定其渲染路径。5.0以后的版本中,Unity支持前向渲染(Forward Renddering Path)和 延迟渲染(Deferred Rendering Path)。系统默认情况下选择的是前向渲染路径,可以更改,同时若想使用多个渲染路径,可...

2018-06-12 15:31:58 321

原创 Shader笔记八 利用顶点投射生成阴影

最近在喵神的专栏里看到了这个实现方法:https://zhuanlan.zhihu.com/myashader自己试着写了下看看效果,主要思想是在顶点着色器内根据光源,顶点和地面的位置关系,利用相似原理计算投影点,xz平面即为场景中的固定高度平面,即:完整的计算思路大家也可以去参考喵神的专栏。Shader完整代码:Shader "Custom/VertShadow" {Properties {...

2018-06-10 11:50:13 1335

原创 Shader笔记七 剔除正面的描边效果

使用两个Pass可以实现模型描边效果,一个Pass正常渲染图元,另一个Pass中剔除正面,并在裁剪空间对定点进行移动,移动的方向为顶点对应的法线方向,这样在经过逐片元操作后背面会生成面片,由于Pass按照顺序渲染,因此只有超出模型边缘的面片会显示出来,然后指定面片颜色,即可实现类描边效果。实例代码:Shader "Custom/GeometryEdge" {Properties{ _Color...

2018-06-10 11:45:22 898

原创 Shader笔记六 透明效果

Unity中使用两种方法实现透明效果:透明度测试(Alpha Test)透明度混合(Alpha Blending)开启透明混合后,当一个物体被渲染到屏幕上时,每个片元除了颜色和深度值之外,还具有透明度的属性。透明度为1时,完全不透明,透明度为0时,完全透明。关于渲染顺序对于不透明物体的渲染由于有深度缓冲(depth buffer,z-buffer),不考虑渲染顺序也能得到正确的渲染结果。使用深度缓...

2018-06-10 11:15:56 2264

原创 Shader笔记五 基础纹理

通常使用一张纹理来代替物体的漫反射颜色。使用纹理的Shader中,需要对纹理进行采样。 使用CG的tex2D(_MainTex,uv)函数进行纹理采样,第一个参数是需要被采样的纹理,第二是float2类型的纹理坐标,该坐标在顶点着色器中由_MainTex_ST对定点纹理坐标进行变换得到。Shader "Custom/Chapter7_SingleTexture" { Properties{ ...

2018-06-10 11:11:16 993

原创 Shader笔记四 Unity Shader中的基础光照

着色是根据材质属性(高光反射属性,漫反射属性等)、光源信息(如光源方向、辐照度等),使用等式去计算沿某个观察方向的出射度的过程。该等式即 光照模型(Lighting Model) 。光照模型中包含不同的部分来计算光线经过物体表面后不同的方向高光反射部分:表示光线在物体表面如何被反射漫反射部分:表示光线在物体表面如何被折射,吸收和散射出表面标准光照模型标准光照模型将进入到摄像机内的光线分为4部分,每...

2018-06-10 11:06:11 2166

原创 Shader笔记三 第一个Unity Shader

顶点/片元着色器基本结构Unity Shader基本结构包含:Shader、Properties、SubShader、Fallback,即:Shader "MySahder"{ //属性部分,使材质面板可见 Properties{ } //SubShader A SubShader{ //通道Pass Pass{ //设置渲染状态及标签 //开始CG代码片段 ...

2018-06-10 11:02:14 201

原创 Shader笔记二 相关数学内容

变换变换指将一些数据,例如,点,方向矢量甚至颜色,通过某种方式进行转换的过程。线性变换是非常常见的一种变化类型,满足矢量加和标量乘的变换即为线性变换,即:f(x)+f(y)=f(x+y)kf(x)=f(kx)缩放和旋转是一种线性变换,错切,镜像,正交投影也是线性变化。平移不属于线性变化,比如f(x)=x+(1,2,3),因为不满足矢量加和标量乘的运算。线性变换使用3X3的矩阵即可表示,但由于平移变...

2018-06-10 10:58:52 301

原创 Shader笔记一 Unity Shader概念篇

渲染流水线渲染流水线从概念部分分为三个部分:应用阶段应用阶段为开发者完全控制部分,主要提供渲染所需要的渲染数据,输出为渲染图元,该阶段可以细分为:加载渲染数据(HDD-->RAM-->VRAM)设置渲染状态(决定场景中的网格(图元)以怎样的方式渲染,使用什么着色器,光照,材质)调用DrawCall命令(指定需要渲染的图元列表,发起方为CPU,接收方为GPU)几何阶段几何阶段的部分过程可...

2018-06-10 10:54:08 338

原创 设计模式笔记

UML类图“动物矩形框”代表类,类图分三层:第一层:类名(如果为抽象类,则用希斜体表示)第二层:类的特性,通常为字段和属性第三层:类的操作,通常为方法或行为成员前 + 表示为public; - 表示为 private; # 表示为 protected“飞翔矩形框”代表借接口 ,分为两层:第一层:接口名称 带有 interface第二层:接口方法接口另一种标识方法:棒棒糖表示法 (讲人话接口)类之间...

2018-06-10 10:41:33 210

原创 数据结构学习笔记

数据结构相关概念数据结构的相关概念:初识算法及相关概念算法解决特定问题的求解步骤及描述,在计算机中为指令的有限序列,每条指令表示一个或多个操作。算法特性有穷性、确定性、可行性、输入、输出算法设计要求正确性、可读性、健壮性、高效率和低存储量需求算法时间复杂度及大O阶推导大O阶推导:1.使用常数1代替运行时间中的所有常数加法2.修改后的运行次数函数中,只保留最高阶项3.如果最高阶项存在且系数不为1,去...

2018-06-10 10:36:50 1723

原创 Unity Shader中的 ZTest & ZWrite

Part1 理论部分ZTest:深度测试,开启后测试结果决定片元是否被舍弃,可配置 ZWrite:深度写入,开启后决定片元的深度值是否写入深度缓冲,可配置ZTest可设置的测试规则:ZTest Less:深度小于当前缓存则通过ZTest Greater:深度大于当前缓存则通过ZTest LEqual:深度小于等于当前缓存则通过ZTest GEqual:深度大于等于当前缓存则通过ZTest Equa...

2018-06-08 08:42:21 18752

Unity 爆炸资源特效

unity游戏爆炸特效Realistic Explosions Pack 1.05 Requires Unity 4.3.4 or higher. Unity 5 compatible Probably the most realistic explosions in the store! Included: - Ground Explosion - Flash Explosion - Massive Ground Explosion - Directed Explosion - Ground Short Explosion - Space (No Gravity) Explosion

2020-12-16

干空气热物性计算软件

该软件用于计算干空气热物性参数,对于船舶制冷,空压机内流体状态计算特别方便

2014-01-14

空空如也

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

TA关注的人

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