3d - 64kB 演示,它们是如何工作的?

标签 3d demoscene

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

enter image description here

最佳答案

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

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

音频可以以某种类似 MIDI 的格式存储,其中存储了不同的音符。

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

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

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

关于3d - 64kB 演示,它们是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6081368/

相关文章:

math - 如何量化表面法线

c++ - 对演示场景大小限制有何影响?

c++ - 如何使用没有运行时库的 VC++ 内部函数

graphics - 老游戏中的 "side scrolling hack"是什么?

javascript - THREE.js 从 raycaster 交点检测相邻面

macos - NSOpenGLView 重绘速度有多快?它有默认的 FPS 吗?

java - 适用于 Java Web 应用程序的最佳 3D 图形库是什么?

r - 如何将等值面夹到球上?

linux - 从 ELFkickers 编译 sstrip for Ubuntu10.04 : asm/elf. h 问题