【问题标题】:64kB demos, how do they work?64kB 演示,它们是如何工作的?
【发布时间】:2011-08-30 04:43:05
【问题描述】:

我看过一些程序显示了令人惊叹的高度详细的 3D 场景和配乐,但令我震惊的是它们都小于 64kB!这些程序是如何运作的?

【问题讨论】:

  • @Cody Gray 没有其他文件。这一切都在一个可执行文件中。请参阅 CodeInChaos 的答案。
  • @Cody 我不这么认为。通常对于大小有限的演示,可执行文件的大小和所有资源都需要低于限制。您可以使用哪些运行时库存在一些差异,但通常这些已经是操作系统的一部分。
  • @Cody 因为如果您添加超过该大小的资源,它不再是 64k 演示。并且 64k 已经是较大的尺寸限制之一。 4-8k 的限制也很常见。
  • @Cody 主题是“64k 演示”。所以它不只是谈论主程序恰好很小的程序。 en.wikipedia.org/wiki/Demo_(computer_programming) 由于许多演示都是参赛作品,因此组织者制定了确切的规则。有一些流行的限制,例如 4kB 和 64kB。
  • 也许“64k 演示”是一个已知概念,但我希望看到一些平台+语言标签。

标签: 3d demoscene


【解决方案1】:

他们按程序生成内容。即,他们不添加 3d 模型、位图、基于样本的音频文件……而是从代码或一些低细节表示中生成。

使用自相似性(分形)并通过组合简单的构建块和公式来构建复杂的数据通常是紧凑表示的关键。

音频可以存储在存储不同音符的一些类似 MIDI 的格式中。

纹理是结合过滤器、分形、...谷歌“柏林噪声”作为一个简单的例子生成的。 Shows how to create very different textures from perlin noise

3D 模型可能有一些使用公式的几何描述,并使用类似于程序纹理的技术添加细节。


并且大多数使用一些运行时解包器。即您的正常可执行文件大于限制并使用 exe 打包程序进行压缩。 Demos 通常不使用 UPX,而是专门的打包程序,它有一个非常小的加载器/解包器,甚至可能会泄漏内存(如果你能保护几个字节,谁会关心内存泄漏)。

【讨论】:

  • “可能不是”什么?
  • @bjb568 不要问我 2011 年他写这篇文章时的想法。
  • 我认为这是一个打开世界之窗的好链接:llg.cubic.org/docs/farbrauschDemos与pouet.net一起
【解决方案2】:

在过去,它们是用汇编语言作为 COM 编写的。甚至还有 16kb 的演示。 我非常喜欢这些演示,这就是为什么 Assembly 是我学习的第一门编程语言。我从来没有设法创建一个真正的演示,但我能够创建一个清除我硬盘的病毒。我没有源代码;)

【讨论】:

    【解决方案3】:

    他们是:

    • 没有无用(原文如此!)外部库的代码(你真的应该知道你需要做什么),
    • 着色器编译器、压缩器等
    • 功能性 3D 图形和 2D 纹理制作器(但具有确定性和恒定性,但与许多参数相关),
    • 程序音频制作器(每次都一样)。

    示例(代码示例!)可以在这里找到:

    http://www.displayhack.org/2012/the-great-demoscene-sourcecode-giveaway/

    别傻了,用谷歌就行了!!!

    【讨论】:

    • 好吧,关于当前日期的 PC 产品,您的第一点是完全错误的。它们包括成熟的 OpenGL 或 DirectX 库以及更多需要的库。与您的第二点有关:着色器编译器来自哪里?
    • 您好,感谢您的评论。我猜你想要严格正确。 /// 是的,对不起。没有任何库,但只是没有用,不需要。另一个例子,很多人整包某物,例如例如,SFML 进行项目,即使他们不需要其中的一些。 /// 而且,你能广泛地解释你的问题吗? /// PS我看到了npl.de,我很感激! :)
    • 哦,我的问题完全是修辞。着色器需要在当前硬件上编译,这是设备驱动程序的工作(至少在 Windows 中)。因此,使用了另一个大块的外国代码。它与 4k 在千年变化前后不同。看看从那时起 t$ 的一些狂热的西红柿。
    猜你喜欢
    • 2015-02-11
    • 2014-09-08
    • 1970-01-01
    • 2017-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多