婆罗门
精华
|
战斗力 鹅
|
回帖 0
注册时间 2005-8-6
|
为何要把超分辨率做成通用图形硬件API的feature呢?当年DX7和之前时候,硬件可编程性薄弱,所以像什么光照公式,骨骼蒙皮计算,都是固化在硬件电路里的,此时把这些东西做成API的feature顺理成章,到了DX8时期有了一定的可编程性,这些就都不再成为固化的feature而是留给开发人员自己实现了。现在为何要再走回头路?
超分辨率这种,需要不止一个的Custom Input(指并非常规渲染所必备的元素,比如Color buffer),而且各家还可能有不同的Input需求,对Input也有诸如texture的neg-lod-bias等非常规要求。既不符合‘标准化’也不符合‘高内聚低耦合’的原则。
参考媒体处理,比如directShow或mediafoundation,它们的做法是把一个流程复杂而分支众多的系统给分解成一个一个的模块(filter或transform),每个模块的原则是,输入pin和输出pin的数量要尽可能的少(尽量1进1出)且定义明确,然后把系统的复杂度给转移到使用模块来构建graph上。而和硬件相关的部分是硬件会实现一部分功能的filter或transform。但就如前面所说,超分辨率这种东西,很难成为定义良好的模块接口,因为各家需要的Input数量可能有差别而对Input的内容也可能各有不同需求。
何况从软件角度来讲,dshow或mf,本身就更倾向于软件framework而非硬件抽象API。所以超分辨率这东西,以第三方SDK或framework存在,从根子上讲就是更合理的。 |
|