【问题标题】:Computer graphic programming language [closed]计算机图形编程语言
【发布时间】:2012-09-10 17:27:57
【问题描述】:

是否有专门为计算机图形创建的编程语言?我知道通常 C 和 C++ 是计算机图形学中最常用的 PL,但我想知道是否有针对 CG 的特定领域语言。

【问题讨论】:

  • 我会冒昧地说 C 可能不是更常用的图形语言之一。
  • 你想在图形方面做什么?构建图形用户界面?创建 3D 模型?如果您想创建硬件加速图形,OpenGL(它是多种编程语言的 API)非常常见。
  • 除了着色语言(Cg、GLSL、HLSL、RSL 等)之外,我想不出任何其他语言。虽然提到的一些语言也被用于并行 GPU 计算环境中......所以也许它们也不算数。
  • @scott654 我的意思是一种完整的编程语言(不是 Cg 或 GLSL 或其他),它允许在其标准库中包含一些 API,如 OpenGL。
  • 我的意思是处理的一个很好的例子。但它仍然缺乏一些使其成为生产级语言的功能。

标签: opengl graphics direct3d


【解决方案1】:

Renderman 是专门创建的,并已被皮克斯和许多其他公司用作图形 DSL。您可以描述场景中的对象、将着色器附加到它们、添加光源、定位相机、描述投影等。所有这些都使用这种 1980 年代的类 C 语言。

有实现它的开源渲染器,您可以尝试一下。

现在我想起来,也许POVray 可以被认为是另一个。

【讨论】:

  • +1:Renderman 是最好的例子,恕我直言。即使是Mental Ray 用于 FX 管道的高级渲染软件 - 仍然采用着色器树架构。
【解决方案2】:

MetaPost 是一种非常有用的特定领域语言,用于绘制数学定义的图片。虽然它可以独立使用,但它广泛用于 LaTeX 或 TeX。顾名思义,它是一种生成 PostScript(实际上也是 PDF)的高级语言。它通常作为 LaTeX 发行版的额外包安装。

您可以在此处找到有关 MetaPost 功能的令人印象深刻的示例,通常使用非常紧凑的代码:MetaPost Examples

最后,在以下链接中,您将找到有关示例、教程和入门方法的大量有用信息:TUG MetaPost Page。祝你好运!

【讨论】:

    【解决方案3】:

    已经在 cmets 中提到了,但我不能错过赞美Postscript 美德的机会!

    Mathematical Illustrations 的作者 Bil​​l Casselmann 的话来说,

    选择哪种 [生成复杂数学图形的工具] 显然需要在简单性和质量之间进行权衡,在这种情况下,大多数插画家会选择任何被认为简单的东西。事实是,这种权衡是不必要的。一旦您进行了少量的初始投资,到目前为止,在大多数情况下最好的做法是使用图形编程语言 PostScript 编写程序。 PostScript 程序的输出质量几乎没有限制,随着经验的积累,使用该语言的难度会迅速降低。正如我希望this book 所展示的那样,通过 PostScript 编程生成简单图形所涉及的明显复杂性在很大程度上是一种错觉。制作更复杂的图形所涉及的工作量通常既不会多也不会少于必要的。

    在过去的两个月里,我花了一个 postscript procset 来做 3D drawing。没错:3D -- 从 scratch -- 在 2 个月内使用 10 美元的旧书、文本编辑器和 ghostscript。

    Postscript 图形程序可轻松转换为 PDF,以便与不了解 Postscript 的世界分享您的创作。

    【讨论】:

    • 您是如何将 .ps 转换为 SVG 的?
    • 我不好意思说,但我不知道。我已经删除了那部分。我必须假设存在一个转换工具而没有检查。对此感到抱歉。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-13
    相关资源
    最近更新 更多