KFL代码阅读笔记

KlayGE的基础库,就挑看到觉得有意思的地方整理下,主要是有不少c++0x的花样很有趣。

Read More →

周末的时候分析了一下炉石的特效

heartstone

Read More →

之前有人给我发了一个NormalMap-Online,在线从任意图片生成法线纹理。这个功能还是挺常见的,专业工具如CrazyBump,或者Unity之类的引擎都自带。不过既然有Javascript版本,就可以看看到底是怎么实现的,然后用C++实现了下。

NormalMapGenerate

Read More →

最近忙于性能优化,深切体会到二八法则真是指导高(tou)效(lan)工作的有力武器。这个礼拜花了几天解决了一个实际问题:UGUI的ScrollRect加载太多物体的时候,第一次弹出界面会非常卡顿,而且不在界面里的内容依然会参与绘制(毫无意义的浪费…)。

demo1

Read More →

Lightmap(光照贴图)是Unity里很常用的一个功能,毕竟移动设备上实时光照不靠谱,要出效果还是得烘焙。但是在使用中发现了几坑的地方,通过自己写了个两个脚本就轻松搞定,这里分享下。

坑1: 异步加载场景

这个其实还是挺常见的坑:在编辑器里烘焙+播放场景都没问题,但是当从别的场景利用异步加载方式切换之后,就发现场景里的效果一团糟。下图是我使用Application.LoadLevelAdditiveAsync切换后的效果:

unity_lightmap_bug1

Read More →
Cryptographic failure while signing assembly

最近新装了Windows 10 preview,蛋疼的发现装不上Visual Studio 2013,只能先用Visual Studio 2012凑合…昨儿在编译KlayGE develop分支的时候发现挂在wpftoolkit上了,一开始还试图回滚+二分定位,但是发现毫无意义-。-

2>CSC : error CS1548: Cryptographic failure while signing assembly ‘d:\SDK\KlayGE\External\wpftoolkit\Main\Source\ExtendedWPFToolkitSolution\Src\Xceed.Wpf.Toolkit\obj\x64\Debug\Xceed.Wpf.Toolkit.dll’ – ‘Error signing assembly – Access is denied. ‘

Read More →

最近发现了一个非常好用的工具Adreno Profiler,可以用来分析安卓手机上OpenGL ES绘制过程。这个东西牛的地方在于可以抓取任何可以运行的App,而且使用起来非常方便、没有额外限制。这个工具本质上是一个OpenGL ES Draw Call Replay;如果你用过PIX或者GPA,就会感到很非常熟悉了。下图是贵易的魔天记,挂起来毫无压力233

adreno_mtj

Read More →
glloader代码阅读笔记

(准备慢慢把之前移植KlayGE过程中的笔记整理出来,估计先梳理完几个子项目,然后按照模块和例子写个系列吧…主要记录思路和一些学习体会~)

glloader是一个跨平台的OpenGL扩展库,可以拿来载入OpenGL 1.0-4.2,OpenGL ES 1.0-2.0,同时也支持WGL、GLX、EGL和其他GL/GLES扩展。目前windows/linux/darwin及iOS/Android都可以使用,拿来做跨平台的项目非常方便,封装掉了不同平台的GL细节;另一个牛逼的地方在于可以通过维护xml,来保持这个项目与最新的spec一致。下面主要分两块来看:一个是基于xml描述的registry,另一个则是跨平台的载入机制。

Read More →

As I posted in SSSSS in Unity before, I cannot find a way to take advantage of stencil buffer in OnRenderImage. This makes the post effect full screen all the time. Other guys have come up with the same question in the formu or AnswerHub. After several days hard work, I finally find a way to use stencil.

Here is an example for fast Bloom:

W/O Stencil:

unity_pp_stencil_off

Read More →
Unity中Temporal AA

这个东西是trace在群里提到的,然后我看了一些相关资源Filtering Approaches for Real-Time Anti-Aliasing(很多sig course好棒好棒)、High Quality Temporal SupersamplingCryENGINE3 Graphics Gems

在这么多资料(其实是现成代码…)的帮助下,我主要参考CryEngine里的SMAA 1TX山寨了下,UE4的那个有点过于麻烦了。

Read More →