经过团队成员半年来的努力,KlayGE 4.3在上周顺利发布。最近几个版本的习惯都是,在一个版本开发过程中就已经把一些ticket规划入下一个版本,并在发布之前提前进入了下一个版本的开发阶段。这里公开一下对KlayGE 4.4的一些规划。
时间线
这里列出几个重要的时间点,以供进度参考。
2013年11月30日,feature complete:所有功能都已经完成,没完成的推迟到下一个版本。
2013年12月15日,code complete:完成所有代码,除非特殊情况,否则不能在改变接口。
2013年12月31日,release:正式发布KlayGE 4.4。
必然出现
这些特性一定会出现在KlayGE 4.4中。其中有些需求来自于KlayMark。
High quality terrain:高质量的无限大地 ...
昨天微软发布了Windows 8.1 Preview,其中一个没怎么被发现的新功能是,DirectX 11.2!上一次DirectX出现.2的版本号还是在8.x时代吧。DirectX 11.2引入了以下新功能:
HLSL shader linking:Shader可以分成小块,分开编译,连接后成为完整的shader。给模块替换提供了方便。甚至,在11.2中还提供了一个叫Function linking graph的功能,可以像offline shader那样,构建一个graph,每个节点是一小段shader。最后才link了送给GPU。
Inbox HLSL compiler:Win8的时候,shader编译器是个独立的dll,在metro里面不允许调用,得离线编译。现在编译器又回来了,D3DCompile都可以在metro和desktop里使用。
GPU overlay support:直接支持在3D ...
[zh]
经过KlayGE团队半年来的努力,今天KlayGE 4.3正式发布了!在这个版本的开发和测试过程中,很多朋友也提供了宝贵意见和bug报告,为KlayGE的发展和完善做出了贡献,在此表示感谢。KlayGE 4.3的主要更新如下:
一个新的子项目KFL
脚本引擎(由王锐完成)
高质量细节效果
改进的Deferred Rendering
改进阴影生成(由李渊完成)
Deferred框架和GI分离
大量重构(论坛里的lcbiotech提出的建议)
大范围阴影支持
支持官方版Android NDK r8
全新的输入系统,支持触摸输入
非阻塞式资源载入和管理(论坛里的lcbiotech提出的建议)
增强的立体输出(由孙文全帮助测试)
支持嵌入其他GUI框架
支持多种OIT方 ...
前两年我曾经写过几篇关于AMD显卡上OpenGL驱动的陷阱,但原先我只在NV和AMD的卡上测试过KlayGE的例子,还从来没在Intel的集成显卡上测试过。前段时间曾经在Intel HD3000的笔记本上小测一下,结果惨不忍睹,所有的例子全部黑屏。最近在做KlayGE 4.3的最终测试和优化,就试图找一下失败的原因,以及修复的方法。这里把遇到的一些大坑总结一下,希望对遇到类似问题的朋友有所提示。
GLSL
所有例子都黑屏,最有可能的就是shader挂了。Debug下打开shader错误输出,果然,在NV和AMD驱动上都没事的GLSL遇到了编译失败。错误行是PS里的varying out vec4 v_gl_FragData。如果不用自定义的varying out,而用系统内建的gl_FragData就没事。所以判断应 ...
为了方便维护,各种编译器对C++11的支持比较已经挪到了这里。同时,还加入了ICC 14.0, GCC 4.8.1和Clang 3.3。
CPUWizard是我97年刚开始用C++的时候写的一个CPU检测和降温软件。完成功能之后就基本没有动过,除了2001年的时候加上一些对新CPU支持。有感于没找到一个CPU-Z的开源替代,同时CPUID SDK又得卖几千欧元的天价,我决定复活CPUWizard,并在近期作为GPL发布。
当然,十多年过去了,当时用的还是VC4.2或者VC5,内含大量汇编。现在虽然能直接编译,但CPU降温的部分已经失效(in/out/hlt这些指令在NT内核上必须ring 0才能执行),而且已经失去意义。所以复活后的版本就主打CPU检测的功能。同时还会做很多现代化的改造:
分为SDK和UI两层
cmake的项目文件,跨平台的代码,去掉汇编
支持现代的CPU
检测结果可以云存储
IE 10 for Windows 7在发布的时候,包含了一个补丁KB 2670838,给Win7带来了DirectX 11.1和DXGI 1.2的部分能力。这个补丁也可以在不需要IE10的时候单独安装。详细的更新内容在这里。比较有意思的是,WARP被升级到支持feature level 11.1了。
很遗憾的是,如果装了KB 2670838,PIX for Windows和D3D11_CREATE_DEVICE_DEBUG会受影响,因为DirectX SDK (June 2010)的debug runtime和KB 2670838不兼容。解决方法是安装Windows 8.0 SDK standalone,或者升级到使用Win8 SDK的VS 2012 Update 2。
继前不久放出了一批3D模型之后,我进一步整理了几个模型。有兴趣的话仍然可以到这里下载。
长期以来,KlayGE一直是单独执行的,窗口上的UI也都是自己画。很多人都提到这么做给编辑器等应用造成了困难。所以如果适度修改KlayGE的窗口系统,使得KlayGE可以嵌入其他的GUI框架,比如MFC、QT、WPF等,有些时候会方便得多。
第一个尝试做这件事情,并且取得成功的在这里。他通过修改Window类,支持从外部传入HWND,让KlayGE复用外部建立的窗口。这么做能顺利地把KlayGE嵌入MFC等框架中。同时,作者也指出了单独这么改仍不能达到完美的程度,“并且由于KlayGE没有开放单独绘制一桢这样的函数,所以直接关闭程序会有内存泄漏和异常。以后再研究研究,试着把相关功能提取一下,做成和Ogre一样的,那样就可以在OnIdle()和OnPaint()时渲染一桢 ...
可以自由使用的3D模型很少,高质量的就更少了。我打算把长期以来收集到的模型逐步共享出来,希望大家能相互交流。
有兴趣的朋友可以到这里下载。未来还会有越来越多的模型放出来。