• (答疑)游戏服务器端架构和兴概述

    Posted by : 袁艳平 on 2017年9月21日

    全服分线模型 一. 模型描述 由于多进程服务器模型的发展,游戏开发者们首先发现,由于游戏业务的特点,那些需要持久化的数据,一般都是玩家的存档,以及一些游戏本身需要用的,在运行期只读的数据。这对于存储进程的分布,提供了非常有利的条件。于是玩家数据可以存放于同一个集群中,可以不再和游戏服务器绑定在一起,因为登录的时候便可根据玩家的ID去存储集群中定位想要存取的存储进程。 [图-全区分线模型] 二. 存储的挑战 需求:扩容和容灾在全区分线模型下,游戏玩家可以随便

    阅读全文...

  • Unity中使用Cg语言如何编写Shader?

    Posted by : 袁艳平 on 2017年9月21日

    这一篇是unity之Shader的基础篇之基础,更多的是一些概念。该篇将分以下几个部分: 1、什么是Shader? 2、GPU和Cg语言 3、Unity中使用Cg语言如何编写Shader? 1、什么是Shader? 1.1、Shder的概念:Shader即着色器,是一款运行在GPU上的程序,用以对三维物体进行着色处理,光与影的计算,纹理颜色的呈现等,从而将游戏引擎中一个个作为抽象的几何数据存在的模型、场景和特效,以和真实世界类似的光与影的形式呈现于人们眼中

    阅读全文...

  • unity3d shader的软高光的金属效果

    Posted by : 袁艳平 on 2017年9月21日

    软高光的金属效果主要原理是Cook-Torrance光照模型的算法,是BRDF(双向反射分布函数)的一种,具体算法请看后面 新建一个shader 先浏览一下变量 _MainTint 主色调 _RoughnessTex   粗糙度贴图(控制高光大小) _Roughness 表面粗糙程度 _SpecularColor  高光颜色 _SpecPower  高光强度 _Fresnel   菲涅尔值(反射系数) Properties { _MainTint ("Di

    阅读全文...

  • 解读Unity中的CG编写Shader系列7——漫反射

    Posted by : 袁艳平 on 2017年9月21日

    折射与反射 在物理世界中,光的反射与折射往往是同时存在的,光源由真空或者空气中射入一种材料,光在进入这种材料的同时就发生了折射,折射的程度与各个介质的折射率有关,使光的传播路线偏离原来的路线; 继而如果光在通过不同传播介质的表面时,会像乒乓球一样弹回来,我们人眼能够看到东西,都是因为东西会反射光源,如果一种物质无法反射光,或者没有光源,我们就看不到东西。同样对于不同的材料,光的通过性越高,反射越不明显,比如玻璃(但是玻璃同样会有一定的反射,不然我们是看不到

    阅读全文...

  • 【Unity Shader】2D动态云彩

    Posted by : 袁艳平 on 2017年9月21日

    本篇讲述开发者为游戏《地平线:黎明时分》所开发的动态天气系统,重点讲了里面的云的模拟和渲染,很有参考价值。 其中,云的建模主要使用了raymarching的方法,他们的启发应该和shadertoy有关,但多了更多的程序控制和艺术效果等。可以从上面的图片看出来,效果很好。 SIGGRAPH上的这个演讲讲的主要是3D动态云彩的渲染,适合于端游这样的大型游戏。后来在翻iq的博客的时候,发现偶像在2005年就写过一篇关于2D动态云模拟的文章,里面用到的算法相对来说

    阅读全文...

  • 【Unity Shaders】使用纹理进行效果 – 打包和混合纹理

    Posted by : 袁艳平 on 2017年9月21日

    纹理不仅仅可以用来存储颜色信息,还可以存储很多数据信息这些数据信息可以分别存储到R,G,B,A四个部分,然后再打包成一张的质地,像下图这样: 为什么这样做有好处呢?在我们的应用中,纹理的数目将很大程度上影响应用的性能。因此,为了减少纹理的数量,我们可以看看着色器中使用的那些图片可以合并成一张,以此来优化性能。 任何灰度图都可以被打包进另一个新的纹理的RGBA四个中的某一个香奈儿。这听起来不是很明白,没关系,这篇文章就会展示如何做到这点。 一个常用的场景是,

    阅读全文...

  • Unity&Shader案例篇—五子棋

    Posted by : 袁艳平 on 2017年9月21日

    一、前言 尊重原创,转载请注明出处凯尔八阿哥专栏 上篇Unity&Shader基础篇-绘制网格+圆盘已经讲到了通过绘制网格和圆盘的结合实现了在网格中绘制棋子的效果,但是遗憾的是只能绘制一个点,一旦点击其他的网格交叉点,点就会绘制到新的位置。那么,是不是可以通过保存上一个点状态来实现同时绘制多个点的效果,进而实现五子棋呢。答案是肯定可以的,接下来就是要讲怎么实现这个效果。惯例先上效果图: 二、原理 1、首先,要明确一点,就是在GPU中没有像CPU中这

    阅读全文...

  • 【Unity Shader】Unity Chan的卡通材质

    Posted by : 袁艳平 on 2017年9月20日

    本篇分析下里面的卡通效果是怎么做的。 Unity Chan 想必很多人都看到或听过Unity Chan,也可以说是Unity酱、Unity娘……她数次出现在早期的AR程序中,一个萌娘在现实生活中的一张卡片上跳来跳去的我相信你大概可以想起来一点…据传,这个二次元生物是岛国分公司的Unity发布的吉祥物,并提供了开源素材来吸引岛国二次元游戏开发者。鉴于我对二次元世界不甚了解,感兴趣的可以在萌娘百科里找到更多介绍。Unity酱的官方资源可以在商店里找到,资源里自

    阅读全文...

  • 【Unity Shaders】Shader学习资源和Surface Shader…

    Posted by : 袁艳平 on 2017年9月20日

    Shader管道 Shader的工作是把一系列几何图形变成2D屏幕上的像素颜色。一个Surface Shader看起来像这样: 但要注意,当你的函数退出之后,并不是得到像素的最终颜色,你还可以通过传递一个法线向量来影响光照。 Fragment Shaders也有类似的管道,但必须包含其中的Vertex Function,并在其中需要做大量的工作以为下一步像素颜色的计算做准备。而Surface Shaders则隐藏了这一步。 以上就是你的Surface Sh

    阅读全文...

  • 【Unity Shaders】使用纹理效果 – 让精灵片动起来

    Posted by : 袁艳平 on 2017年9月20日

    本篇主要讲如何使用sprite sheet制作2D动画。在Unity中,实际上已经有很多插件可以完成这个工作,例如2dTookit,新版的Unity中支持2D应该也会提供类似的功能了。虽然如此,我还是希望通过这篇文章可以更深入地理解2D动画的原理。说到动画的原理,先提到一个名词,sprite atlas,也可以称为图像序列,实际上就是一张大图中包含了很多张小图,如下: 当我们按照一定速率滚动这张图时,就会发现图片动起来了,这我们应该都有经验,以前看小人书快

    阅读全文...

  • 1(current)
  • 2