- 博客(59)
- 资源 (26)
- 收藏
- 关注
原创 Unity Standard shader 里面 全局光照Global Illumination(GI)
Unity Standard shader 里面 全局光照Global Illumination(GI)Standard 粗略的来看,其实分为两个部分,一个是真正的BRDF,第二部分是UnityGI。全局光照是在局部光照的基础上,增加考虑物体与物体之间光线交互。所以说如果局部光照系统就是由光源+待渲染物体+视点组成的话,那么全局光照系统就是由光源+各待渲染物体之间的反射光+待渲染物体+视点组成...
2019-07-11 22:43:19 2423
原创 ue 4 在 vs2017 下打开显示不兼容问题
ue4 在 vs2017 下打开显示不兼容问题解决方法第一步:删除3个文件1.Binaries文件夹以及里面所有东西2.Intermediate文件夹以及里面所有东西3.XXX.sln第二步:1.右键XXX.uproject -> Switch Unreal Engine version . 选择你虚幻4安装的路径以及版本。2.右键XXX.uproject -> G...
2019-07-02 12:26:08 2660 2
原创 Leaf源码network,gate部分剖析
Leaf源码network,gate部分剖析Gate 模块Agent 接口Gate下面的run函数NetWork 模块Coon 接口tcp_msg 脚本tcp_server脚本##Leaf 简介Leaf 是一个由 Go 语言(golang)编写的开发效率和执行效率并重的开源游戏服务器框架。Leaf 适用于各类游戏服务器的开发,包括 H5(HTML5)游戏服务器。Gate 模块Gate模块是...
2018-12-16 19:23:10 707
原创 建立一个raymarching
建立一个raymarchingshadertoy 查看先解释一波 raymarching, Raymatching是一种计算机图形渲染方式,但它的潜力仍未被完全发掘。Raymatching一般用于渲染体积纹理、高度图以及解析曲面。如今,大多数游戏用OpenGL或Direct3D(DirectX)来使用显卡的硬件加速器绘制多边形,电脑可以以每秒60帧的速度渲染几百万个三角面。虽然Raymatc...
2018-10-28 17:08:18 1035
原创 unity 动画状态机重复利用
unity 动画状态机重复利用在unity 项目工程里,常有几十个NPC,几十个小怪的动画状态机都是相同的,类似于这个情况,可以只需要制作一套状态机,复制到每个动画的文件夹里面,然后就是拉入动画了。 这个的前提就是每个动画里面都是相同的,大家的状态机都是一样的。 下面的工具就是方便来导入动画的,是相应的动画状态机保持着相应的动画。代码和介绍[MenuItem("Asse
2018-10-16 14:25:18 5977 3
原创 利用反射从C#字符串获取类的属性值
问题在lua里面能很容易的去利用字符串去访问属性,但是在C#里面有时候就很棘手,特别是在字符串比较多的情况下。方法比如我们要读取player表里面的ID,Name,Age,Position。。。。。。 但是玩家表里面会有很多数据,我们在以上四项是比较容易去读的,但是有时候在比较复杂的情况下,我们只有“ID”,“Name”,“Age”,“Position”等字符串,但是希望去读取到...
2018-07-06 00:56:26 5058
原创 几个简单代码优化方法
几个简单代码优化方法提取代码提取前void renderBanner() { if ((platform.toUpperCase().indexOf("MAC") > -1) && (browser.toUpperCase().indexOf("IE") > -1) && wasInitialized() && resize > 0 ) {
2018-01-05 22:05:29 2381
原创 unity 全息和xRay shader
unity 全息和xRay shader这个是网上的效果,科幻的感觉是不是很强烈。 下面是我们去实现的效果。 先看下效果图,左边的是Xray的效果,右边是全息的效果。都有着异曲同工的妙处。 全息的效果全息特效只显示物体的轮廓,必然会有用到类似于边缘光照的效果。void surf(Input IN, inout SurfaceOutput o) { float4 c =
2017-09-02 16:16:08 7693 1
原创 unity 中Deferred Lighting (延迟光照)
Deferred Lighting (延迟光照)Deferred Lighting简介这个是unity 圣典里面对于延迟光照的解释Deferred Lighting is rendering path with the most lighting and shadow fidelity:延迟光照是一种当前最高级的能实现光线和阴影保真的渲染路径There’s no limit how many lig
2017-08-17 20:47:10 3372
原创 unity人物换装
unity人物换装人物换装算是游戏中的老梗了,为了美化游戏,为获取更好的游戏体验,很多游戏中可以实现人物换装,还可以给人物更换武器,还要翅膀什么的。总之,能在玩家在体验上 带来很好的效果。 先看下效果图。 这个就把一个人物的形象稍微改变了下。为游戏增加些乐趣。人物的皮肤的制作首先看下人物皮肤的制作,其实这里美术已经给制作几套模型,我们之给第一套人物模型添加上骨骼,后面的就皮肤都不添加上骨骼了
2017-07-28 17:12:12 12345 2
原创 利用HudText来制作连击爆字
利用HudText来制作连击爆字HudText简介HudText是NGUI的一个插件,用来显示人物的名字和血条。可以跟随人物移动,在屏幕UI上显示该有的东西,我们今天利用这个插件里面的脚本来制作爆字的功能。调用方法每次调用的时候调用ADD这个函数就是可以的了。 第一次调用mList.Count == 0 里面的代码,生成一个Entry1的对象。public void Add(int obj, Co
2017-07-20 12:08:26 1485
原创 unity人物残影的实现
unity人物残影的实现在游戏过程中,会常实现人物瞬移,或者其他的移动的特效,这个时候,将其加上残影的效果,给人带来的视觉效果要更好点。下面来看残影的实现效果。 这里的残影的原理,是在人的后面记录之前的几帧的几个皮肤,后面给渲染成绿色的,然后展现在屏幕上就可以了。 其中还有种方法可以用shader来做,效果会更好些。先定义时间和加载协程在文件里面需要计算出捕捉的时间,我们调用的时候就可以用S
2017-06-28 20:19:01 3142
原创 代码批量制作prefab
代码批量制作prefab在unity的游戏中,美工制作的大量的游戏模型需要我们去处理,通常都是需要制作成prefab之后,再制作成assetBundle包来得到相应的物体。在这篇博客里面我们简单的讲解下批量快速制作成prefab的过程。先生成菜单和鼠标右键快捷方式[MenuItem("GameObject/生成一般模型Prefab", false, 0)]这个就可在unity的引擎上面生成了菜单。对
2017-06-21 17:48:12 1470
原创 Unity中状态机的使用
Unity中状态机的使用在游戏中,人物的状态是不断变化的,所以写个FSM来管理状态是必要的。 一个有限状态机是一个设备,或者是一个设备模型,具有有限数量的状态,它可以在任何给定的时间根据输入进行操作,使得一个状态变换到另一个状态,或者是使一个输入或者一种行为的发生。一个有限状态机在任何瞬间只能处在一种状态。设置状态的常量我们这里设置了几个普通的idle,run,death的常量public cl
2017-06-15 21:26:17 11688
原创 游戏中间的心理学
游戏中吸引玩家注意力的几项原则性(Sex) 应该是永恒不变的话题,也相对是比较吸引玩家的话题,如《古墓丽影》。人的面部也是极其的重要的,人的面部表情给人带来的感觉是印象深刻的。食物,食物对人的诱惑是不言而喻的,什么问题都不如饱食一顿来的痛快。还有个比较小巧的性价比的吸引玩家注意的就是利用动态,动态的UI或者画面示出来更加吸引玩家。时间和金
2017-06-08 16:46:04 1004
原创 unity实现按钮和攻击对象的选定
unity实现按钮和攻击对象的选定下面来看下实现的效果的样子unity通常用来用类似easytouch的资源来实现对攻击目标的选定UI里面的效果的实现这个样子就把一个按钮实现了由到类似于Easytouch的方式了。下面我们看下代码的实现吧。 //区域半径 [SerializeField] private int radius = 100; p
2017-04-28 14:51:48 1957
原创 unity连击的实现
unity连击的实现场景描述在平时玩的RPG游戏中,经常会出现按下同一个按钮,会出现几个不同的连续的动作。今天来记录下这个功能的实现。这里的人物图片感觉有点小,CSDN限制只能传2M以内的照片什么的。 在这里是一直点击一个按钮的,这里可以看见player的第一次攻击方向是向右的,第二次是向左的,第三次是向右的,第四次是一个拿剑向下杵下去的动作。实现方法先来看下代码,在PlaySkill里面
2017-04-19 12:04:56 6421 1
原创 AssetBundle的初步使用
AssetBundle的初步使用资源下载 AssetBundle是unity提供的一种用于存储资源的文件格式,它可以存储任意一种Unity引擎能够识别的资源,例如模型、纹理、音频、动画片段甚至整个场景等。同时,AssetBundle也可以包含开发者自定义的二进制文件,只需将二进制文件的后缀名改成“.bytes”,Unity引擎即可将其识别为TextAsset,进而可以被打包到AssetBundle
2017-04-10 21:05:35 479 2
原创 unity中玩家扇形攻击范围
unity中玩家扇形攻击范围在unity rpg游戏中,经常会有主角或者Boss什么的会发动技能攻击,除了有攻击的距离以外,肯定会有攻击的扇形范围。本篇博客就给大家简单的讲解一下范围。 这个是出来60度角的视线范围,在主角的60度角里面,可以去判断是否可以发动攻击,并且用射线来检测target是否在范围之内。检测扇形角度这里用了两条Debug.DrawLine来绘制两条红色的线,用来显示所在的区域
2017-03-30 14:08:58 11980 1
原创 Photon Unity Networking(PUN)的简单使用
Photon Unity Networking(PUN)的简单使用demo下载我们知道在untiy 5.1之后,unity自带了Unet,但是PUN的功能强大之处,更胜一筹。下面来简单介绍一下unity中使用Photon插件的方法。 当显示为Joined时候就可以点击地面,同步生成预制体Cube了。在面板里我们只需要加入一个Plane就可以了再去给它附上一个叫做Click的脚本就可以了。usi
2017-03-24 10:57:27 18680 4
原创 unity摄像头跟随游戏主角移动
unity 中间摄像机的移动现在很多情况下都会出现游戏摄像机跟随着人物移动,网上关于这个也是很多的,但是有时候只是和游戏人物简单的出现保持相对的距离,这样子运动起来会很干涩,动作不够连贯,给游戏玩家很不好的感觉。如果遇到墙,和其他的物体对游戏主角进行遮挡,这个样子,就无法看到游戏玩家了。下面的方法巧妙的解决了这个问题。代码实现 首先定义几个变量: publ
2017-03-09 23:18:44 6708 2
原创 C#搭建三层架构
C#搭建三层三层架构分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)再加上实体类库(Model)三层详解:1、实体类库(Model),主要存放数据库中的表字段。2、数据访问层(DAL),主要是存放对数据类的访问,即对数据库的添加、删除、修改、更新等基本操作3、业务逻辑层(BLL)对传送数据进行逻辑判断分折,并进行传送正确的值。
2017-02-17 22:49:44 20600 7
原创 shader溶解特效
前言:在游戏中间我们常常看见物体会慢慢消融,变为灰烬,这个效果可以用于人物的消失,毁灭.代码:Shader "Esfog/Dissolve" { Properties { _MainTex ("Base (RGB)", 2D) = "white" {} _NoiseTex ("NoiseTex (R)",2D) = "wh
2016-06-15 12:23:26 4665
原创 Unity简单脚本
一.transform 移动受刚体碰撞void Update () { float h = Input.GetAxis("Horizontal"); float v = Input.GetAxis("Vertical"); transform.Translate(new Vector3(h, 0, v) * speed*Time.deltaTi
2016-06-12 23:18:12 850
原创 VAO,VBO绘图方式及GLSL传值
顶点数组对象(VAO)顶点缓冲区对象(VBO)用VAO方式来绘制一个三角形,步骤一:VAO,VBO对象的创建,glGenVertexArrays()是分配定点数组对象,这里说明有一个VAO对象,并且已经使用未初始化的定点数组集合的默认状态进行了数值的初始化.glGen*类型负责分配不同类型的对象分配glBindVertexArray()负责创建并且绑定一个定点对象.gl
2016-05-27 23:44:08 1619
原创 (Shadow Mapping) 阴影映射原理与实现
阴影贴图(Shadow mapping)是在三维计算机图形中加入阴影的过程。阴影贴图的概念最初是由 Lance Williams 于 1978年在“在曲面上投射阴影”这篇论文中提出的。从那时开始,这种方法就已经用于场景预渲染、实时甚至是许多游戏设备以及高端电脑游戏中。在Pixar 的RenderMan 中就使用了阴影贴图技术,同样,在 玩具总动员 这样的游戏中也使用了这项技术。像素与以
2016-05-20 07:51:03 15088 2
原创 OpenGL中显示背景贴图
转载请声明出处:导言:通常在OpenGL里面绘制的都是默认的黑色背景,对于有些时候,太过于单调了,现在我们可以对它加上背景,实现一个不错的图形.在网上看到人家要实现星空图,找到一张星空图片贴在背景上面.看一下效果图原理:看一下下面的这张图:这是OpenGL里面摄像机的原理图,我们要绘制的物体在离摄像机近的地方,那个离摄像机远的矩形
2016-05-19 00:20:24 24038 15
原创 水波纹(water ripple)
demo下载水波纹,鼠标点击后水会四散,产生涟漪的感觉,十分真实.实现原理:扩散:当你投一块石头到水中,你会看到一个以石头入水点为圆心所形成的一圈圈的水波,这里,你可能会被这个现象所误导,以为水波上的每一点都是以石头入水点为中心向外扩散的,这是错误的。实际上,水波上的任何一点在任何时候都是以自己为圆心向四周扩散的,之所以会形成一个环状的水波,是因为水波的内部因为扩散的对称而
2016-05-08 19:15:21 5165 2
原创 shader水面起伏的波浪
利用shader来实现飘扬的旗帜,同样可以实现水面起伏的效果.demo下载一.原理旗帜飘扬的动作都比较平滑,这个是利用了正弦曲线来实现顶点位置的变换规则,简单看一下上图,水波利用先定义的一个函数来计算Y方向的移动,在VertexShader里面调用此函数来实现模型在Y轴方向的位置,并随着时间而起伏,实现类似波浪和旗帜飘扬的效果.看一下效果图代码实现:
2016-05-04 16:16:12 8112 1
转载 C++内存管理
原文出处http://blog.csdn.net/zhanghefu/article/details/5003407[导语]内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存泄漏几乎在每个C++程序中都会发生,因此要想成为C++高手,内
2016-04-27 13:11:31 578 1
原创 视差贴图(Parallax Mapping)与陡峭视差贴图(Steep Palallax Mapping)
视差贴图(Parallax Mapping)视差贴图目前已经被广泛运用了,只需要增加一种模型表面的深度纹理信息之后,就能近似的模拟模型的凹凸,在不需要灯光,不需要环境反射的情况下,可以比较真实的模拟真实世界.原理:根据用户的观察角度来将纹理坐标偏移,就是把模型表面较高的位置来遮挡位置较低的位置.当用户观察角度改变的时候,让一些像素的纹理坐标偏移来遮挡一些像素,从而使观察者感觉到凹凸
2016-04-20 13:13:06 6155 2
转载 渲染到纹理(Render To Texture, RTT)详解
渲染到纹理(Render To Texture, RTT)详解RTT是现在很多特效里面都会用到的一项很基本的技术,实现起来很简单,也很重要。但是让人不解的是网上搜索了半天只找到很少的文章说这个事儿,不知道是因为太简单还是因为这项技术已经出现很长时间了。总之我是在摸索这个东西的时候绕了不少弯子。现在把具体的实现方法写下来。 什么是纹理 熟悉DX的兄
2016-04-19 23:33:51 2637 2
原创 HLSL 边缘检测
边缘检测:图像处理和计算机视觉中的基本问题,边缘检测的目的是标识数字图像中亮度变化明显的点。图像属性中的显著变化通常反映了属性的重要事件和变化。这些包括(i)深度上的不连续、(ii)表面方向不连续、(iii)物质属性变化和(iv)场景照明变化。 边缘检测是图像处理和计算机视觉中,尤其是特征检测中的一个研究领域。(维基百科)乍一看维基百科的上面的解释,有点懵,我们具体来看一下几张图片
2016-04-16 16:13:15 1069
原创 广告版技术BillBoard 原理与实现
面向世界的广告板demo下载广告板技术:无论观察者处于什么位置观察任何图像,广告版都能提供一个朝向观众的面,这个面随着摄像机的改变而改变.BillBoard技术是计算机图形学领域中进行快速绘制的一种方法。在类似游戏这种对实时性要求较高的场景下采取BillBoard技术可以大大加快绘制的速度从而提高画面的流畅性。把3D的物体用2D来表示,然后让该物体始终朝向镜头。比如场景中的
2016-04-10 19:12:07 6959
原创 缓冲区Alpha Blend
(demo)源代码下载Alpha blendAlpha混合通常是为了实现透明效果,透明效果的程度通过alpha值来控制,对于一个8bit的alpha chanel,可以产生0-255级透明效果,0表示完全透明,255表示完全不透明,在D3D中alpha值的来源主要有三种.颜色混合方程 其中op在这里定义为混合操作共有五种形式ADD表示相加操作,
2016-04-04 08:02:42 2101 2
原创 shader镜面反射(Reflection)
镜面反射:要实现场景中类似镜面反射的场景,是一种很美妙的事,列如水中的倒影,玻璃上面的反射.下面我们来实现这种功能.我们来
2016-04-03 07:17:59 9060
原创 Alpha Mapping
阿尔法通道:(α Channel或Alpha Channel)是指一张图片的透明和半透明度。例如:一个使用每个像素16比特存储的位图,对于图形中的每一个像素而言,可能以5个比特表示红色,5个比特表示绿色,5个比特表示蓝色,最后一个比特是阿尔法。在这种情况下,它要么表示透明要么不是,因为阿尔法比特只有0或1两种不同表示的可能性。又如一个使用32个比特存储的位图,每8个比特表示红绿蓝,和阿尔法通道
2016-03-21 23:12:15 1023
原创 Normal Mapping 法线贴图
法线贴图(Normal mapping)在三维计算机图形学中,是凸凹贴图(Bump mapping)技术的一种应用,法线贴图有时也称为“Dot3(仿立体)凸凹纹理贴图”。凸凹与纹理贴图通常是在现有的模型法线添加扰动不同,法线贴图要完全更新法线。与凸凹贴图类似的是,它也是用来在不增加多边形的情况下在浓淡效果中添加细节。但是凸凹贴图通常根据一个单独的灰度图像通道进行计算,而法线贴图的数据源
2016-03-20 22:38:17 1511
原创 shader入门--PixelShader运用实例
PixelShader:PixelShader的功能是根据传入的变量,按照某种算法计算出每个像素的颜色.即是在传入变量里面,包含顶点法向量,纹理观察位置等变量,在执行的时候,根据PixelShader传入的各顶点上的的数据,再按两个顶点之间的数据进行插值,从而得到对应的像素的计算结果.PixelShader的输出:由于可以控制模型上的每个像素的颜色,可以将模型德尔颜色直接输出,
2016-03-18 07:19:51 1577
Unreal Engine 4 Scripting with C++ Cookbook
2018-09-23
Fix Yosemite VM Graphic Performance
2017-12-12
Physically Based Rendering第3版
2017-12-08
实现攻击范围选定的UIButton代码
2017-04-28
Photon Unity Networking(PUN)的简单使用
2017-03-24
Unity 3D NGUI实战教程(80M完整版)
2016-06-10
OpenGL4.0框架
2016-05-28
ShadowMapping 阴影映射
2016-05-20
ShadowMapping(阴影映射)
2016-05-20
OpenGL窗口背景绘制
2016-05-19
海滩波浪OpenGL
2016-05-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人