• Rendering Engine,呈现引擎还是渲染引擎?

    翻译的追述
    服务器君一共花费 5.372 ms 进行了 3 次数据库查询,努力地为您提供了这个页面。
    广告很萌的

    前面一些小节里,又是出现呈现引擎,又是出现渲染引擎,那么它们究竟是什么东西?又该怎么区分他们呢?

    其实他们都是Rendering Engine的翻译。

    Render 的中文意思有翻译,呈送,粉刷的意思。直译的话,选取其呈送的意思,所以直译成呈现引擎。

    文艺一点的话,那就翻译成渲染引擎(翻译成粉刷引擎可能会比较搞笑)。反正你跟做技术的人讲浏览器的“渲染引擎”,他们一定都知道你指的是 Gecko, KHTML/WebKit 这些。沟通起来也不会有障碍,大家知道呈现引擎和渲染引擎是一回事,只是直译和意译的区分。

    绘画中的 render 就是一种“呈现”的技法,在线稿或底稿的基础上通过上色等手段将内容以更真实可感的样貌呈现而出,比如对光影和材质的表现,这到现在计算机绘图中的 render 是一脉相承的,比如底稿对应的线框模型,抽象对应抽象,具体对应具体。这或许是翻译成“呈现引擎”的另一种原因。浏览器中的 render 也是关于内容的呈现吧?以更具体可感的样貌呈现内容。

    按 Wikipedia 上的说法,「render」指的是借助计算机程序,从一个模型生成图像的过程。这和美不美观或者准不准确都没关系。注意我们在屏幕上看到的一切东西本质上都是图像——哪怕它有文字的外形,哪怕它能够通过光标选择。

    浏览器引擎做的正是这样的事情——输入一段 HTML,浏览器引擎把它处理成一个可视的画面。这个过程不能叫「翻译」或者「转译」。「译」指从一种文字到另一种文字,它是文字层面上的行为,严格地说与视觉或者说与文字的接受途径并无关联。一个人给我口述一段话,我把它用另一种语言讲述给另一人,在这个过程中没有视觉的介入但仍然叫「翻译」。而 render 则一定是与视觉相关的,一个人给我讲了个段子,我把它画成了漫画,这个才比较接近「render」的行为。以浏览器引擎为例,从 HTML 转换成 DOM 树,即从人类可读语言转换成计算机能理解的模型,这个过程或许可叫「译」。但 render 并不是指这个过程,它指的是如何从 DOM 树出发并在屏幕上画出各种元素。

    render 一定是与视觉相关的。所以将「render」翻译成「渲染」取的是「渲染」的本义(画国画时用水墨或淡色涂抹画面以加强艺术效果),而不是它的引申义(比喻夸大的形容)。当我们说计算机术语的「render」时,强调的是「渲染」本义中绘画的过程。而在中文语境中「渲染」这个词词义的演变可能更突出了它「加强艺术效果」的目的性。

    最早 render engine 主要处理 HTML 代码,表现为文字图片的排列。叫“排版引擎”是可以的。取 render 中“翻译”的意思。或者,个人认为是“表现”意思:把 HTML 代码,“表现为”图形的页面。

    而今天 render engine 的很大一部分工作变为处理 CSS 。“排版”或者“翻译”就太朴素了。 CSS 所做的事情,非常类似“添油加醋”。引擎不再仅仅排版,也在作画。这时“表现引擎”的翻译方法仍然是妥当的。

    简而言之,从 CSS 的描述(语言),到浏览器中图形(形象)之间的工作,是人定义的表现手法来完成的( render engine )。这不是单纯的翻译,而是一种表现过程。有通过人固化下来的表现手法( CSS 说要阴影,那么怎样实现才够美观?)。

    参见维基百科:

    Rendering engine may refer to:

    第一义项是游戏引擎。也就是根据代码生成3D世界的系统。中间两项都是和计算机图形有关的内容。最后一项指浏览器,指出另外一个名字叫做layout engine,即排版引擎。

    游戏引擎翻译做渲染引擎,我认为完全没有问题。仿佛一个人拿着画笔渲染出了一个虚拟的3D世界。这是计算机术语里少有的好翻译,比什么“面向对象”好得多了

    这个词只有在浏览器里面似乎稍微有点不恰当,但你也可以使用另外一个词layout engine。

    Layout的观点是把这个词大大狭义化了。Layout之后,各个元素的位置确实已经确定下来了,接下来确实需要对每个block,每个div的border,每个线条。。。进行染色,渐变处理等等。浏览器的发展史也证明了这一点,html 5已经具有了视频播放,动画等功能,以后还不一定发展到什么样子呢。但是 rendering engine 将持续表达准确的概念。哪怕有一天连嗅觉味觉触觉都能 render的时候, rendering engine 也是准确的用词,而那时候渲染引擎只会更将是个名不副实的词。

更多 推荐条目

Welcome to NowaMagic Academy!

现代魔法 推荐于 2013-02-27 10:23   

本章最新发布
随机专题
  1. [软件工程与项目管理] 呈现器的布局与绘制 11 个条目
  2. [智力开发与知识管理] 整体性学习步骤 9 个条目
  3. [PHP程序设计] CodeIgniter与PHP框架设计 5 个条目
  4. [JavaScript程序设计] jQuery与表单操作 2 个条目
  5. [Python程序设计] Tornado表单处理 3 个条目
  6. [智力开发与知识管理] 信息的类型与结构 9 个条目
  7. [软件工程与项目管理] 开始使用Git 3 个条目
  8. [移动开发] Android Studio里的Gradle 3 个条目
  9. [移动开发] Android加载器Loaders 5 个条目
  10. [移动开发] Android与SQLite数据库 7 个条目
  11. [移动开发] 刷机与root相关 2 个条目
  12. [移动开发] Android View注入框架Butter Knife 3 个条目
窗口 -- [协会]