最近,钱康来的实验把KlayGE移植到了OSX平台上。在上一次更新中,绝大部分问题已经解决。现在,我高兴地宣布,所有的例子都已经可以在OSX上顺利执行,并都能得到正确的结果。至此,OSX版本已经完成。
另外,iOS版本也已经有了很好的进展,一些基本的例子已经可以执行。下一阶段,我们将进一步改进OSX和iOS的框架,按照SDL2的方法,调用Apple平台底层的函数,实现一个自己的消息循环,而不是把一切都交给Apple的程序框架。这样一来,程序主体可以接近其他平台的结构。性能优化等也会比较容易。
在KlayGE走上OSX的实验中,我提到了目前OSX的版本还有两个主要问题,一是没法打开post processing,而是shader编译用的是Cg,以至于不能支持GL3+的功能。钱康来这几天又做了一些实验,在很大程度上解决了这些问题。
Post processing
原先一打开HDR、FXAA、Gamma校正等流水线末端的post processing之后,只能看到黑屏或一片混乱。在xcode的调试中看到的是,back buffer中有正确的结果,但swap到front buffer就只有错误的画面。这就排出了是depth或stencil没用清空造成的错误,只能是swap的地方有什么蹊跷。
经过一番尝试和查阅资料,发现了OSX和其他平台在swap上有所不同。Windows上的SwapBuffers,以及Linux上的glXSwapBuffers,都可以 ...
长期以来,把KlayGE移植到iOS的呼声很高。从别的平台直接移植到iOS,跨度有点大。所以我的计划里把MacOSX当作一个中间平台,先移植到OSX,把OSX当作开发平台来开发iOS版本。现在,KlayGE的OSX版本有些进展,在这里总结一下。
OSX几乎完全由新加入的组员钱康来完成的,在此表示感谢。这也是第一次不是由我亲自完成的平台移植。除了需要对付平台API的差异之外,还需要把一部分窗口相关代码用ObjC完成,在通过跨语言调用接入引擎的其他部分。目前有些初步的结果,在不加上post processing的情况下,一些sample可以顺利执行了。post processing一加就黑屏,具体原因正在调查中。
下面是一些结果。
除了post processing,还有 ...