<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Knight_snow的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Knight_snow</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Knight_snow]]></copyright><item><title><![CDATA[优化的前提是质量尽量无损]]></title><link>https://blog.youkuaiyun.com/Knight_snow/article/details/18505807</link><guid>https://blog.youkuaiyun.com/Knight_snow/article/details/18505807</guid><author>Knight_snow</author><pubDate>Sun, 09 Mar 2014 15:31:27 +0800</pubDate><description><![CDATA[为了提升游戏性能，各种优化手段纷纷拍马杀到，但是优化真的是没有一个
        FFT作为Ocean Animation几乎是一个标配了，采用GPU FFT更是优势明显，为了优化显存，采用了RGBA16F的Buffer，这带来的好处是显存省了一把，速度也提升了，因为Sample的带宽降低了，然后]]></description><category></category></item><item><title><![CDATA[浮点数精度误差带来的一个BUG]]></title><link>https://blog.youkuaiyun.com/Knight_snow/article/details/18303867</link><guid>https://blog.youkuaiyun.com/Knight_snow/article/details/18303867</guid><author>Knight_snow</author><pubDate>Sun, 09 Mar 2014 15:12:07 +0800</pubDate><description><![CDATA[浮点数我想没有程序员不了解的，大多情况下浮点数是可以满足精度的，而且32位的浮点数]]></description><category></category></item><item><title><![CDATA[魔兽世界的Screen Space Local Reflection]]></title><link>https://blog.youkuaiyun.com/Knight_snow/article/details/18731189</link><guid>https://blog.youkuaiyun.com/Knight_snow/article/details/18731189</guid><author>Knight_snow</author><pubDate>Fri, 24 Jan 2014 12:17:50 +0800</pubDate><description><![CDATA[魔兽世界虽然是一个老游戏了，但是它在图形渲染上还在不断地更新，虽然跟现在的很多引擎相比有些方面不是同一时代的，但是不得不说魔兽世界有些地方做的很到位，他的反射就用了一个很讨巧的方法就是前面一直提到的Screen Space Local Reflection(SSLR)，这方面魔兽世界应该说是做的最好的


        对于中低端显卡来说还是一个很费的操作，我们尝试了Screen Spac]]></description><category></category></item><item><title><![CDATA[Impostor的副产品]]></title><link>https://blog.youkuaiyun.com/Knight_snow/article/details/18730649</link><guid>https://blog.youkuaiyun.com/Knight_snow/article/details/18730649</guid><author>Knight_snow</author><pubDate>Fri, 24 Jan 2014 11:24:04 +0800</pubDate><description><![CDATA[最近在用Impostor优化主城性能，基本取得了阶段性的结果，对性能提升还是很明显的，GPU/CPU都很有优势，测试的时候有了一点意外的惊喜，经常玩游戏的人都知道远处的Mesh会闪的人眼睛都快要瞎掉了，尤其是那些建筑物的台阶，简直是烦的要死，到魔兽的主城转一转领一下暴风城的台阶就知道了，真心不爽，开了2xmsaa效果也不行，只有开了8xmsaa才会舒心一笑，但是这性能代价就大了去了。之所以闪的这么]]></description><category></category></item><item><title><![CDATA[The Compact YCoCg Frame Buffer]]></title><link>https://blog.youkuaiyun.com/Knight_snow/article/details/18729697</link><guid>https://blog.youkuaiyun.com/Knight_snow/article/details/18729697</guid><author>Knight_snow</author><pubDate>Fri, 24 Jan 2014 10:52:51 +0800</pubDate><description><![CDATA[RealTimeRendering能推荐必为精品！

http://www.realtimerendering.com/blog/second-jcgt-paper-is-up-for-download/
        YCoCg在图像压缩里广泛使用，在游戏里第一次听到这个词是在寒霜引擎的Five Rendering Idea里用来做后处理优化，当时是第一次听到这个方法觉得很牛逼:)第二次]]></description><category></category></item><item><title><![CDATA[提升树叶渲染性能]]></title><link>https://blog.youkuaiyun.com/Knight_snow/article/details/18304465</link><guid>https://blog.youkuaiyun.com/Knight_snow/article/details/18304465</guid><author>Knight_snow</author><pubDate>Fri, 24 Jan 2014 10:39:08 +0800</pubDate><description><![CDATA[树的渲染的大部分消耗都是花在树叶上，为了是树叶看起来很茂密，美术一般会加很多叶子的三角形，但是三角形太多的话会让vs压力很大，因为树叶的动画都是在vsli]]></description><category></category></item><item><title><![CDATA[MotoGP: road reflections]]></title><link>https://blog.youkuaiyun.com/Knight_snow/article/details/18597337</link><guid>https://blog.youkuaiyun.com/Knight_snow/article/details/18597337</guid><author>Knight_snow</author><pubDate>Tue, 21 Jan 2014 09:57:32 +0800</pubDate><description><![CDATA[MotorGP路面反射采用的也是屏幕空间的反射，对原始的屏幕空间反射做了一些修改，对于摩托车还是按照真实物体的低精度模型进行渲染，树和远处的物体都是直接flip了一下，简单粗暴，效果也很不错。过几天下个MotorGP研究一下，应该和wow的方法很接近。

My final task on the quest for wet weather was figuring out what to do]]></description><category></category></item><item><title><![CDATA[Real-Time Local Reflections]]></title><link>https://blog.youkuaiyun.com/Knight_snow/article/details/18595507</link><guid>https://blog.youkuaiyun.com/Knight_snow/article/details/18595507</guid><author>Knight_snow</author><pubDate>Tue, 21 Jan 2014 09:14:34 +0800</pubDate><description><![CDATA[Local Reflection是一个非常有创意的优化方法，用很小的代价获得了实时反射，这里的方法应该是和Crysis类似的，采了nSample次Depth来得到相交的点，其实不需要这么麻烦，后面我会专门写一个blog来详细描述wow是怎么用更优雅的方式达到更好的效果。
I've been experimenting a little bit with Real-Time Local Refle]]></description><category></category></item><item><title><![CDATA[Zoom An Image With Different Interpolation Types]]></title><link>https://blog.youkuaiyun.com/Knight_snow/article/details/18308997</link><guid>https://blog.youkuaiyun.com/Knight_snow/article/details/18308997</guid><author>Knight_snow</author><pubDate>Sun, 19 Jan 2014 17:03:13 +0800</pubDate><description><![CDATA[http://www.codeproject.com/Articles/236394/Bi-Cubic-and-Bi-Linear-Interpolation-with-GLSL]]></description><category></category></item><item><title><![CDATA[Screen Door Effect]]></title><link>https://blog.youkuaiyun.com/Knight_snow/article/details/18505131</link><guid>https://blog.youkuaiyun.com/Knight_snow/article/details/18505131</guid><author>Knight_snow</author><pubDate>Sun, 19 Jan 2014 16:46:39 +0800</pubDate><description><![CDATA[在游戏开发中难免会遇到物体逐渐消失或者出现的相关需求，在只有一个主光源的时候用translucent with z就可以简单解决，但是现在的引擎不支持点光源都不好意思跟人讲，如果要考虑点光源translucent with z还真是比较苍白，无能为力了只能。对于草这样overdraw很严重的情况用translucent with z无疑是对原来的性能消耗雪上加霜。对于物体切换lod时poo会非常明]]></description><category></category></item><item><title><![CDATA[Triangle waves]]></title><link>https://blog.youkuaiyun.com/Knight_snow/article/details/18319511</link><guid>https://blog.youkuaiyun.com/Knight_snow/article/details/18319511</guid><author>Knight_snow</author><pubDate>Wed, 15 Jan 2014 19:42:49 +0800</pubDate><description><![CDATA[一般的做周期曲线都采用sin来做，但是sin这个操作是个很费的操作，有时候需要一个近似的类似于sin的周期曲线，GPU Gems3第16章详细讲解了Crysis树木渲染的关键技术，其中就提到这个问题，这个方法被称之为Triangle Wave。Crysis将shader共享出来用的时候可以直接替换掉sin函数，赶紧记下来免得日后忘记了，Speedtree的shader里也是用这个来做树的动画的，可]]></description><category></category></item><item><title><![CDATA[空城]]></title><link>https://blog.youkuaiyun.com/Knight_snow/article/details/18265619</link><guid>https://blog.youkuaiyun.com/Knight_snow/article/details/18265619</guid><author>Knight_snow</author><pubDate>Tue, 14 Jan 2014 16:40:55 +0800</pubDate><description><![CDATA[MMO游戏的主城是各种瓶颈的集散地，模型比别的区域要多出来很多，NPC也来凑热闹，有人的地方才有江湖，主城就是最大的江湖自然也就是玩家如春笋般孜孜不倦的一拨又一波，这对显卡带来非常致命的冲击，各种内存，显存吃紧，IO爆满，顿卡非常严重，如果是笔记本那真是惨不忍睹啊，换个固态硬盘笔记本马上回来个第二春，以前玩wow联想小Y显卡也不错，玩魔兽足够了，但是到了主城一转视角就卡几秒，后来果断加了个ssd，]]></description><category></category></item><item><title><![CDATA[Particle Trimming]]></title><link>https://blog.youkuaiyun.com/Knight_snow/article/details/18216873</link><guid>https://blog.youkuaiyun.com/Knight_snow/article/details/18216873</guid><author>Knight_snow</author><pubDate>Mon, 13 Jan 2014 11:05:29 +0800</pubDate><description><![CDATA[Particle做为游戏表现的一大手段，对整个画面的提升有很大的作用，Particle越多让玩家觉得场景越丰富，但是随之而来的是对性能的严重吞噬，如果提升Particle是一个大的Title，这里介绍一下在不损失质量的前提下如果大幅降低像素填充的方法。
        大多的Particle都是用AlphaBlend的方法进行绘制的，这意味着Particle本身面片的Z不会像不透明物体那样会有d]]></description><category></category></item><item><title><![CDATA[Cache The RenderList]]></title><link>https://blog.youkuaiyun.com/Knight_snow/article/details/18215475</link><guid>https://blog.youkuaiyun.com/Knight_snow/article/details/18215475</guid><author>Knight_snow</author><pubDate>Mon, 13 Jan 2014 10:28:01 +0800</pubDate><description><![CDATA[大部分游戏渲染的时候都会构建一个管理Render物体的List，所以简称RenderList，所有要绘制的物体的RT，Shader,Texture,Shader Constant都是保存在这个数据结构里的，构建好RenderList之后才会把这些需求发给GPU执行。
        在场景物件很多的时候这个RenderList的构件时间极其夸张，有时候会占到Render线程一半的时间，更让人觉得]]></description><category></category></item><item><title><![CDATA[In-Game HD Video Capture using Real-Time YUYV-DXT Compression]]></title><link>https://blog.youkuaiyun.com/Knight_snow/article/details/18036207</link><guid>https://blog.youkuaiyun.com/Knight_snow/article/details/18036207</guid><author>Knight_snow</author><pubDate>Thu, 09 Jan 2014 14:23:49 +0800</pubDate><description><![CDATA[玩游戏的时候想截取视频一般都是通过第三方工具来完成的，Fraps很多时候会被用来截取实时的游戏视频，但是用了Fraps之后会发现帧率明显下降了很多，很影响游戏的体验。如果有一种可以实时截取游戏视频而不降低帧率的方法该多好啊，无意中发现Outerra的Blog有一篇Blog专门介绍了他们如何达到这个目的的，他们当然这个方法是需要内嵌到游戏本身的，不是像Fraps那么自由可以随便在那个游戏上，理论上应]]></description><category></category></item><item><title><![CDATA[Box Projected Cubemap Environment Mapping]]></title><link>https://blog.youkuaiyun.com/Knight_snow/article/details/18033929</link><guid>https://blog.youkuaiyun.com/Knight_snow/article/details/18033929</guid><author>Knight_snow</author><pubDate>Thu, 09 Jan 2014 10:25:55 +0800</pubDate><description><![CDATA[立方体映射于1986年首次在斯内德格林在他的论文“环境映射和预测世界其他应用程序”提出，[ 2 ]吉姆·博林和马丁·纽厄尔十年之后首次提出环境映射了。然而由于硬件在同时访问6纹理图像的的能力限制，使其一直没有得以在实际中使用。随着Nvidia 的GeForce
 256的发布这个问题彻底解决。。Nvidia的立方体映射硬件“是GeForce 256一个突破性的功能。它将允许开发人员创建精确的，实]]></description><category></category></item><item><title><![CDATA[Fast Precomputed Ambient Occlusion for Proximity Shadows]]></title><link>https://blog.youkuaiyun.com/Knight_snow/article/details/17911403</link><guid>https://blog.youkuaiyun.com/Knight_snow/article/details/17911403</guid><author>Knight_snow</author><pubDate>Wed, 08 Jan 2014 09:38:33 +0800</pubDate><description><![CDATA[提起AO，大家一定会想到SSAO，SSAO不需要美术进行过多的参与，只需要调一下参数就万事大吉了，但是SSAO也有一些缺陷，噪声比较明显，有时候给人的感觉不是ao而是halo让人感觉画面变脏了，至于性能如果用一个quarter精度的搞一下，8600GT下720分辨率也是需要接近2ms的开销，这还是在没有Bilateral Filter下的开销，如果加了Bilateral
 Filter就会开销更]]></description><category></category></item><item><title><![CDATA[Pre-Compositing Textures for Terrain Rendering]]></title><link>https://blog.youkuaiyun.com/Knight_snow/article/details/17965513</link><guid>https://blog.youkuaiyun.com/Knight_snow/article/details/17965513</guid><author>Knight_snow</author><pubDate>Tue, 07 Jan 2014 19:10:23 +0800</pubDate><description><![CDATA[地形渲染作为室外游戏必备的功能，已经有很多成熟的LOD和Shading的算法，LOD的种类非常多，但基本都是那几种LOD的变种，技术也很成熟，一般来说好的游戏的LOD技术一定不会差。换句话说LOD不会是游戏渲染的瓶颈，地形很多时候是占屏幕像素最多的集合体，大部分地形都是通过分块也就是sector来渲染的，离camera最近的几个sector往往是像素贡献大户，很多时候离camera最近的4个sec]]></description><category></category></item><item><title><![CDATA[Billboard矩阵]]></title><link>https://blog.youkuaiyun.com/Knight_snow/article/details/17792035</link><guid>https://blog.youkuaiyun.com/Knight_snow/article/details/17792035</guid><author>Knight_snow</author><pubDate>Mon, 06 Jan 2014 12:23:49 +0800</pubDate><description><![CDATA[这几天在研究Impostor，按照传统的方法可以做出来不错的效果，采用GamaStura的方法很快就可以做出来不错的效果，但是因为要扩展一下，在原先的质量上提高，而且用Instance来画，这样只需要一个quad mesh，别的信息都放在Instance Buffer上。因此需要有个Billboard矩阵，也就是说需要将一个quad mesh转换到世界坐标系。
    关于Billboard矩阵]]></description><category></category></item><item><title><![CDATA[神器oDepth]]></title><link>https://blog.youkuaiyun.com/Knight_snow/article/details/17911587</link><guid>https://blog.youkuaiyun.com/Knight_snow/article/details/17911587</guid><author>Knight_snow</author><pubDate>Mon, 06 Jan 2014 10:52:25 +0800</pubDate><description><![CDATA[关于Depth Buffer是做什么的，搞过渲染的人都会有100%的自信来回答是用来做什么的，Depth Buffer里保存的是什么东西大家应该也比较清楚，而且怎么从投影空间转换到世界坐标系稍微花点功夫就可以保证正确。
如果需要为某一个像素写入指定的深度值该怎么办？Depth Buffer的值是GPU完成光栅化之后写进去的，似乎不好人工干预。嗯，的确。但是DX还是留了接口的，只是这个接口平时真的]]></description><category></category></item></channel></rss>