编程中“渲染器”的确切含义是什么?

时间:2016-12-10 16:30:37

标签: c# xamarin

任何人都可以告诉我“渲染器”这个词究竟是什么意思吗?

例如,在Xamarin.Forms中,最常用的概念是“Custom Renderer”。由于Renderer基于不同的字段有很多含义,我无法在编程中得到Renderer的确切含义。那么,有任何明确的解决方案吗?

提前致谢。

4 个答案:

答案 0 :(得分:2)

在计算机图形学中(包括不太精细的图形,如窗口中的简单形式),渲染是指在屏幕上绘制建模对象的行为。

在程序的内存中,对话框的按钮不是您真正移动的图像。它最终是一个属性列表:按钮的位置,大小,文本内容,颜色等。渲染器是一段代码,它使这个属性列表建模一个按钮并在屏幕上绘制一个实际按钮(或在屏幕外的画布上与其他元素一起在屏幕上合成)。默认渲染器只会从操作系统的默认控件库中绘制一个常规按钮。但是,自定义渲染器可以使用该信息执行任何操作:它可以绘制与常规渲染相比具有较小修改的按钮,或者可以绘制看起来像超链接的按钮,例如

答案 1 :(得分:1)

我不知道是否有正式定义,但我通常将其理解为为用户生成视觉输出的内容。这是处理的最后一步。无论它产生什么,然后发送到输出设备(虽然可能仍然有"后期处理"在此阶段之后完成)。

当我们谈论GUI时,这将成为程序中所有" windows"和"控制"和"按钮"和"标签"和whatnotelse,然后调用绘制线条和填充区域和字母等的函数。

同样,当你编写电脑游戏时,"渲染器"获取您的世界状态数据并对GPU进行所有调用,最终导致像素出现在屏幕上。

另一个稍微不同的地方我在ASP.NET WebForms中看到它被使用 - 渲染阶段采用控制树并生成发送到浏览器的HTML。但潜在的想法仍然是相同的 - 采用您的抽象数据结构并产生用户将看到的输出。

请注意,当您的程序返回纯数据时,通常会使用 这个概念。例如,如果您正在编写一个返回JSON格式对象的Web服务,那么将您的对象转换为JSON字符串的部分 称为"渲染器&# 34 ;.相反,您通常将其称为"序列化器"。

答案 2 :(得分:1)

透过镜子中的Humpty Dumpty:

  

"当我用一个词时," Humpty Dumpty用蔑视的语气说,#34;这意味着我选择它的意思 - 既不多也不少。"

A"渲染器"无论是谁称之为“渲染器”#34;希望它是。动词to render本身的定义非常广泛。它主要意味着

  

导致成为或成为;使

  

要做;执行

你可以看到它可以是什么。

dictionary.com 具有列出的特定相关含义:

  

使用计算机硬件和软件的处理能力在最终图形输出中合成(图像或动画的组件)。

所以渲染器就是这样做的。在该定义中,我怀疑他们主要讨论CGI以及获取场景组件和渲染结果视频的相关含义,但您也可以使用HTML呈现表单以呈现给用户,等等。 / p>

但也有

  

翻译成另一种语言

并且这种感觉也被用于计算。

首先,我希望渲染器能够产生某种形式的可见输出,或者某些东西(如视频文件)可以很容易地成为可见输出。但是,如果我碰到它被用于其他东西,只要它是一个接受输入并产生某种形式的转换输出的东西,我就不会对它感到惊讶。

答案 3 :(得分:0)

它有很多含义。在Xamarin的语境中,意思是"传递到某物或产生"。例如,在asp.net中,您可以使用HTML编写C#代码,然后将其呈现(传输到)纯HTML。渲染器接收输入并生成输出。在Xamarin中,Xamarin开发人员编写了生成(呈现)表单控件的代码。如果您不喜欢表单控件的默认输出(外观),则可以编写自己的代码,以便在CustomeRenderer中按照您喜欢的方式生成(呈现)表单控件。