<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[wolf96的专栏]]></title><description><![CDATA[勿在浮沙筑高台、务实、深入思考]]></description><link>https://blog.youkuaiyun.com/wolf96</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wolf96]]></copyright><item><title><![CDATA[WangTile实现小结]]></title><link>https://blog.youkuaiyun.com/wolf96/article/details/105749753</link><guid>https://blog.youkuaiyun.com/wolf96/article/details/105749753</guid><author>wolf96</author><pubDate>Sat, 25 Apr 2020 14:52:09 +0800</pubDate><description><![CDATA[过程
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...]]></description><category></category></item><item><title><![CDATA[Hierarchical Z-Buffer Visibility (Hi-Z)]]></title><link>https://blog.youkuaiyun.com/wolf96/article/details/100851090</link><guid>https://blog.youkuaiyun.com/wolf96/article/details/100851090</guid><author>wolf96</author><pubDate>Sun, 15 Sep 2019 12:17:02 +0800</pubDate><description><![CDATA[可见性算法的目的是丢弃隐藏面，

对于GPU可以节省CPU传入顶点信息的带宽&amp;顶点ALU&amp;FragmentALU的消耗，

对于CPU可以减少DC（物件被剔除了）

有三种方式可以实现可见性算法

1.object-space coherence:

物件级别的剔除，粒度最大

传统Ray casting剔除就是这种方法

2.image-space coherence

屏幕空...]]></description><category></category></item><item><title><![CDATA[ARM Unity开发者图形优化指南总结]]></title><link>https://blog.youkuaiyun.com/wolf96/article/details/90801953</link><guid>https://blog.youkuaiyun.com/wolf96/article/details/90801953</guid><author>wolf96</author><pubDate>Tue, 04 Jun 2019 18:54:13 +0800</pubDate><description><![CDATA[优化列表

应用层：

1.用 OnBecameVisible()和OnBecameInvisible()来开关高cpu消耗的物体，或者该物体的部分高消耗逻辑代码

2.用 Vector3.sqrMagnitude来替代Vector3.Distance()或者Vector3.magnitude.

Vector3.sqrMagnitude sums the squared compon...]]></description><category></category></item><item><title><![CDATA[用Projector来优化阴影]]></title><link>https://blog.youkuaiyun.com/wolf96/article/details/89194363</link><guid>https://blog.youkuaiyun.com/wolf96/article/details/89194363</guid><author>wolf96</author><pubDate>Wed, 10 Apr 2019 20:56:49 +0800</pubDate><description><![CDATA[以前的项目使用projector做中配的影子，高配角色实时阴影，低配画一个半透明的黑圆

基本原理就是将画影子的相机挂到Projector上，用该相机画指定layer的物体用黑色的shader画到一张RT上，，再用这个RT作为Projector的Cookie投影到其他Layer，这个shader是一个半透明的，用这个shader再画一遍物件通过Blend DstColor Zero将投影贴图与之前...]]></description><category></category></item><item><title><![CDATA[Volumetric Cloudscapes(一):理论]]></title><link>https://blog.youkuaiyun.com/wolf96/article/details/89158874</link><guid>https://blog.youkuaiyun.com/wolf96/article/details/89158874</guid><author>wolf96</author><pubDate>Tue, 09 Apr 2019 19:35:44 +0800</pubDate><description><![CDATA[billboard云没办法实现云间的阴影，所以要做一块 voxel clouds



voxel clouds有一些缺点会很耗
• 大量texture读取
• Ray marches
• 嵌套循环


塑形部分




根据高度的不同种类的云，与产生原因


通过Ray Marching生成云，从相机开始March，采样3D Noise和一些 gradients来定义云的形状
可以算出云的半透...]]></description><category></category></item><item><title><![CDATA[开启stripping遇到的问题]]></title><link>https://blog.youkuaiyun.com/wolf96/article/details/88022832</link><guid>https://blog.youkuaiyun.com/wolf96/article/details/88022832</guid><author>wolf96</author><pubDate>Thu, 28 Feb 2019 12:57:44 +0800</pubDate><description><![CDATA[在手机上会遇到Could not produce class with ID***的问题，是因为Unity strip掉了用到的脚本

如果是非UnityEngine.dll中的类，会报not found的错，需要new一下改类

参考:

https://blog.youkuaiyun.com/huutu/article/details/43986079

如果是UnityEngine.dll中的

需要在...]]></description><category></category></item><item><title><![CDATA[Planer Reflection]]></title><link>https://blog.youkuaiyun.com/wolf96/article/details/87920662</link><guid>https://blog.youkuaiyun.com/wolf96/article/details/87920662</guid><author>wolf96</author><pubDate>Mon, 25 Feb 2019 17:23:14 +0800</pubDate><description><![CDATA[源代码来自Unity

https://github.com/keijiro/AdamPlaneReflection

参考:

Forward Mapped Planar Mirror Reflections

http://ws.iat.sfu.ca/papers/TR98-026.pdf



cs代码:


using UnityEngine;
using UnityEngine.Rend...]]></description><category></category></item><item><title><![CDATA[关于Texture Cache简单总结]]></title><link>https://blog.youkuaiyun.com/wolf96/article/details/87884209</link><guid>https://blog.youkuaiyun.com/wolf96/article/details/87884209</guid><author>wolf96</author><pubDate>Fri, 22 Feb 2019 19:15:51 +0800</pubDate><description><![CDATA[Texture Cache是一个存储图片数据的只读cache

按照正常uv顺序读贴图tex cache有高命中率

Texture Cache在 shader processor附近，所以它有高吞吐率，并且低延迟



上图可见有许多 shader core

https://computergraphics.stackexchange.com/questions/355/how-does-te...]]></description><category></category></item><item><title><![CDATA[Tiled Based Deferred Shading与Forward+]]></title><link>https://blog.youkuaiyun.com/wolf96/article/details/85541991</link><guid>https://blog.youkuaiyun.com/wolf96/article/details/85541991</guid><author>wolf96</author><pubDate>Tue, 01 Jan 2019 15:41:59 +0800</pubDate><description><![CDATA[Tiled Based流程



 

1.将屏幕分成小块，每个小块为一个视锥体

 



 

2，(depth bounds)在每一个视锥体中，根据ZBuffer得到每个Tile的MinZ和MaxZ，用MinZ到MaxZ这片区域对光做交点测试(使用compute shader)



 

因此不需要光体积，点光源只需要position和range，spotlight也用球来做剔除bound...]]></description><category></category></item><item><title><![CDATA[Unity 2018 3.0地形优化与新增特性]]></title><link>https://blog.youkuaiyun.com/wolf96/article/details/85137539</link><guid>https://blog.youkuaiyun.com/wolf96/article/details/85137539</guid><author>wolf96</author><pubDate>Thu, 20 Dec 2018 20:21:38 +0800</pubDate><description><![CDATA[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...]]></description><category></category></item><item><title><![CDATA[问题总结-AlphaTest在forward管线生成DepthNormalsTexture的问题]]></title><link>https://blog.youkuaiyun.com/wolf96/article/details/85121363</link><guid>https://blog.youkuaiyun.com/wolf96/article/details/85121363</guid><author>wolf96</author><pubDate>Thu, 20 Dec 2018 14:30:37 +0800</pubDate><description><![CDATA[在Forward管线中，如果后期需要用到法线贴图，





需要将相机depthTextureMode 的Flag设置为DepthNormals

在相机面板可以确认



这样的话会把物体走一遍&quot;Hidden/Internal-DepthNormalsTexture&quot;来渲染出一张屏幕的Normal和Depth



&quot;Hidden/Internal-DepthNormalsTexture&quot;有很...]]></description><category></category></item><item><title><![CDATA[关于EarlyZ]]></title><link>https://blog.youkuaiyun.com/wolf96/article/details/85001484</link><guid>https://blog.youkuaiyun.com/wolf96/article/details/85001484</guid><author>wolf96</author><pubDate>Fri, 14 Dec 2018 12:35:02 +0800</pubDate><description><![CDATA[在前向渲染中，ZTest是在Fragement Shader之后进行的，也就是说，被遮挡的部分也要绘制FS，就产生了Over Draw，其实很费，Early Z Culling就解决了这个问题

Early fragment tests, as an optimization, exist to prevent unnecessary executions of the Fragment Shad...]]></description><category></category></item><item><title><![CDATA[延迟渲染与前向渲染]]></title><link>https://blog.youkuaiyun.com/wolf96/article/details/84959170</link><guid>https://blog.youkuaiyun.com/wolf96/article/details/84959170</guid><author>wolf96</author><pubDate>Tue, 11 Dec 2018 17:58:06 +0800</pubDate><description><![CDATA[The basic idea behind deferred shading is to perform all visibility testing before performing any lighting computations.

-RealTimeRendering 3rd

延迟着色的基本思想是在执行任何光照计算之前执行所有可见性测试。

General goal of the a...]]></description><category></category></item><item><title><![CDATA[问题总结-forward render path surface shader 不写入深度问题]]></title><link>https://blog.youkuaiyun.com/wolf96/article/details/84942439</link><guid>https://blog.youkuaiyun.com/wolf96/article/details/84942439</guid><author>wolf96</author><pubDate>Mon, 10 Dec 2018 16:45:20 +0800</pubDate><description><![CDATA[问题复现：forward render path surface shader删除fall back之后 不写入相机的深度贴图，导致用到深度的后期计算错误

解决办法，#pragma surface 加入 fullforwardshadows 或者 addshadow

原因：

https://docs.unity3d.com/Manual/SL-CameraDepthTexture.html
...]]></description><category></category></item><item><title><![CDATA[Unity 报错解决方法：Standard Shader Invalid Subscript uv2 error]]></title><link>https://blog.youkuaiyun.com/wolf96/article/details/83858406</link><guid>https://blog.youkuaiyun.com/wolf96/article/details/83858406</guid><author>wolf96</author><pubDate>Thu, 08 Nov 2018 11:25:50 +0800</pubDate><description><![CDATA[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 &quot;fix&quot; it, you can right click the sh...]]></description><category></category></item><item><title><![CDATA[基于物理的的相机(一):曝光]]></title><link>https://blog.youkuaiyun.com/wolf96/article/details/83660931</link><guid>https://blog.youkuaiyun.com/wolf96/article/details/83660931</guid><author>wolf96</author><pubDate>Fri, 02 Nov 2018 20:24:31 +0800</pubDate><description><![CDATA[Moving Frostbite to Physically Based Rendering中讲了Frostbite引擎的基于物理的整套管线流程，其中就包括物理相机

世界中的部分物体亮度是很高的，比如光源，相机的亮度范围也是有限，就需要将世界的亮度重新映射到相机的亮度范围，最终显示在照片上





 

需要做这件事的处理就是曝光，曝光代表有多少光线显示在图像上。

控制曝光的三个参数就是：快...]]></description><category></category></item><item><title><![CDATA[Lighting Box2源码分析系列]]></title><link>https://blog.youkuaiyun.com/wolf96/article/details/83349245</link><guid>https://blog.youkuaiyun.com/wolf96/article/details/83349245</guid><author>wolf96</author><pubDate>Wed, 24 Oct 2018 19:30:36 +0800</pubDate><description><![CDATA[Lighting Box2源码分析(一):整体功能
	Lighting Box2源码分析(二):Sun Shafts
	Lighting Box2源码分析(三):Depth Of Field景深
	Lighting Box2源码分析(四):Global Fog全局雾
]]></description><category></category></item><item><title><![CDATA[Stochastic Screen Space Reflections(三):实现与优化]]></title><link>https://blog.youkuaiyun.com/wolf96/article/details/83032610</link><guid>https://blog.youkuaiyun.com/wolf96/article/details/83032610</guid><author>wolf96</author><pubDate>Fri, 12 Oct 2018 20:53:53 +0800</pubDate><description><![CDATA[必须在延迟管线下渲染，且在不透明后，半透明前渲染

本文在Xerxes1138的基础上进行改进

实现

Xerxes1138的实现比Siggraph2015的步骤省略了不少内容



少了Tile分类和Hi-Z Trace

首先逐个pass来看他的实现过程

Recursive Pass


//uv-速度(回到上一帧uv) 
float2 prevUV = uv - velocity; 
/...]]></description><category></category></item><item><title><![CDATA[Stochastic Screen Space Reflections(二):SSR]]></title><link>https://blog.youkuaiyun.com/wolf96/article/details/83032458</link><guid>https://blog.youkuaiyun.com/wolf96/article/details/83032458</guid><author>wolf96</author><pubDate>Fri, 12 Oct 2018 20:43:22 +0800</pubDate><description><![CDATA[Stochastic SSR是在SSR基础上的改进，下面看一下SSR流程



整体流程：分块分类-&amp;gt;Raymarching-&amp;gt;卷积-&amp;gt;处理反射(得到结果)-&amp;gt;处理artifacts(解决噪声)-&amp;gt;异步处理(优化)



计算反射hit位置



将屏幕分成16×16块tile

此处的采样分布引用了刺客信条黑骑的方法





黑旗算了一张Mask作为反射计算精度的...]]></description><category></category></item><item><title><![CDATA[Stochastic Screen Space Reflections(一):理论]]></title><link>https://blog.youkuaiyun.com/wolf96/article/details/83021769</link><guid>https://blog.youkuaiyun.com/wolf96/article/details/83021769</guid><author>wolf96</author><pubDate>Fri, 12 Oct 2018 09:18:03 +0800</pubDate><description><![CDATA[翻译了一篇PPT，源代码可以参考github这也是Lighting Box中StochasticSSR中的实现方法









































































-----by wolf96 https://blog.youkuaiyun.com/wolf96...]]></description><category></category></item></channel></rss>