最近没有做到什么实质上的东西,在看d3d10的接口,准备对自己的简单引擎重新构架渲染库。相比起来,d10对资源的组织比d9清晰了不少,IA,VS,GS,SO,RS,PS,OM各种资源现在都围绕流水线各步骤组织和命名,并且模块化,以前用d9中我们需要花不少力气在自己的引擎中组织这些东西,相信以后的引擎对于渲染资源的组织会省下一些工夫。另外资源的重新组织也带来了一些好处,比如Texture和Sampler分开,它们之间不必再有固定联系,只是Sampler的个数仍然有所限制,不过对于单个shader代码来说,除非做bt的事,16个sampler基本上不会不足了。
    另外对于gs,可能目前第一代的dx10卡对于这部分支持还比较弱,gs的效率目前还比较差,恐怕这个以后还需要改进...呵呵,虽然特性很有吸引力。
    Shader方面,在d3d9中,d3dxeffect系统还属于辅助库的东西,其实就是hlsl的一套扩展脚本,基本上接口也比较混乱,基于常量映射和效率的问题,很多引擎仍然倾向使用基本接口,自己构造一套脚本。不过现在effect系统已经集成到核心库,而且也改进了对shader资源的访问效率,接口现在看起来比较合理一些,EffectsPool和EffectPass等的增加都是在朝方便引擎构架方面做改进。看来以后直接使用d3deffect来做shader脚本也是不错的选择(当然,对于ms的做法,既然asmshader可以考虑取消,只要能跟显卡商达成一致,那么原本的hlsl也未尝不可。。。呵呵)。