随笔-6  评论-17  文章-0  trackbacks-0
  2009年12月20日
更新:
  • 增加了TrackballCameraController
  • 增加了Model Viewer和Particle Editor
  • UI dialog改进
  • 直接读取uiml,fxml和meshml
  • Cg载入后编译成GLSL使用
  • 支持Motion blur
  • 支持DX10 DDS的读写
  • 支持Stream output
  • 更快的Deferred Shading
  • 加入LZMA的编解码
posted @ 2009-12-20 14:44 龚敏敏 阅读(127) | 评论 (0)编辑
  2009年12月9日

SoftArt是一款光栅化的软件渲染器,设计目标是达到Direct3D 10/11的核心功能的实现。我们的设计目的主要包括以下几点

  • 一个高度可移植的光栅化图形管线的软件实现
  • 图形硬件工作原理的展现和教学
  • 为下一代Many Core或Larrabee类的多x86处理器架构的计算设备提供高性能的图形绘制能力
  • 提供在GPU一类的流处理器上难以实现,但在Many Core架构的设备上有着显著优势的Features
  • 比图形API更加易于使用的接口
  • 与复杂的渲染技术(如辐射度和光线追踪等)相结合的可伸缩的渲染体系,研究可以提供速度-质量相均衡的渲染架构


SoftArt的接口重点参照了DX10的设计。
以流水线划分Stage;每个Stage及其相关设施的接口,均采用了Object-Oriented的设计风格。
这种设计与D3D9和OGL的状态机风格的设计相比更易于使用,同时也降低了流水线前后级的耦合,对于优化或扩展都是有利的。

目前,SoftArt已经具有了完整的D3D9的流水线级,并有了基本的Demo。
在未来,SoftArt将在维持内核稳定的情况下,使用新的扩展,提供先进的图形技术支撑。
同时,我们还将尝试着将一些不易在GPU上实现的算法,以扩展的形式在SoftArt中实现出来,以期提供高于图形API的表现和特性。

SoftArt在近阶段的主要工作包括:

  • Rasterizer的优化
  • SoftArt Shader Language语言特性设计及编译器实现,为SoftArt提供文本化的Shader Language
  • MSAA,并提供可定制的Sampling Pattern
  • EWA-based Anistropic Filtering
  • 以扩展形式提供的Geometry Shader,Hull Shader和Tesselassion Shader
  • 并行优化
  • Larrabe的移植
  • 特性及性能的演示用例
  • 文档撰写


目前,SoftArt已经作为一个开源项目发布在http://code.google.com/p/softart上,最新的代码在svn中。
所有代码除特殊声明外,均为GPL 2协议,您可以在协议许可的范围内自由下载或使用。

如果发现了软件的缺陷,或者有任何好的意见和建议,您可以在项目管理页面上留言,或者联系作者
wuye9036@gmail.com
minmin.gong@gmail.com
我谨代表项目全体成员及用户,对您为本项目的发展做出的独一无二的贡献表示敬意和感谢!


作为一款基于GPL2协议的开源光栅化渲染器,SoftArt的目的当然不仅仅是软件产品那么简单。
我们也希望以SoftArt为基础,建设一个充满智慧与活力的社区。
这个社区里,每一个智慧的闪光,都能够给其他人以启迪;每一个智慧的闪光,都能够使SoftArt向更好的方向迈出一步。

随着SoftArt框架的完成,SoftArt复杂而有挑战性的特性扩充工作已经摆在面前。
无论你

  • 是喜欢Irregular Z Buffer一类不走寻常路的硬件架构技术,期望实现自己的硬件架构;
  • 还是痴迷于运用最新的图形学理论,制作让人眼花缭乱,叹为观止的Demo;
  • 还是希望将SoftArt与商业产品相结合,使其想用户所想,为用户所不能为;

我们都以100%的热忱欢迎您。

为了维持SoftArt核心框架的稳定性,保证代码质量,我们计划将全部的Project Members分为核心组开发者组两部分。

核心组
暂时由 空明流转(wuye9036@gmail.com) 和 Minmin.Gong(minmin.gong@gmail.com) 组成,主要负责架构设计,Shader Language语言标准的制定,SoftArt内核的开发,设计文档和接口约定的撰写,以及主分支的维护工作。

开发者组将按照工作内容大致分为三种:

  • 文档组:主要负责注释和文档的撰写工作等
  • 编译器组:负责编译器Host特性和Language Bridge的设计和扩充,编译器维护,性能调优等
  • 扩展组:撰写设备或辅助库扩展,如Geometry Shader的Host代码,数学库等


开发组成员将在各自的分支上完成开发工作,在您工作的分支上,您享有完全的写权限。
我们将按期进行所有分支修改的Review工作,并邀请您参与到Review中来,您既是分支的作者,也是其他分支的审阅者。
如果您的修改通过了Review并采纳到主分支中,我们希望能在您的协助下,将您对SoftArt的所思,所想,所为,原原本本的融入到SoftArt主分支中,令它如您所想般的成长。
同时,核心组将会视情况,组织线上或线下的技术交流活动,与大家一起交流技术心得、分享管理经验。当然,也会分享快乐的人生。

如果您希望加入我们这个团队当中,为我们的团队,为SoftArt提供您宝贵的支持,请您准备好您的以下资料

  • ID:常用的ID,最好包括真实姓名
  • Google Account:如果没有,可以申请一个。因为我们的SVN Repository是建立在Google Code上的)
  • 联系方式:IM(QQ,MSN,GTALK)和Email,有手机最好
  • 自我介绍:包括擅长的技术啦,项目经验啦,闲扯也可,呵呵
  • 希望参与的工作
  • 其他要求:唔。。。随便什么要求


发送至邮箱 wuye9036@gmail.com,或在此站点以站内信的方式发送与我。我将尽可能的与您联系并面议。


我们真诚欢迎您的参与,并对您的加盟,表示真心的感谢和由衷的期待!

posted @ 2009-12-09 13:43 龚敏敏 阅读(97) | 评论 (0)编辑
  2009年10月21日
NVIDIA前段时间曾大张旗鼓地宣传过他们发布的驱动已经支持DirectCompute。但实际试用的结果是,19x系列中只有190.38 Beta能直接支持,甚至190.38正式版都不能。其他更新的驱动,甚至在Release Notes里面都提到支持DirectCompute的都不行。今天我终于在DirectCompute SDK Release Notes Version 2.3里面找到了答案。在默认情况下,DirectCompute是不启用的。手工启用的方法是,在安装完驱动之后,在注册表里查找所有的"D3D_39482904"这个字符串,并删除。之后,190.89, 191.07和191.56这三款驱动都可以打开DirectCompute。
posted @ 2009-10-21 00:05 龚敏敏 阅读(317) | 评论 (3)编辑
  2009年5月12日

KlayGE 3.9.0将增加一系列的内容创建工具,包括Model Viewer,Particle Editor,UI Editor,Material Editor等。3DSMax导出插件支持完整的材质导出。

Model Viewer

引擎可以直接读写XML文档,使得fxml,uiml和MeshML不再需要编译的过程,简化了开发流程。

在渲染引擎方面,KlayGE 3.9.0将完全支持Stream output和Multi thread rendering。在未来的版本里,D3D9插件不再增加新功能,只是保持接口兼容。

KlayGE 3.9.0的发布时间预计于2009年8月。

posted @ 2009-05-12 01:58 龚敏敏 阅读(363) | 评论 (0)编辑
  2009年4月12日

KlayGE 3.8.0开始正式支持D3D10和D3D11,可以在不改任何上层代码的情况下切换D3D9,D3D10,D3D11和OpenGL四个渲染插件。于 是,这给了我们一个比较性能的机会。本文着重比较了D3D9和D3D10两个插件的性能。由于目前(2009年4月)市面上还没有支持D3D11的硬 件,D3D11插件只能通过D3D11 Level 10在支持D3D10的硬件上执行的,性能也就和D3D10几乎相同,遂不必多讨论。

表1列举了KlayGE现有例子在D3D9和D3D10两插件下得到的fps数据,并由此计算出D3D10的提升。

运行的平台:Pentium Core2 2.3GHz、4GB DDR2-800、Geforce 8800GT/185.66驱动,操作系统:Vista SP1 64bit。

表1. 两插件fps对比
例子 D3D9 (fps) D3D10 (fps) D3D10的提升
Ascii Arts 1784 1828 2.47%
Cartoon 961 979 1.87%
Deferred Shading 150 147 -2.00%
Depth of Field 152 152 0.00%
Depth Peeling 406 350 -13.79%
Distance Mapping 1517 1533 1.05%
Fractal 1425 1467 2.95%
GPU Particle System 57 62 8.77%
Instancing 477 498 4.40%
Model Viewer 1979 2271 14.75%
Parallax 3066 3219 4.99%
Particle System 705 734 4.11%
Procedural Texture 852 1138 33.57%
Refract 712 713 0.14%
Shadow Cubemap 1033 1061 2.71%
Text 863 910 5.45%
Vertex Displacement 3734 4012 7.45%
Video Texture 724 711 -1.80%

从表1可以看出,在绝大部分情况下,如果算法和效果相同,D3D10的性能要高于D3D9。可见,得益于API设计的巨大进步,D3D10的runtime/driver性能优于D3D9。

由此可以看出,在Vista下使用D3D10确实有利于性能的提高。在新硬件上,D3D1x更能发挥出硬件的能力。

在未来的KlayGE中,D3D9和D3D10插件都会被抛弃,只留下D3D11一个D3D插件,通过D3D11 Level 9或D3D11 Level 10来在不支持D3D11的硬件上渲染。对于不支持D3D11的Windows XP,可以使用OpenGL插件。

posted @ 2009-04-12 23:04 龚敏敏 阅读(300) | 评论 (1)编辑
  2008年9月16日
posted @ 2008-09-16 08:47 龚敏敏 阅读(1776) | 评论 (13)编辑