SIGGRAPH 2013今天已经结束,还挺迅速,有的course ppt已经放出来了。
Khronos 2013 SIGGRAPH Camera BOF
Physically Based Shading in Theory and Practice
Advances in Real-Time Rendering in 3D Graphics and Games的网页已经上线,但ppt还没
在一年一度的SIGGRAPH大会上,Khronos group按照惯例,发布了OpenGL 4.4。新的OpenGL 4.4标准包含了一些新功能,同时以核心和扩展的形式出现:
ARB_buffer_storage
ARB_clear_texture
ARB_enhanced_layouts
ARB_multi_bind
ARB_query_buffer_object
ARB_texture_mirror_clamp_to_edge
ARB_texture_stencil8
ARB_vertex_type_10f_11f_11f_rev
另外,还有一些新扩展也宣布了:
ARB_compute_variable_group_size
ARB_indirect_parameters
ARB_shader_draw_parameters
ARB_shader_group_vote
ARB_sparse_texture
为什么还是没有direct state access!为什么还是没有direct state access!为什么还是没有dire ...
在2010年,曾经有个d3d1x for linux的项目短暂地轰动过。它通过Gallium的state tracker,原生地支持了d3d10和11的API,能运行一些简单的demo。遗憾的是,由于Wine的人对d3d1x不是很感兴趣(d3d9还支持不过来呢),在2013年3月份,d3d1x for linux因为无法使用和无人维护,被从mesa的repository里删除了。
(题外话:尚在开发中的HLSL bytecode to GLSL编译器也用了d3d1x for linux的bytecode解析代码,里面bug不少,而且都是下标写错之类不执行到肉眼很难看出来的bug。)
与此同时,d3d9 for linux诞生了。和之前一样,它也是个state tracker,也是原生支持。更好的是,它已经可以执行d3d9的游戏,并且性能高于Wine的转换成OpenGL的方 ...
KlayGE 4.3.0的输入插件新增了对触摸输入的支持。但这部分代码在WinXP上执行的时候,说user32.dll缺少GetTouchInputInfo的入口。这里出个补丁,通过动态检测和载入可以有效的解决这个问题。同时感谢黄河水报告了这个bug。分别解压后覆盖掉源文件即可。
KlayGE源代码的补丁:KlayGE_4_3_0_patch.7z
Sample的补丁:KlayGE_Samples_4_3_0_patch.z7
KlayGE 4.4的开发刚刚开始。在目前的开发版本里,编译脚本有了较大的改进,速度提升、内存消耗降低。这里就先总结一下一些经验。
MSBuild
KlayGE的编译脚本原先是通过调用devenv,也就是Visual Studio的IDE来编译工程的。用户的普遍反映是编译信息不断滚动,很难看清是否有错误。前不久在编译Salvia的时候,看到空明大大的脚本输出通过不同颜色区分warning和error。问了一下才知道他调用的是MSBuild,本身就带颜色高亮。
MSBuild从VS2008开始就集成到Visual Studio了,在VS2010的时候已经全面接管了C++工程的编译。所以,如果调用devenv来编译一个工程,那么它的流程是:
启动VS IDE
启动MSBuild,调用cl和linker等
关闭VS IDE
...
经过团队成员半年来的努力,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。