自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wolf96的专栏

勿在浮沙筑高台、务实、深入思考

  • 博客(394)
  • 收藏
  • 关注

原创 WangTile实现小结

过程square tiles with just two types of edge, the complete stochastic set consists of 16 tiles,While the number of tiles required to form a complete stochastic set increases dramatically as you add new...

2020-04-25 14:52:09 1600 1

原创 Hierarchical Z-Buffer Visibility (Hi-Z)

可见性算法的目的是丢弃隐藏面,对于GPU可以节省CPU传入顶点信息的带宽&顶点ALU&FragmentALU的消耗,对于CPU可以减少DC(物件被剔除了)有三种方式可以实现可见性算法1.object-space coherence:物件级别的剔除,粒度最大传统Ray casting剔除就是这种方法2.image-space coherence屏幕空...

2019-09-15 12:17:02 4650 10

原创 ARM Unity开发者图形优化指南总结

优化列表应用层:1.用 OnBecameVisible()和OnBecameInvisible()来开关高cpu消耗的物体,或者该物体的部分高消耗逻辑代码2.用 Vector3.sqrMagnitude来替代Vector3.Distance()或者Vector3.magnitude.Vector3.sqrMagnitude sums the squared compon...

2019-06-04 18:54:13 1587

原创 用Projector来优化阴影

以前的项目使用projector做中配的影子,高配角色实时阴影,低配画一个半透明的黑圆基本原理就是将画影子的相机挂到Projector上,用该相机画指定layer的物体用黑色的shader画到一张RT上,,再用这个RT作为Projector的Cookie投影到其他Layer,这个shader是一个半透明的,用这个shader再画一遍物件通过Blend DstColor Zero将投影贴图与之前...

2019-04-10 20:56:49 1765

原创 Volumetric Cloudscapes(一):理论

billboard云没办法实现云间的阴影,所以要做一块 voxel cloudsvoxel clouds有一些缺点会很耗• 大量texture读取• Ray marches• 嵌套循环塑形部分根据高度的不同种类的云,与产生原因通过Ray Marching生成云,从相机开始March,采样3D Noise和一些 gradients来定义云的形状可以算出云的半透...

2019-04-09 19:35:44 1959 3

原创 开启stripping遇到的问题

在手机上会遇到Could not produce class with ID***的问题,是因为Unity strip掉了用到的脚本如果是非UnityEngine.dll中的类,会报not found的错,需要new一下改类参考:https://blog.csdn.net/huutu/article/details/43986079如果是UnityEngine.dll中的需要在...

2019-02-28 12:57:44 820

原创 Planer Reflection

源代码来自Unityhttps://github.com/keijiro/AdamPlaneReflection参考:Forward Mapped Planar Mirror Reflectionshttp://ws.iat.sfu.ca/papers/TR98-026.pdfcs代码:using UnityEngine;using UnityEngine.Rend...

2019-02-25 17:23:14 1173

原创 关于Texture Cache简单总结

Texture Cache是一个存储图片数据的只读cache按照正常uv顺序读贴图tex cache有高命中率Texture Cache在 shader processor附近,所以它有高吞吐率,并且低延迟上图可见有许多 shader corehttps://computergraphics.stackexchange.com/questions/355/how-does-te...

2019-02-22 19:15:51 6053 1

原创 Tiled Based Deferred Shading与Forward+

Tiled Based流程 1.将屏幕分成小块,每个小块为一个视锥体  2,(depth bounds)在每一个视锥体中,根据ZBuffer得到每个Tile的MinZ和MaxZ,用MinZ到MaxZ这片区域对光做交点测试(使用compute shader) 因此不需要光体积,点光源只需要position和range,spotlight也用球来做剔除bound...

2019-01-01 15:41:59 5909 5

原创 Unity 2018 3.0地形优化与新增特性

https://blogs.unity3d.com/cn/2018/10/10/2018-3-terrain-update-getting-started/总览:This update features improved tools and performance by taking better advantage of the GPU. It also adds support for...

2018-12-20 20:21:38 12698 1

原创 问题总结-AlphaTest在forward管线生成DepthNormalsTexture的问题

在Forward管线中,如果后期需要用到法线贴图,需要将相机depthTextureMode 的Flag设置为DepthNormals在相机面板可以确认这样的话会把物体走一遍"Hidden/Internal-DepthNormalsTexture"来渲染出一张屏幕的Normal和Depth"Hidden/Internal-DepthNormalsTexture"有很...

2018-12-20 14:30:37 1112 1

原创 关于EarlyZ

在前向渲染中,ZTest是在Fragement Shader之后进行的,也就是说,被遮挡的部分也要绘制FS,就产生了Over Draw,其实很费,Early Z Culling就解决了这个问题Early fragment tests, as an optimization, exist to prevent unnecessary executions of the Fragment Shad...

2018-12-14 12:35:02 2826

原创 延迟渲染与前向渲染

The basic idea behind deferred shading is to perform all visibility testing before performing any lighting computations.-RealTimeRendering 3rd延迟着色的基本思想是在执行任何光照计算之前执行所有可见性测试。General goal of the a...

2018-12-11 17:58:06 5994

原创 问题总结-forward render path surface shader 不写入深度问题

问题复现:forward render path surface shader删除fall back之后 不写入相机的深度贴图,导致用到深度的后期计算错误解决办法,#pragma surface 加入 fullforwardshadows 或者 addshadow原因:https://docs.unity3d.com/Manual/SL-CameraDepthTexture.html...

2018-12-10 16:45:20 689

原创 Unity 报错解决方法:Standard Shader Invalid Subscript uv2 error

It is not anything to do with you. There is a problem with the UNITY_PASS_META not being defined properly on import or when a shader gets recompiled in 2018.1.To "fix" it, you can right click the sh...

2018-11-08 11:25:50 4461

原创 基于物理的的相机(一):曝光

Moving Frostbite to Physically Based Rendering中讲了Frostbite引擎的基于物理的整套管线流程,其中就包括物理相机世界中的部分物体亮度是很高的,比如光源,相机的亮度范围也是有限,就需要将世界的亮度重新映射到相机的亮度范围,最终显示在照片上 需要做这件事的处理就是曝光,曝光代表有多少光线显示在图像上。控制曝光的三个参数就是:快...

2018-11-02 20:24:31 1439

原创 Lighting Box2源码分析系列

Lighting Box2源码分析(一):整体功能 Lighting Box2源码分析(二):Sun Shafts Lighting Box2源码分析(三):Depth Of Field景深 Lighting Box2源码分析(四):Global Fog全局雾

2018-10-24 19:30:36 1361

原创 Stochastic Screen Space Reflections(三):实现与优化

必须在延迟管线下渲染,且在不透明后,半透明前渲染本文在Xerxes1138的基础上进行改进实现Xerxes1138的实现比Siggraph2015的步骤省略了不少内容少了Tile分类和Hi-Z Trace首先逐个pass来看他的实现过程Recursive Pass//uv-速度(回到上一帧uv) float2 prevUV = uv - velocity; /...

2018-10-12 20:53:53 2380

原创 Stochastic Screen Space Reflections(二):SSR

Stochastic SSR是在SSR基础上的改进,下面看一下SSR流程整体流程:分块分类->Raymarching->卷积->处理反射(得到结果)->处理artifacts(解决噪声)->异步处理(优化)计算反射hit位置将屏幕分成16×16块tile此处的采样分布引用了刺客信条黑骑的方法黑旗算了一张Mask作为反射计算精度的...

2018-10-12 20:43:22 1903

原创 Stochastic Screen Space Reflections(一):理论

翻译了一篇PPT,源代码可以参考github这也是Lighting Box中StochasticSSR中的实现方法-----by wolf96 https://blog.csdn.net/wolf96...

2018-10-12 09:18:03 1488

原创 虚幻4引擎源码学习笔记(二):主循环LaunchEngineLoop

点此查看大图虚幻引擎主循环为LaunchEngineLoop.cpp,LaunchEngineLoop.hLaunchEngineLoop.cpp里面有3000+行代码,包含了整个虚幻引擎生命周期的流程依.cpp顺序依次看一下引用库和变量定义大部分功能的库都被引用#include "LaunchEngineLoop.h"#include "HAL/Platform...

2018-09-24 12:33:55 7771 3

原创 Unity PostProcessing Stack v2源码分析系列

Unity PostProcessing Stack v2源码分析(九):Color Grading Unity PostProcessing Stack v2源码分析(八):颗粒效果 Unity PostProcessing Stack v2源码分析(七):Auto Exposure自动曝光 Unity PostProcessing Stack v2源码分析(六):Lens Distort...

2018-09-21 09:00:55 1904 2

原创 Unity PostProcessing Stack v2源码整体结构梳理

整体渲染逻辑在PostProcessLayer.cs中把几个后期渲染顺序暴露给开发者,后期渲染顺序:不透明物体之后->栈前->栈中->栈后->最后的pass(最后的pass跳过输出HDR)不透明物体之后在RenderOpaqueOnly()方法中进行其余的顺序都在Render()方法中进行栈中方法为RenderBuiltins()最后的Pass方法为Re...

2018-09-18 09:42:19 5882 3

原创 虚幻4引擎源码学习笔记(一):整体文件结构

首先根据目录文件夹整体看一下结构,版本4.2Binaries里面是一些配置文件和第三方的配置文件,全部是xml,从这可以看到虚幻4都用了什么第三方工具,有各个平台的图形库,还有声音库,物理库(PhysX3),VR,图形显卡,Mono,,等等Build各个平台编译需要的,有一些批处理和xml文件等等有安卓,IOS,TVOS,HTML5等等Config各个平台的参数设置...

2018-09-09 12:36:48 6153

原创 个人博客开通

点此链接欢迎来访---by wolf96 

2018-09-08 22:21:50 906 1

原创 关于Unity自动为安卓添加权限

某些代码会使Unity自动添加安卓权限https://docs.unity3d.com/Manual/android-manifest.htmlUnity automatically adds the necessary permissions to the Manifest based on the Player Settings and Unity APIs that yo

2018-01-24 15:36:30 9071

原创 国产安卓手机推送问题

最近接了信鸽推送SDK和本地推送service,用的是小米5,发现了些问题,国产机都有这种问题只有app在后台开着的时候能能收到推送,清理了之后就收不到了,推送图标也不是设置的图标,是app图标信鸽更是只有制定token时才能收到推送,全部设备发送时干脆收不到手动开启小米5自启动后清理了进程后,再推送可以唤醒http://blog.csdn.net/jhl122/article/details/5

2018-01-19 11:04:14 1733

原创 Unity ios 打包xcode的PostProcessBuild设置

Unity4.x可以用XUPorter来实现:https://github.com/onevcat/XUPorter或者把Unity的xcodeapi放到工程里https://bitbucket.org/Unity-Technologies/xcodeapi复制源码放到Editor/xcode下(AssemblyInfo.cs除外)Unity5.x自带这套api,可以修改xcode项目工程配置以及

2018-01-19 09:57:58 7833 3

转载 Unity5 如何做资源管理和增量更新

工具Unity 中的资源来源有三个途径:一个是Unity自动打包资源,一个是Resources,一个是AssetBundle。Unity自动打包资源是指在Unity场景中直接使用到的资源会随着场景被自动打包到游戏中,这些资源会在场景加载的时候由unity自动加载。这些资源只要放置在Unity工程目录的Assets文件夹下即可,程序不需要关心他们的打包和加载,这也意味着这些资源都是静态加

2018-01-12 11:42:29 1767

原创 Unity安卓报错解决方法:android.content.res.Resources$NotFoundException

参考:https://forum.unity.com/threads/android-content-res-resources-notfoundexception.162246/https://forum.unity.com/threads/resource-not-found.81943/原理是这样的http://tools.android.com/recent/dealing

2018-01-10 10:58:46 2442

原创 Unity 安卓启动图片(splash image)前黑屏解决方法

产生原因是Unity Activity在显示启动图片前会做其他处理,不是马上显示,所以会有黑屏延迟,在网上找了两种解决方法,亲测之后发现各有优缺点:1.用另一个Activity作为启动可以做到完全没有黑屏延迟,但是启动Activity结束开始Unity Activity还是会有黑屏,两个Activity不能并发,结果就是显示完启动图片会有段时间黑屏根据activity的生命周期,只要一

2017-11-22 08:05:53 5199

原创 《重构》--读书笔记

第一章 重构,第一个案例该章主要举一个例子说明如何重构以及重构是什么重构的第一步,为即将修改的代码建立测试环境重构时依赖测试来体现是否有bug函数如果过长尝试把它分解,代码块越小,代码功能越容易管理,代码的处理与移动就越轻松。降低代码的重复量重构每次修改的幅度都很小,所以任何错误都很容易被发现变量名/函数名是代码清晰的关键,好的代码应

2017-07-30 14:55:04 1252 3

原创 Unity优化总结(时更)

1.AddComponent一个消耗时间8ms左右,非常费。考虑改成依赖注入2017/7/27

2017-07-27 09:29:36 987

原创 c#中Class和Struct使用与性能的区别

在Unity中很多已经定义为结构体的数据结构Vector2, Vector3 和 Vector4RectColor和Color32BoundsTouch1.Class为引用类型,Struct为值类型值类型与引用类型的区别这两篇文章讲得很好http://www.cnblogs.com/tonney/archive/2011/04/28/2032

2017-07-19 09:01:40 11305 2

转载 浅析值类型与引用类型的内存分配

https://msdn.microsoft.com/zh-cn/dd365372作者:林立大家都知道要学好 .NET,深入了解值类型和引用类型是必不可少的。在这里我给大家简单分析一下它们内存分配的区别和联系。在分析之前,我们先行构造出一个最简单的类引用类型:public class MyClass { }局部变量的声明在我们使用类型时,代码里面必然少不了变

2017-07-18 13:38:56 1063

原创 Unity3D架构之PureMVC

之前了解过UI实现框架大多是用MVC架构的,才听说有这么一个基于MVC的跨平台开源框架叫PureMVC,官网位置:http://puremvc.org/PureMVC架构图PureMVC在MVC的基础上又增加了Facade模式(外观模式)、Mediator模式(中介者模式)、Observer模式(观察者模式)、Proxy模式(代理模式)和Command模式(命令模式)关

2017-07-16 11:28:54 1900

转载 Unity与Android——Androidmanifest.xml文件的介绍

说明:在Unity开发移动平台相关应用程序时,难免会涉及到一些必要的插件(如:社会化分享插件ShareSDK、Umeng;增强现实开发Vufoia;扫描二维码插件等一些列),每一种插件分开使用时特别好用,无需特殊配置,使用Example案例就能快速上手使用。然后,当有时同时需要多个插件同时使用时,由于每个插件都包含有自身的Androidmanifest.xml文件,必然会出现的问题就是后面导入

2017-07-14 08:18:15 3805

原创 Unity3D关于多SDK合并网摘总结

多个SDK如何组织目录:http://www.cnblogs.com/lonkiss/p/6599340.html一般Android 插件放在 Assets/Plugins/Android/ 下, 但是一个项目可能要用到多个sdk , 比如既要用 阿里九游的sdk 又要用 share sdk 怎么办呢, 难道要只能杂糅在一起吗, 其实不然。可以按这种目录组织Plugins/

2017-07-14 08:06:51 2416 1

原创 关于File.ReadAllText Method (String)

File.ReadAllText Method (String)用在读取电量了,但是发现他没有关闭流,查了一下https://msdn.microsoft.com/en-us/library/ms143368(v=vs.110).aspxRemarksThis method opens a file, reads each line of the file, a

2017-07-13 22:15:21 2061

原创 Unity3D利用Logcat调试安卓

发布安卓包之后再次测试发生什么问题很难知道怎么了,比如说出现闪退等情况,可以用Logcat检测到,logcat是Android中一个命令行工具,可以用于得到程序的log信息,可以用 logcat 命令来查看系统日志缓冲区的内容.用模拟器运行安卓程序或者真机也可以进行测试。它的位置在SDK/platform-tools中。指令格式  [adb] logcat [<option&...

2017-07-13 08:38:59 4889

空空如也

空空如也

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

TA关注的人

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