64kB演示,它们如何工作?

时间:2011-05-21 11:20:35

标签: 3d demoscene

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

enter image description here

3 个答案:

答案 0 :(得分:18)

他们在程序上生成内容。即他们不添加3D模型,位图,基于样本的音频文件,...但是从代码或一些低细节表示中生成它。

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

音频可以存储在存储不同音符的某种midi格式中。

生成的纹理结合了滤镜,分形,...谷歌的“Perlin噪音”这个简单的例子。 Shows how to create very different textures from perlin noise

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


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

答案 1 :(得分:4)

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

答案 2 :(得分:2)

他们是:

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

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

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

不要愚蠢的家伙 - 只需使用谷歌!!!