这种动画称之为DEMO(demonstration)。它跟一般的影视视频不同,不是直接靠播放器调用视频解码器解析。而是另外执行的EXE文件CPU即时演算的。
Demo程序是通过直接对显卡进行操作和计算,其中只包含一些关键帧,而中间的实现效果则完全通过算法演算出来,而且,通常情况下,Demo里面的图形都是一些比较规则的多边形,里面的图案组合往往可以重复利用,这样就大大减少了整个程序的体积。 这种影像制作工具用werkkzeug。
制作完成后,需要调用UPX (the Ultimate Packer for eXecutables)算法加壳压缩。这个是专门拿来压缩可执行文件的,通常压缩过文件体积缩小50%-70%。(我试过最高压缩率是原体积8%,应该还能更低)
这片子采用了使用简单的几何图形(如正方体、立方体、圆柱等)进行组合,通过汇编语言调用M$ DirectX引擎的核心代码库来建立对象架构、三维空间位置、运动轨迹及材质信息。程序在运行时由CPU读出这些信息给DirectX渲染引擎生成三维立体的对象及其动画。它不同于其它的3D动画多采用3D Max、MAYA那些建高面数模型的软件,制作出比较复杂的场景再进行贴图;而是从一开始就注意了“节省”,采用最简单的模型、运用不断优化的算法,组合出最复杂的效果.做纹理并贴图:同制作场景的思 路相同,也尽量采用最简单的方法制作出自己喜欢的纹理,在它的最终版本中,采用了66幅256×256点大小的32位纹理,未压缩前纹理大小为16MB。里面还有一段要是正常输出有159MB的音乐,是使用LOGIC AUDIO制作出来的。音乐包含两个部分,一个是Loading Music,另外一个是Main Music。
每年都有一个叫“International Demo Competitions”国际DEMO编程动画大赛的比赛。专门有一些人做这些类似影像的。
由于一些神秘的技术技巧我们不可能完全得知,所以要达 到像国外的 SceneDemo 专业团队的水平那也是相当有难度的。
有兴趣想做做类影像的可以看看《Texturing and Modeling – A Procedural Approach》这本书。里面详细的介绍了各种过程纹理和造型技术。 介绍的 Metaball 技术就是其中的一种,在早些年的 Demo 中经 常能看到 Metaball 技术的展示:几个球或者其它形状的物体互相融合和侵彻, 可以生成极为复杂的新造型。这对于当时初学 OpenGL 仅仅知道多边形面片逼近 造型技术的我来说是很牛很新鲜的。
虽然最近几年的 64K Intro 已经几乎不使 用像 Metaball 这样的平民技术了,hacker 似乎总在追寻更强大的 过程纹理造型方法和更酷更眩的渲染技巧。而 07 年的 Best 64K Intro 似乎是完 全在炫耀作者的着色器编写技术。 但是 Metaball 却并不是像雁型阵一样过时了,它甚至在 2D 图形领域也得到了广泛的应用。
Metaball 的原理 Metaball (元球) 技术是由 Blinn 于 1982 年开发一种适用于建立可变形表面的技术。此技术利用 Metaball 建立能量场,然后通过标量域的等势面来建立3D 模型来表现软体或者隐式曲面。 简单的说, 就是在空间里布置一些 Metaball, 每个 Metaball 都有一个能量场,通常用势函数来表示。设空间里均布着无数个点。在其中某一点,它的能量为每个 Metaball 对它的势的叠加。然后在空间的所有点找出势能相同的点,就得到一个由这些点组成的曲面。至于势函数的选择就很多了, 有指数函数, 分段多项式函数等等……算了不细说了,再说又没完没了。
这里放出一个97年的Mekka ’97 4K Intro比赛的一等奖作品代码。整个程序全长4095字节,其中包含133字节的自解压程序,未解压的程序长4782字节。三维场景包含144个立方体,367个面,362个点,15个不同的64*64的纹理,还有一段音乐…… 链接http://www.jrmos.com/listpro.asp?id=700
至于是如何吧rar改成图片。
方法1:
开始—运行–CMD
在光标所在地方输入 copy /b E:2.jpg+E:1.rar E:output.jpg 然后回车。
(注意空格与半角全角,建议粘贴复制)
然后:会出现:
”E:2.jpg
E:1.rar
已复制 1 个文件。“
这样就完成了文件的合并。将jpg文件与rar文件合并起来了。(注意如果图片2格式是jpeg,则需在上述命令输入jpeg,否则会出现找不到指令文件),合并后的文件在E盘,名字为output.jpg
我们把这个图片由.jpg改成.rar结尾以后可以发现仍然可以解压缩得到我们的文件,改成jpg依然是一张图片。
方法2:
1.新建文件夹。
2.在文件夹里,新建文本文档
3.输入 copy/b 2.jpg+1.rar =output.jpg (注意空格与半角全角,建议粘贴复制)
其中图片与压缩包名不能改“output”可改。
4.保存,改文件格式 .txt 为 .bat。
5.将1.jpg和1.rar都放置在bat文件所在文件夹,运行。
6.会在bat文件所在文件夹内生成output.jpg
方法3;
直接下载 JPG+RAR合并器 这类软件
参考资料
【1】.fr-08: .the .product
【2】http://baike.baidu.com/view/7114230.htm?fr=aladdin
【3】计算机真实感图形的算法基础. 彭群生著
— 完 —
本文作者:加刘景长
【知乎日报】
你都看到这啦,快来点我嘛 Σ(▼□▼メ)
此问题还有 1 个回答,查看全部。
延伸阅读:
那些64k的3D动画怎么实现这么大的压缩率的?
如何学好计算机图形学(3d建模原理和人体运动方向)?