上周业余时间除了搞了搞KlayGE之外,还尝试用Unity山寨UE4的PBR,在对比的时候发现两个引擎各种细节还是差距挺大的。同样是材质的预览窗口,UE4自带了HDR、Tone Mapping和环境贴图:下图左边是UE4材质编辑器的预览,可以看到有比较清晰的天空反射;右边是山寨货在Unity里的效果(参数还得再调,边缘fresnel有点过强了,可能是后处理带来的)。

lightprobe_compare

Read More →
KlayGE移植到OSX的尝试

之前一直有准备在研三的业余时间深入学习一套引擎,备选如下:

  • cocos2d-x: 不小心直接把代码过完了_(:з」∠)_,确实比较简单,话说3.x版本比2.x的设计好多了,用了不少c++11的新特性真是赞;
  • unity: 能看到的也就是自带的脚本和内置shader,读完觉得也就这样,而且有些黑盒的东西真是坑的我一脸,最近还遇到了俩bug,这方面的一些知识体会准备过几天整理一下;
  • Unreal4: 读完了所有shader、大部分材质和部分渲染,但是整个引擎太庞大有点搞不动;
  • KlayGE: 纯代码量来说不多不少正好,而且更加侧重渲染,同时兼顾了OpenGL、DirectX,以及那个glloader的思路真不错。

最终选定龚大的KlayGE作为学习的样本,而且还可以参与进去边做边学。前段时间在业余花了不少功夫将KlayGE移植到OSX,记录一下学习到不少东西以及踩的坑。

Read More →

基于cocos2d-x 3.x版本修改的Assets Manager,加几行代码就能实现断线续传功能…so easy

 bool AssetsManager::downLoad()
 {
     // Create a file to save package.
     const string outFileName = _storagePath + TEMP_PACKAGE_FILE_NAME;
-    FILE *fp = fopen(outFileName.c_str(), "wb");
+    ssize_t outFileLength = 0;
+    FILE *fp = fopen(outFileName.c_str(), "rb");
+    if(fp)
+    {
+        fseek(fp, 0, SEEK_END);
+        outFileLength = ftell(fp);
+        fclose(fp);
+    }
+    
+    fp = fopen(outFileName.c_str(), "ab");
Read More →

花时间看了下毛发效果,苦于囊中羞涩没能买QuickFurfurFX等插件,最后找到了Fur Shader学习了一下。

furshader1

Read More →

前段时间体验了下Zen Garden之后,觉得两个效果很有意思:漫天飞舞的花瓣和可以点点点的水波,于是准备在Unity里面山寨一下。

先是尝试了用粒子实现下花瓣的效果,结果发现Unity暴露的接口很少,每一帧都GetParticles, SetParticles加上计算有点费;而且不太会使用现有的效果调出飘落的效果。最后实现了手指点上去挤开花瓣的效果后,就无奈放弃了。 ps. 粒子系统里貌似有两套速度,一个是Script里的对应startSpeed,另一个是Velocity over lifetime~感觉很奇怪…

然后试图山寨了下水波的效果,用一个脑洞大开的思路做了下,自我感觉还行_(:з」∠)_

fake water

Read More →

昨儿有人给我发了一个神秘网址,表示希望能获得资源拿去lu

blend4web1

我看了下这个网页,是用blend4web转的,这个可以将blender里的模型很方便的通过WebGL输出到网页上(新技能GET)…所以稍微花了点时间研究了下,如何导出blend4web网页中的模型资源~

Read More →

一般在渲染中,是使用cubemap来预计算环境反射,但是怎么玩好这个东西,我之前并没有考虑太多。最近和桌子讨论了挺多环境贴图的使用方式,在这里记录一下想法(偷懒起见,示意代码都是surface shader)。

Read More →

一下午随手写了一个环境捕捉器,山寨了一下unreal的scene capture cube。结果后来发现unity3d pro自带了一个Camera.RenderToCubemap函数真是哈哈哈哈啊……

更新: unity 5.x 貌似直接提供一个反射捕捉器

Read More →

出于学习的目的(认真脸),想拆解下别人家的作品的包,看下他们的美术资源是怎么布局、整理的,所以花了一晚上尝试了下,并记录如下。

Read More →

** This is depecrated since pomelo is only supporting libpomelo2 with various bindings. I’ve removed the github repo and you may find the archive here(Download).**

Read More →