当前位置: 首页 > 专利查询>微软公司专利>正文

定制的图像滤波器制造技术

技术编号:11233927 阅读:133 留言:0更新日期:2015-04-01 07:57
交互式开发环境使用户能够通过用户界面创建定制的图像滤波器,该定制的图像滤波器向开发者提供创建表示生成定制的视觉效果的数学运算和值的有向无环图的能力。在开发定制的图像滤波器期间,视觉着色器设计器引擎可以按规定次序执行与每一个节点相关联的运算和值并且在每一个节点的渲染查看区域中显示渲染的结果。以此方式,开发者能够快速可视化由图像滤波器实时产生的视觉效果。

【技术实现步骤摘要】
【国外来华专利技术】【专利摘要】交互式开发环境使用户能够通过用户界面创建定制的图像滤波器,该定制的图像滤波器向开发者提供创建表示生成定制的视觉效果的数学运算和值的有向无环图的能力。在开发定制的图像滤波器期间,视觉着色器设计器引擎可以按规定次序执行与每一个节点相关联的运算和值并且在每一个节点的渲染查看区域中显示渲染的结果。以此方式,开发者能够快速可视化由图像滤波器实时产生的视觉效果。【专利说明】定制的图像滤波窃 背景 计算机图形方面的进步产生了复杂的软件,以使得计算机生成的图像尽可能地看 上去逼真。具体地,在图形系统中通常使用着色器以生成用户设计的图形效果。着色器是 定义要在几何对象上执行以产生期望的图形效果的一组操作的程序或代码。像素着色器是 用于为几何对象的每一表面上的每一像素产生颜色的一种类型的着色器。像素着色器可用 于在图像中渲染诸如雾、漫射、动态模糊、反射、纹理化或对象上的深度等效果。着色器执行复杂操作,且可包含在图形处理单元(GPU)上并行运行可能数百个执 行线程的数千条指令。因此,着色器的开发可能是令人畏缩的任务。具体地,测试着色器是 成问题的,因为开发者可能不能访问GPU的各个硬件组件的内部寄存器和数据,而在着色 器代码中分析错误可能需要这些寄存器和数据。诸如在着色器代码中嵌入打印语句的经典 调试技术在着色器涉及大量数据并在多个并行线程中执行时可能是不实际的。因此,着色 器的复杂性为开发这样的程序带来了障碍。图像滤波器利用像素着色器来在图像上生成特殊视觉效果。例如,生成模糊的图 像滤波器对一组像素应用高斯变换以减少图像细节,从而产生漫射图像。棕黑色图像滤波 器将一组像素变换成亮或暗棕色调。波纹图像滤波器用水平或垂直波或波纹来替换一组像 素。 图像滤波器可以是以规定方式操作的预定义函数,这在开发者需要快速开发图像 时是有用的。预定义图像滤波器可能不向开发者提供创建独特视觉效果的能力,而是留给 开发者创建他们自己的定制的图像滤波器的替代方案。定制的图像滤波器经常用高级编程 语言来编写并且被转换成图形子系统所支持的可执行指令。定制的图像滤波器然后可作为 插件或作为扩展被结合到图像编辑器中。然而,以此方式创建这一定制的图像滤波器要求 开发者具备编程技能和知识。 概述 提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的概念选 择。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要 求保护主题的范围。着色器是对图形数据执行特定数学变换的专用程序。像素着色器对图像的每一像 素进行操作,并应用产生像素颜色的变换。像素着色器可添加变换来接近木材、大理石或其 它自然素材的外观和/或接近光源在物体上的效果。 提供了一种使开发者能够创建表示像素着色器的有向无环图的交互式开发环境。 有向无环图包含多个节点和边,其中每一节点包含对该节点的输入执行操作或生成值的代 码片段。交互式开发环境包含视觉着色器设计器引擎,该引擎以规定次序执行每一个节点 中的操作,并在该节点中的渲染查看区域中显示渲染的结果。以此方式,开发者能够在开发 着色器时可视地识别着色器的实时创建中的任何出错的结果。 另外,该交互式开发环境使开发者能够通过用户界面生成定制的图像滤波器,该 定制的图像滤波器向开发者提供创建表示构成定制的图像滤波器的数学运算和值的有向 无环图的能力。在开发定制的图像滤波器期间,开发者能够通过每一个节点中的实时渲染 的视图来可视化由图像滤波器执行的操作的结果。视觉着色器设计器引擎可以在图形硬件 上以规定次序发起与有向无环图中的每一个节点相关联的操作的执行,并且在每一个节点 中的渲染查看区域中显示渲染的结果。以此方式,开发者能够快速可视化由图像滤波器实 时产生的视觉效果并纠正任何非预期结果。 一旦有向无环图被定下来,该图就被变换成可被保存至文件的可执行指令集。开 发者可将表示定制的图像文件的可执行指令集应用于图像或其一部分,以便在图像上产生 预期视觉效果。 通过阅读下面的详细描述并参考相关联的附图,这些及其他特点和优点将变得显 而易见。应该理解,前面的概括说明和下面的详细描述只是说明性的,不会对所要求保护的 各方面形成限制。 附图简述 图1是示出示例性图形流水线的框图。 图2示出了表示像素着色器的第一示例性有向无环图。 图3示出了表示像素着色器的第二示例性有向无环图。 图4是示出用于设计像素着色器和图像滤波器的系统的框图。 图5是示出用于设计像素着色器的第一示例性方法的流程图。 图6是示出用于设计像素着色器和图像滤波器的第二示例性方法的流程图。 图7是示出用于设计像素着色器和图像滤波器的第三示例性方法的流程图。 图8是表示产生波纹效果的定制的图像滤波器的第三示例性有向无环图。图9是示出具有定制的图像滤波器的用于编辑图像的示例性系统的框图。 图10是示出用于创建定制的图像滤波器的第一示例性方法的流程图。 图11是示出用于对图像应用定制的图像滤波器的第一示例性方法的流程图。 图12是示出用于创建定制的图像滤波器的第二示例性方法的流程图。 图13是示出用于对图像应用定制的图像滤波器的第二示例性方法的流程图。 图14是示出操作环境的框图。 图15是解说第一示例性计算设备的框图。 图16是解说第二示例性计算设备的框图。 详细描述 各个实施例涉及用于设计具有实时图像渲染能力的视觉着色器的技术。在一个或 多个实施例,视觉着色器是可使用交互式开发环境来开发的像素着色器。交互式开发环境 可具有着色器编辑器,该编辑器允许开发者创建表示像素着色器的有向无环图。有向无环 图具有多个节点和边。每一节点表示要对图形图像应用的操作。操作可被配置成用着色器 编程语言编写的可执行指令。边将一个节点连接到另一个节点,并形成路线,使得从一个节 点输出的数据是对另一个节点的输入。有向无环图中的所有路线以一个方向流动,并在生 成像素的所需颜色的终点节点处结束。当图形中的节点根据路线聚集时,结果是形成像素 着色器的一组代码片段。 交互式开发环境包括视觉着色器设计器引擎,该引擎在有向无环图的设计期间生 成每一节点的操作的结果的渲染视图。导致对有向无环图的开发的任何错误被显示在节点 的渲染查看区域中。以此方式,开发者能够在开发着色器的同时可视地识别着色器创建中 的任何出错结果。 其他实施例涉及用于设计具有实时图像渲染能力的图像滤波器的技术。图像滤波 器对图像中的一组像素应用数学运算和/或值(统称为'操作')以产生特定视觉效果。图 像滤波器不同于像素着色器。像素着色器计算单个像素的颜色。像素着色器无法在图像的 一部分上产生复杂的视觉效果,因为像素着色器不了解该图像的几何结构。出于该原因,图 像滤波器经常被用来生成视觉效果。对图像应用图像滤波器将该图像中的每一个像素的颜 色变换成表示预期视觉效果的不同颜色。像素着色器可用于对每一个像素执行该变换以包 括预期视觉效果。 存在各种类型的公知图像滤波器,诸如但不限于:模糊、波纹、棕黑色调、变亮、气 泡、变暗、边缘检测、压花、反转色、锐化、水滴、水平翻转、垂直翻转、漩涡变形、噪声、Frank Miller着色以及卡通着色。模糊图像滤波器产生看似失焦的像素。波纹图像滤波器通过将 波添加到图像中来使图像变形。棕黑本文档来自技高网...

【技术保护点】
一种计算机实现的方法,包括:利用编辑器来创建定制的图像滤波器,所述编辑器使开发者能够将所述定制的图像滤波器构造为有向无环图,所述有向无环图具有被配置成在终点节点处终止的一个或多个路线的多个节点,所述终点节点表示结合通过应用与每一个节点相关联的操作来产生的视觉效果的像素的颜色;以及在创建所述定制的图像滤波器期间渲染每一个节点中的表示与节点相关联的操作的应用的视觉显示。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:S·马里森JP·杜普来西斯J·戈希E·阿坦恩斯
申请(专利权)人:微软公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利