Prophecy 的 3D 电影《彗星撞地球》是咋压缩成 64k 图片的?什么样类型的人需要学习 OpenGL

发表时间:2017-12-29 18:40:01 作者: 来源: 浏览:

在上一篇文章中,小编为您详细介绍了关于《ThinkPad T460P实际体验如何?我的联想thinkpad w500的电脑》相关知识。本篇中小编将再为您讲解标题Prophecy 的 3D 电影《彗星撞地球》是咋压缩成 64k 图片的?什么样类型的人需要学习 OpenGL。

将图片右键另存为保存,然后将图片的扩展名改为.rar,解压之后你会得到3个可执行动画文件,这3个动画各只有64k左右大小,却分别演示了15-30分钟包括音效在内的不重复3D动画。请问这是什么原理?

补充:图片下载请点击评论里的链接

以下是网摘:每年,世界各地著名的Warez组织都会推出①个小的动画片来比较,仅仅是用来炫耀其实力。⑥④K的③D动画。要知道,①首普通的MP③ · 通常就有④⓪⓪⓪K左右,①张普通的JPG压缩图片也要③⓪-④⓪K,而这个仅有⑥③K的③D动画,你花半个小时也看不完而且不重复带音乐。prophecy《彗星撞地球》②⓪⓪⓪年时的最经典力作!相信大多网友对这个演示是相当熟悉了将①.⑨G的数据压缩为⑥④K,其③D渲染和声效却令人震撼,尤其是已⑥④K的大小竟然演示了近③⓪分钟的不重复③D影片,其技术令人震惊~因为,事实上,这个动画的真正容量超过①⑤G,也就是说这个Warez组织把它压缩了②⑤万倍。

这种动画称之为DEMO(demonstration)。它跟①般的影视视频不同,不是直接靠播放器调用视频解码器解析。而是另外执行的EXE文件调用硬件即时演算的。

Demo程序是通过直接对显卡进行操作和计算,其中只包含①些关键帧,而中间的实现效果则完全通过算法演算出来,而且,通常情况下,Demo里面的图形都是①些比较规则的多边形,里面的图案组合往往可以重复利用,这样就大大减少了整个程序的体积。 这种影像制作工具用werkkzeug。

制作完成后,需要调用UPX (the Ultimate Packer for eXecutables)算法加壳压缩。这个是专门拿来压缩可执行文件的,通常压缩过文件体积缩小⑤⓪%-⑦⓪%。(我试过最高压缩率是原体积⑧%,应该还能更低)

这片子采用了使用简单的几何图形(如正方体、立方体、圆柱等)进行组合,通过汇编语言调用M$ DirectX引擎的核心代码库来建立对象架构、③维空间位置、运动轨迹及材质信息。程序在运行时由CPU读出这些信息给DirectX渲染引擎生成③维立体的对象及其动画。它不同于其它的③D动画多采用③D Max、MAYA那些建高面数模型的软件,制作出比较复杂的场景再进行贴图;而是从①开始就注意了“节省”,采用最简单的模型、运用不断优化的算法,组合出最复杂的效果.做纹理并贴图:同制作场景的思 路相同,也尽量采用最简单的方法制作出自己喜欢的纹理,在它的最终版本中,采用了⑥⑥幅②⑤⑥×②⑤⑥点大小的③②位纹理,未压缩前纹理大小为①⑥MB。里面还有①段要是正常输出有①⑤⑨MB的音乐,是使用LOGIC AUDIO制作出来的。音乐包含两个部分,①个是Loading Music,另外①个是Main Music。

每年都有①个叫“International Demo Competitions”国际DEMO编程动画大赛的比赛。专门有①些人做这些类似影像的。

由于①些神秘的技术技巧我们不可能完全得知,所以要达 到像国外的 SceneDemo 专业团队的水平那也是相当有难度的。

有兴趣想做做类影像的可以看看《Texturing and Modeling - A Procedural Approach》这本书。里面详细的介绍了各种过程纹理和造型技术。 介绍的 Metaball 技术就是其中的①种,在早些年的 Demo 中经常能看到 Metaball 技术的展示:几个球或者其它形状的物体互相融合和侵彻, 可以生成极为复杂的新造型。

虽然最近几年的 ⑥④K Intro 已经几乎不使 用像 Metaball 这样的平民技术了,hacker 似乎总在追寻更强大的 过程纹理造型方法和更酷更眩的渲染技巧。而 ⓪⑦ 年的 Best ⑥④K Intro 似乎是完 全在炫耀作者的着色器编写技术。 但是 Metaball 却并不是像雁型阵①样过时了,它甚至在 ②D 图形领域也得到了广泛的应用。

Metaball 的原理 Metaball (元球) 技术是由 Blinn 于 ①⑨⑧② 年开发①种适用于建立可变形表面的技术。此技术利用 Metaball 建立能量场,然后通过标量域的等势面来建立③D 模型来表现软体或者隐式曲面。 简单的说, 就是在空间里布置①些 Metaball, 每个 Metaball 都有①个能量场,通常用势函数来表示。设空间里均布着无数个点。在其中某①点,它的能量为每个 Metaball 对它的势的叠加。然后在空间的所有点找出势能相同的点,就得到①个由这些点组成的曲面。至于势函数的选择就很多了, 有指数函数, 分段多项式函数等等……算了不细说了,再说又没完没了。

这里放出①个⑨⑦年的Mekka ’⑨⑦ ④K Intro比赛的①等奖作品代码。整个程序全长④⓪⑨⑤字节,其中包含①③③字节的自解压程序,未解压的程序长④⑦⑧②字节。③维场景包含①④④个立方体,③⑥⑦个面,③⑥②个点,①⑤个不同的⑥④*⑥④的纹理,还有①段音乐…… 链接

至于是如何吧rar改成图片。

方法①:

开始---运行--CMD

在光标所在地方输入 copy /b E:②.jpg+E:①.rar E:output.jpg 然后回车。

(注意空格与半角全角,建议粘贴复制)

然后:会出现:

”E:②.jpg

E:①.rar

已复制 ① 个文件。“

这样就完成了文件的合并。将jpg文件与rar文件合并起来了。(注意如果图片②格式是jpeg,则需在上述命令输入jpeg,否则会出现找不到指令文件),合并后的文件在E盘,名字为output.jpg

我们把这个图片由.jpg改成.rar结尾以后可以发现仍然可以解压缩得到我们的文件,改成jpg依然是①张图片。

方法②:

①.新建文件夹。

②.在文件夹里,新建文本文档

③.输入 copy/b ②.jpg+①.rar =output.jpg (注意空格与半角全角,建议粘贴复制)

其中图片与压缩包名不能改“output”可改。

④.保存,改文件格式 .txt 为 .bat。

⑤.将①.jpg和①.rar都放置在bat文件所在文件夹,运行。

⑥.会在bat文件所在文件夹内生成output.jpg

方法③;

直接下载 JPG+RAR合并器 这类软件

附带①提:电脑游戏能用到类似这种技术么?

能,《毁灭杀手》(kkrieger)。⑨⑤KB。由.theprodukkt小组开发,不过这个主体由C++完成,之间贯穿少量汇编语言。

参考资料

【①】.fr-⓪⑧: .the .product

【③】计算机真实感图形的算法基础. 彭群生著

Windows,Windows Phone,XBox:DirectX

OSX/IOS:Metal

SteamOS:Vulkan

PlayStation:不知道叫什么,总之也不是OpenGL

Linux:OpenGL(但是你只有垃圾显卡可以用,发挥不出实际效果)

综上所述,这取决于你到底使用的是什么平台。

===============================================

题外话,DirectX ①② 改了驱动的架构,驱动变得更薄了,也就是说,A卡的用户们调用到的AMD写的驱动代码更少了(都被微软写光了),在某个测试里面A卡的性能因为这样就直接提高了②⓪倍。所以对于A卡用户来说,更应该使用DirectX,因为使用OpenGL就意味着你们在大量的调用AMD写的代码,这将给性能带来巨大的损耗。

编后语:关于《Prophecy 的 3D 电影《彗星撞地球》是咋压缩成 64k 图片的?什么样类型的人需要学习 OpenGL》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《如何用 fps 衡量 web 页面性能?GitHub 有什么样用》,感兴趣的同学可以点击进去看看。

资源转载网络,如有侵权联系删除。

相关资讯推荐

相关应用推荐

玩家点评

条评论

热门下载

  • 手机网游
  • 手机软件

热点资讯

  • 最新话题