7 MrASL

尚未进行身份认证

http://www.lsngo.net

等级
TA的排名 5w+

【Unity】基于顶点色的海边波浪效果(适用移动端)

之前曾做过一个unity中带有海边波浪冲刷的海水shader效果,并最初发布在CSDN上,原文链接:http://blog.csdn.net/mobilebbki399/article/details/50493117不过最初的效果原先仅仅是自己自学shader与练习时实现的,没有考虑过多优化措施,总的来说做的比较水(当时才工作半年多~_~|||)考虑到该效果貌似关注的人挺多的,最近刚好也在项目...

2018-03-29 17:17:21

【图形与渲染】相机平面镜反射与斜裁剪矩阵(下)-斜裁剪矩阵

上一篇文章分析了平面镜反射效果实现中,如何计算镜像矩阵,我们已经可以得到镜像相机并渲染出镜像后的效果了,但是只是纯粹的镜像会遇到以下问题:如图,当相机镜像到C’位置后,其视锥体裁剪范围是A+B,但实际应该位于反射贴图中的区域仅仅只有A区域,也就是我们需要根据平面P对相机C’裁剪。投影矩阵:先回顾一下渲染管线中的投影变换阶段,该阶段将相机空间的坐标变换到投影空间,以便于裁

2018-03-08 23:56:33

【图形与渲染】相机平面镜反射与斜裁剪矩阵(上)-镜像矩阵

平面镜反射是一种常用的实时渲染效果,且在许多游戏中都可以见到它的身影。通常游戏中实现实时反射的方法有如下几种:1.使用cubemap或预先烘焙反射探针2.平面镜反射3。屏幕空间反射(SSR)三种方式进行比较,使用cubemap或反射探针可以用在反射物体不要求实时更新或变换的情况,且可以用在非平面物体上,如金属材质对天空的反射,或对一些静态场景物件的反射等

2018-03-08 23:47:48

【UnityShader】平面阴影

平面阴影作为一种最简单的实时阴影实现,尽管其仅能局限于在完全平坦的地面的情况下使用,但由于其性能良好,在许多移动端手游中仍然可以发挥较强的使用价值。平面阴影的实现原理比较简单,一般由如下几个过程:1.向shader传入世间到平面的矩阵和平面到世界的矩阵2.向shader传入灯光方向3.在平面空间下根据灯光方向计算顶点在平面上的投影坐标,最终得到阴影但这种方式存在

2018-03-08 23:36:32

【Unity】四叉树/八叉树管理和动态加载场景物件

一、引言:场景的组织与管理是3d游戏开发中重要的一环,unity3d引擎中,只提供了最基本的场景组织,当我们加载场景时,会将场景中的物件及其依赖的资源全部加载出来,这对于较为庞大的场景显然是不合理的。可以考虑在进入场景时预先将可见范围内的物体加载,之后的其它物件也全部在当进入可见区域时加载,但如何才能快速索引到进入某区域的物体?因此,我们需要考虑一种层次化的场景管理机制,可以快速的索引出指定空

2018-03-08 23:24:58

线性渲染(Linear Rendering)和Gamma Correction

原文链接:http://blog.csdn.net/k46023/article/details/52489363概述线性渲染就是渲染场景所有输入都是线性的。一般来说存在的纹理都是经过Gamma矫正了的,也就是说当纹理被采样到一个材质上时,颜色值已经不是线性的了。如果这些纹理用通常的计算方式去计算光照和图片效果,在非线性空间计算,这将导致轻微的偏差。(而这种偏差就是

2017-11-12 01:17:17

【Unity】FOV战争迷雾

战争迷雾作为一种常用的游戏效果,被广泛的运用在RTS游戏和最近火热的moba类游戏中,在游戏中需要不断的进行探索和侦察来打开更多的视野区域,或者用来显示友方的位置,或者是躲避敌方等。常见的战争迷雾主要有两种:第一种是比较纯粹的将周围指定半径内的区域全部认为可见,即以整个圆形范围来表示可见的区域。由于玩过的RTS比较少,记不清哪些游戏使用的是这种方式了,这里随便找了张图片,大致是这样

2017-11-04 16:45:45

【UnityShader】屏幕空间全息扫描效果

前段时间刚玩《使命召唤11》的时候发现里面新增了一种很高科技的扫描手榴弹,可以产生一圈类似全息效果的扫描圈,并显示出墙后的敌人,类似这样:最近打算实现一个用在第三人称中类似的效果,如下:实现方案:1.根据_CameraDepthTexture计算屏幕空间像素点的世界坐标2.将扫描发起位置的世界坐标传入shader3.计算屏幕空间世界坐标到扫描发起

2017-10-28 21:49:00

【Unity编辑器】EditorWindow扩展-SubWindow

unity项目开发过程中会需要使用到unityeditor的相关api来扩展编辑器,其中EditorWindow可以方便的开发编辑器窗口,可以用来开发打包工具等。但当遇到复杂编辑器需求时,往往会纠结于编辑器的布局而花掉一些时间。最近尝试写了一套用于实现EditorWindow内部的子窗体的功能,尝试通过可活动的子窗体的方式来加快布局,效果如下:主要实现了一个子窗体树结构

2017-10-26 23:14:07

【Unity编辑器】UVPreview扩展

最近为美术开发一个可以直接在unity中预览uv的编辑器,考虑到实用性,直接扩展了GameObject的Inspector,在GameObject的Preview中增加绘制UV的预览,支持查看模型光照贴图的UV布局:效果:UV预览:光照贴图UV预览:关键技术:几何着色器,C#反射核心功能即UV的渲染,因此放到最前面讲:第一

2017-10-26 22:50:50

【UnityShader】光线追踪体积光

最近尝试实现了一下光线追踪体积光,效果如下:光线追踪(Raytracing)是三维计算机图形学中的特殊渲染算法,跟踪从眼睛发出的光线而不是光源发出的光线,通过这样一项技术生成编排好的场景的数学模型显现出来。(摘自维基百科)实现步骤:一、在灯光区域生成体积光的载体mesh,即我们的体积光实际上是渲染在mesh上的,因此光线追踪的起点是每个顶点的位

2017-10-26 22:44:35

【UnityShader】双面透光布料材质

最近准备尝试写一个可以双面接受阴影,并且有类似透光效果的布料shader,大致效果如下:总的来说就是在布料逆光的时候可以看到背面物体的阴影实现的原理其实非常简单,unity本身已经提供了一整套阴影渲染的方案,我们所需要做的只是根据法线判断正反面,并在反面正确的渲染出阴影和光照即可,注意还需要自己实现ShadowCaster,以保证光照在背

2017-10-26 22:32:33

【Unity】基于矩阵的UGUI引导蒙版方案

UGUI实现引导蒙版有多种方案,可以基于shader,或纯粹靠程序实现,这里分享一种最近在项目中使用的基于shader的蒙版方案。许多基于shader的引导蒙版方案都是将需要遮罩的区域以vector4的形式传入shader,这种方式实现简单且易于理解,而且效果不错,但使用这种方式容易造成一种无法避免的问题:蒙版区域无法旋转,当然除非额外传入遮罩区域的旋转信息。今天要介绍的方

2017-10-26 22:25:12

【Unity】多边形雷达图

多边形雷达图作为游戏中直观体现角色各项数值的UI在许多游戏中得到应用。目前关于unity中实现雷达图的方式的教程有很多,这里提供一种UGUI实现方案,主要有以下功能:1.支持3边以上的任意多边形。2.使用PropertyDrawer扩展了Inspector面板,方便调节3.支持点击穿透判定:实现步骤:一、实现PolygonImageEdge类,用来表

2017-10-26 22:13:56

【Unity编辑器】Unity基于模板生成代码的原理与应用

Unity基于模板生成代码的原理与应用

2016-07-10 16:33:16

【Unity编辑器】使用反射和Attribute实现自定义右键菜单

unity中使用自定义Attribute实现右键菜单

2016-07-10 15:48:15

【Unity Shader】HSV和RGB互转的shader实现

shader中颜色是以rgba表示,但是很多时候我们需要将其转换成HSV颜色空间,或者将某个HSV颜色转成RGB进行计算,比如一些后期效果需要调整画面的色相(Hue),或者降低画面的饱和度(Saturation),因此有必要在shader中实现HSV和RGB颜色空间互转的函数,RGB和HSV互转网上可以搜到很多现成的方式,这里提高一组简短的shader实现:float3RGB2HSV

2016-01-28 22:07:54

【Unity Shader】Shadow Caster、RenderType和_CameraDepthTexture

在做很多效果的时候我们需要使用_CameraDepthTexture和_CameraDepthNormalsTexture,其中_CameraDepthTexture存储的是屏幕深度信息,而_CameraDepthNormalsTexture存储的还包括法线信息,常会用到的情况,比如做景深效果,我们需要根据深度来对模糊的图像和正常的图像插值完成景深效果,或者软粒子效果,需要根据深度差判断粒子网格是

2016-01-24 15:13:19

【Unity Shader】在Asset创建面板中添加新的shader模板

我们知道Unity4.x中,当在Asset目录中右键创建shader时默认新建的shader为unity的surfaceshader,而在5.x中,创建shader的选项中变成了四个shader模板,分别是StandardSurfaceShader,UnlitShader,ImageEffectShader和ComputeShader。可以看到原先默认的SurfaceShade

2016-01-17 11:13:38

【Unity Shader】浅析Unity shader中RenderType的作用及_CameraDepthNormalsTexture

初学UnityShaderLab的时候,一定有接触过UnityShader中的Tags标签块,比如: "LightMode"="Vertex" "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" "PreviewType"="Plane"其中LightMode标签指定该pass

2016-01-13 17:21:01

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!