Skip to content

Archive

Archive for June, 2013
昨天微软发布了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()时渲染一桢 ...