自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

枫叶林的专栏

本博客

  • 博客(57)
  • 资源 (12)
  • 收藏
  • 关注

原创 基于物理的渲染-Disney Shading

Physically Based Shading at Disney 1 介绍 在我们成功地完成了基于物理的头发明暗处理(Tangled .27)之后,我们开始考虑开发基于物理模型的更广泛的阴影处理模型。在基于物理的头发模型中,我们能够在保持美术控制的同时获得很大程度的视觉丰富性。然而,事实证明,将头发的光照与场景的其余部分结合在一起,仍然使用传统的“ad-hoc”阴影模型和实时的灯光是很有挑战性...

2018-04-13 16:09:43 3671 1

原创 Unity游戏图形渲染效果系列之Bloom&高斯模糊篇

一.效果介绍原图:高斯模糊图:Bloom效果图:        从上面三张图可以直观的看出模糊效果和bloom效果带来的视觉差异,模糊效果可以理解为打了马赛克,至于马赛克的精细程度根据参数可以调节,Bloom效果就是当光线比较亮的地方看起来有亮光模糊效果。二.基本原理和实现方法介绍 高斯公式:,高斯分布也称正态分布。高斯模糊的基本含义为通过该公式描述了周围各点对当前点的影响程度呈正态分布。比如当前...

2018-03-24 20:45:55 2955

原创 Unity5的bundle开发和优化

一.关于Bundle加载速度图示:二.设计方案:    有两种方案可供选择        第一种是用完全bundle的管理方式,以每个文件夹作为独立的bundle,项目管理过程中需要注意分包处理、在加载Object和场景之前先加载其相关依赖的bundle,场景切换前卸载上个场景不需要的bundle。然后在加载和卸载的过程自己去给每个文件单独计算引用计数。最后提供当某些资源不用之后,可以卸载其缓存资...

2018-03-21 14:43:19 1102

原创 Real Rendering

图片压缩算法:Png:无损压缩 ,采用差分编码的过滤方法和高效的无损数据压缩算法。JPEG:有损压缩,国际标准组织为静态图像所建立的第一个国际数字图像压缩标准.ETC:采用将图像中的chromatic和luminance分开存储的方式,而在解码时使用luminance对chromatic进行调制进而重现原始图像信息。颜色和亮度分开存储。ETC2:比etc1更好且支持alpha。纹理贴图凹凸贴图Bu...

2018-02-11 23:01:08 349

原创 基于物理的渲染WardBRDF模型

      Notes on the Ward BRDF 1 介绍WardBRDF在1992年作为经验模型被引入用来测量BRDF数据,它有几个优点超过了以往的模型 并且广泛应用于计算机图形学,它只使用了几个简单可控的参数,可以模拟各项异性的的表面,表现效果相当好。本文的目的是澄清和纠正一些WardBRDF的实现细节,第2部分我会讨论BRDG的有效性和蒙特卡罗采样对于渲染算法的必要性。Ward为BR...

2018-02-07 10:45:20 2104

原创 Unity游戏图形渲染效果系列之基于物理的渲染

本章主要通过Cook-Torrance模型去讲解基于物理的渲染,目前的主流渲染和Unity的Standard Shader采样的都是CookTorrance模型。一.CookTorrance介绍及其公式  主要公式如下,光照分为普通漫反射+高光部分,CookTorrance模型主要计算的是高光部分的效果。普通漫反射就用Lambert模型就可以了,高光部分由FDG三项组成,D项代表微平面法线

2018-02-02 13:22:21 1545

原创 Unity游戏图形渲染效果系列之SSAO篇

导言在传统的MMO中,最常用的提升视觉显示效果的就是环境光遮蔽AO,传统的AO实现方法使用了光线追踪,路径追踪等方法,但是实时渲染效率下,所以现在常用的是屏幕空间环境光遮蔽SSAO,SSAO的效果表现出会让被遮挡的物体显示变暗,没有遮挡的地方显示更加明亮一些,使得整个视觉空间更有层次感。章节一.SSAO的视觉表现如图左边为正常渲染的原图,中间加了SSAO的效果,可以看出石头

2018-01-19 21:56:01 13853 2

原创 Unity游戏图形渲染效果系列之阴影篇(二)

继上一章从阴影产生的原理去讲解和实现阴影效果,本章将继续优化阴影效果和实现抗锯齿,以及阴影的多种产生方式及其应用场合,下面进入正题:一.高精度锯齿优化该方法实现简单,但是效果也是最好的一种,不过消耗非常大,所以适合的场合是精度要求较高的模型 比如主角渲染等,不适合全场景渲染。该方法下Shader代码基本不需要改什么,只需要提高精度就够了,其一是提高存储阴影相机深度图的分

2018-01-04 21:08:16 2289

原创 Unity游戏图形渲染效果系列之阴影篇(一)

本文将从阴影产生的原理去讲解和剖析阴影过程,分享常用的几种阴影产生的方式,以及阴影的几种锯齿解决方法。本章一将做一些阴影效果分享和原理讲解并实现最基本的阴影。

2017-12-29 20:41:05 8912 1

原创 游戏优化方案

1.尝试打开全屏UI的时候降低场景分辨率和部分后处理效果。2.当玩家持续20s没有输入后,进入待机状态 可以同时降低分辨率和部分效果,还可以采用降帧用Sleep(5)3.不在视觉范围内的声音特效动作暂停播放。3.场景优化有好处但是当导出给策划 动画的人用后,经常会出现bug。4.UI渲染优化,在打开UI的时候能检测当前屏幕哪些地方被遮挡,然后在渲染场景的时候 把这些地方给cull掉

2017-11-20 20:44:29 1926

原创 Tonemapping常用的几种算法

SimpleReinhard :float4 fragSimpleReinhard(v2f i) : SV_Target{float4 texColor = tex2D(_MainTex, i.uv);float lum = Luminance(texColor.rgb); float lumTm = lum * _ExposureAdjustment;//曝光系数floa

2017-09-19 10:15:32 7970 2

原创 ShadowGun代码

http://blog.csdn.net/candycat1992/article/details/42061701   不知道有没有案例  不怎么会用 Shader "MADFINGER/Transparent/GodRays" { Properties { _MainTex ("Base texture", 2D) = "white" {} Shader "Custom

2017-09-14 13:45:44 1054

原创 自定义文件系统流程

。。。

2017-09-07 22:15:01 901

原创 游戏图像学基础 实践经验和优化(一)

游戏图像学基础 实践经验和优化(一)

2017-08-29 23:41:12 818

原创 前向渲染水效果实现

Shader "Unity Shaders Book/Chapter 15/Water Wave" {Properties {_Color ("Main Color", Color) = (0, 0.15, 0.115, 1)_MainTex ("Base (RGB)", 2D) = "white" {}_WaveMap ("Wave Map", 2D) = "bump" {}

2017-08-21 20:40:07 934

原创 Unity的animaition不能播放问题

当主角远离玩家以后,将玩家的模型给隐藏掉,主角再走到玩家附件,会发现再调用播放动画时已经不播了。原因在于unity可能把该动画给优化掉了,需要重新设置一下animation.enable=false,animation=true就又可以重新播放了。选中animation的的debug模式 可以看出该动画的time时间轴在走 就是在播放,这个算列为unity的bug 吧。

2017-07-20 14:50:40 1404

原创 主角遮挡渲染轮廓线方案

-------------------------------

2017-06-14 11:33:48 1007

原创 屏幕后处理

void OnRenderImage(RenderTexture src, RenderTexture dest){}//屏幕后处理函数Graphics.Blit (src, dest,mat,pass);//屏幕后处理 src当前屏幕纹理Graphics.DrawMesh(aMesh, Vector3.zero, Quaternion.identity, aMaterial, 0);//

2017-06-09 15:10:26 1037

原创 顶点颜色交融效果

Shader "Unlit/factoryhot"{Properties{_MainTex ("Texture", 2D) = "white" {}// _PointTex ("Texture", 2D) = "white" {}_FromColor ("FromColor", Color) = (0, 1, 0, 1)_ToColor ("ToColor", Colo

2017-06-07 20:58:30 714

原创 Unity属性

Unity属性

2017-05-18 15:26:51 973 1

原创 游戏图像学习入门到精通-Shader总结篇

流水线1.应用阶段:(CPU)输出渲染图元,粗粒度剔除等 比如完全不在相机范围内的需要剔除,文件系统的粒子系统实现就用到粗粒度剔除。2.几何阶段:(GPU)把顶点坐标转换到屏幕空间,包含了模型空间 到世界空间 到观察空间(相机视角view) 到齐次裁剪空间(投影project空间,四维矩阵,通过-w<x<w判断是否在裁剪空间,xyz值都在-w,w之间)             到...

2017-05-03 10:09:21 4006 1

原创 ShaderAPI

shader

2017-04-29 13:02:19 1912

原创 几年的Unity学习总结

stream:其中类Stream为抽象类。由此有三个派生类。 需要引入命名空间:using System.IOMemoryStream:对内存进行读取与写入 BufferedStream:对缓冲器进行读取/写入 FileStream:对文件执行读取与写入 TextReader/Writer为抽象类。由此派生类: StreamReader/StreamWirter 分别用于对流的读取与写入。publ...

2017-04-27 17:59:55 5014 1

转载 Unity Profiler 性能分析

http://www.cnblogs.com/zhaoqingqing/p/5059479.html1. CPUA. WaitForTargetFPS:       Vsync(垂直同步)功能所,即显示当前帧的CPU等待时间    B. Overhead:       Profiler总体时间-所有单项的记录时间总和。用于记录尚不明确的时间消耗,

2017-03-07 14:56:26 430

原创 文件系统

1.文件系统本身采用的是同步加载实现2.手机上Page模式采用异步多线程方式加载,1.打包的时候资源的依赖关系按照顺序存储,2加载的时候先把资源丢到后台加载,加载之前会先按顺序加载身上的依赖资源 3资源加载完后 丢到主线程去处理文件的建立关系。4通过多线程可以加快加载速度3.某些特别大的不重要资源如贴图动画 如果预先加载会影响加载速度,可以把他放在最后去后台异步加载 然后用回调实现逻辑。然

2017-02-22 10:45:52 380

原创 反射方法去调用某脚本的函数

某些地方需要用到泛型 或者不知道类型的地方 就用如下方法:public static dictionary allobj=new dictionary();public static void save(T t) where T:Mnnobehaver{ allobj[t]=1;//把T类型存为object类型}public void Notify(){foreach(

2016-11-02 19:42:26 386

原创 关于Stream的读写

public abstract int Read(byte[] buffer, int offset, int count)buffer: 字节数组。此方法返回时,该缓冲区包含指定的字符数组,该数组的 offset 和 (offset + count -1) 之间的值由从当前源中读取的字节替换。offset: buffer 中的从零开始的字节偏移量,从此处开始存储从当前流中读取的数据。

2016-03-29 12:56:46 3994

原创 二进制 十进制和byte之间相互转换

int a=14;//二进制是1110byte[] b=System.BitConverter.GetBytes(a);///转换为byte,b[0]就是14BitArray ba=new BitArray(b);//ba[0]=false,ba[1]=true,ba[2]=true,ba[3]=true,ba[4]=false.....数组的低位也是二进制的低位int v=Syste

2016-01-29 15:04:22 1454

原创 关于C#结构体和byte[]之间的转换

1.转换成byte文件的形式:用来存储数据[Serializable]public class People{    public string Name { get; set; }    public int Age { get; set; }}//prefab 模式就是在mono里定义public的 People对象,把数据写进去,存成prefab。unity编辑器方便

2015-12-18 19:27:12 2561

原创 获取文件大小

文件的话 直接读byte 然后通过length计算就可以算出文件大小了,但是在下载之前好像是获取不到的,系统只有下载之后才知道大小。WWW.size 以前测试获取的大小是不对的。所以更新文件的大小  最好写在配置文件当中。本地文件大小如下方法直接获取。byte[] data = File.ReadAllBytes (Application.streamingAssetsPath +"/

2015-10-27 13:42:17 2864

原创 关于bundle的创建方式

bundle的创建包括createfromfile和createfrommemory,还有WWW的方式1.createfromfile是从文件读取,unity会读取类似bundle的头文件 来确定具体加载该包的某个内存,该方法节省内存2.createfrommemory是先全部load成byte[ ]到内存 然后再加载bundle 这样内存消耗很大,www的方式也是和这个差不多的。另外

2015-10-20 17:41:56 1059

原创 关于Android/IOS里边读取StreamingAsset目录 文件流

用Android接口来读取streamingAsset目录 可以提高效率,www方式效率不好 还耗内存。读取byte后直接CreateFromMemory 来创建bundle。其他模式还是CreateFromFile来创建效率更好,memory的方式耗内存,所以大文件还是要拷出来放在file目录 用 CreateFromFile来创建,IOS上全部用CreateFromFile。public

2015-10-19 13:46:46 23167 1

原创 我的Unity项目遇到的坑

1.客户端月卡显示问题 由于沟通问题导致appstore的商品id被删了,各方确认苹果的商品id变换必须重审,想增加id发现客户端id被写死了。最终只能减少一个id换成月卡了。所以客户端要动态。2.NGUI移动效率低下问题,动态移动的Sprite会导致每帧的NGUI排序 效率很低,所以主城的玩家头上的icon和text都必须用 render和3dtext来做。所以NGUI只适合做静态UI....

2015-09-26 13:04:45 5784 1

转载 Unity buildingsetting

播放器设置      在播放器设置中,可以为将在 Unity 中构建的最终游戏定义各种参数(针对不同平台)。例如,其中有些值将在用于打开独立版游戏时启动的分辨率对话框 (Resolution Dialog)中,其他则在构建 iOS 设备游戏时用于 XCode,因此,准确地填写这些值非常重要。      如需查看播放器设置 (Player Settings),从菜单栏中选择编辑

2015-09-16 17:41:51 8318

原创 IOS各种编译问题

1. app install failed     The application does not have a valid signature. 该提示是签名问题。2. app install failed  在IOS8上装不了,但是IOS7可以。调试的话换个机子就好了。产生原因有可能的embed_binaries 添加不需要的库 导致IOS8编译不过。3.提示Unity编译出的底层O

2015-09-15 11:26:50 543

原创 关于MD5值加密算法

public static string getMD5(string str)//该方法获取字符串的md5加密 通常用来验证数据    {        System.Security.Cryptography.MD5CryptoServiceProvider md5 = new System.Security.Cryptography.MD5CryptoServiceProvider()

2015-08-19 16:24:12 910 1

原创 关于简单的加密和解密算法

加密解密 最简单的就是简单的字符串连接和运算,但是直接对字符串操作比较麻烦,所以建议一般做法是先把string转换为byte数组后再进行简单的异或运算或者其他运算进行加密和解密,最终比对的都是string、void Start()    {        string s = "sxasxasx时刻到那时小时额外2饿饿2221312312";        string S

2015-08-01 18:03:01 1928

原创 Unity使用C#的多线程

在unity里边使用多线程做一些事情是非常好的,比如解压资源 更新资源等。因为单开线程的话 不会影响主线程卡顿,这样UI就不会卡了。但是开的线程里边不能执行unity主线程的mono代码。线程启动后,执行完毕自动结束该线程、可以同时启动多个线程做事。代码如下: using System.Threading;void StartThread()    {        Thread

2015-07-20 16:34:12 26290

原创 腾讯sdk的初始化和支付需要在同一线程调用 解决方法

开始的时候 我们初始化在oncreate里边   然后unity调用支付   发现会出问题,之后我们把初始化和支付都放unity 发现也有问题,最好解决办法就是初始化放oncreate 然后支付 调用主activity的线程方法,如下:public void TencentPaySDK() {Log.d("Unity", "PayTencent in SDK"); final DSAc

2015-07-20 11:40:54 2080

原创 关于Unity特效未播放完的问题

游戏中常遇到 技能特效播放出来一半就不播放后边的 了,或者没有播放出来的问题,这是因为我们给特效定义的生命周期过短造成的,比如在pc上正常1s的特效播放是正常,播放完后自动destroy掉,但是在手机上可能就由于设备问题,加载卡帧问题,导致可能播放动画时间需要更长,或者卡完帧后,计算生命周期的时间已经过了,一般加长生命周期就可以了。另外注意时间加速的问题,Time.unscaleDeltaTime

2015-06-26 14:35:42 2946

Final IK 1.9.0.rar

Final IK 1.9最新版.unitypackage

2021-06-08

s2012_pbs_disney_brdf_notes_v3.pdf

s2012_pbs_disney_brdf_notes_v3.pdf ,ward brdf更加优异表现的效果模型

2018-03-12

arm-guide-unity-developers-3-2-cn

unity arm优化文档

2016-11-28

unity的插件NGUI3.9.9

Ngui3.9.9最新版

2016-06-21

CodeGuard v1.3.6

CodeGuard v1.3.6

2014-08-07

用C#开发。在开发环境.net 。实现多页打印功能。

用C#开发。在开发环境.net 。实现多页打印功能。这是我给客户写的再使用的打印程序。很好用。客户现在还在使用。

2014-06-24

unishare unity的分享插件

unishare unity的分享插件

2014-02-21

UnityScriptEditor 2.7

这是一个unity3D 的脚本编辑器,能够高亮显示语法和提示指令,大大提高编写Unity3D 脚本的效率

2012-11-03

unity寻路插件

最全的unity寻路插件

2012-10-09

北京交通大学2010年数据模型与决策

北京交通大学2010年数据模型与决策

2012-09-11

unity3d中文API

unity3d中文API

2012-09-04

五子棋网络版客户端和服务器程序

五子棋网络版客户端和服务器程序 unity3d 五子棋网络版客户端和服务器程序 源程序!!! unity通信 ,ngui重要技术。

2012-09-03

空空如也

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

TA关注的人

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