首页
社区
课程
招聘
64K 3D动画的实现原理[求助]
2007-3-1 14:31 18500

64K 3D动画的实现原理[求助]

2007-3-1 14:31
18500
想问高手门一个问题..很早时期是下过64K的3D动画看过了..画质很棒..音乐效果也好...而且还有20多分钟...
但是一直不知道是怎么实现的..我知道是用的汇编语言...但是只有64K大小??

阿里云助力开发者!2核2G 3M带宽不限流量!6.18限时价,开 发者可享99元/年,续费同价!

收藏
点赞7
打赏
分享
最新回复 (19)
雪    币: 331
活跃值: (56)
能力值: ( LV13,RANK:410 )
在线值:
发帖
回帖
粉丝
Isaiah 10 2007-3-1 17:10
2
0
调用Opengl或者DX。精心的编写代码和数据。然后做一个类似UPX的压缩壳。压缩容量。
雪    币: 237
活跃值: (31)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
JiYangTX 2007-3-1 20:23
3
0
我也看过,还看过些相关的评论及解剖
其原理似乎和Isaiah说的是一样的 ,但代码应该太高深
雪    币: 309
活跃值: (99)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
mingren 1 2007-3-1 20:55
4
0
那个壳也太强了把。。。
雪    币: 217
活跃值: (99)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
dwing 1 2007-3-2 09:19
5
0
简单地说就是生成技术,包括纹理,模型,音频采样都是由少量参数计算生成的,很有规律性,所以一般只能演示抽象,自然的动画.
汇编几乎没必要,即使有一点,内嵌到VC里就足够了.
雪    币: 721
活跃值: (350)
能力值: ( LV9,RANK:1250 )
在线值:
发帖
回帖
粉丝
happytown 31 2007-3-2 11:52
6
0
超强的压缩壳似乎必不可少?
雪    币: 101
活跃值: (12)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
jjnet 5 2007-3-2 11:58
7
0
最初由 Isaiah 发布
调用Opengl或者DX。精心的编写代码和数据。然后做一个类似UPX的压缩壳。压缩容量。


不是类似. 大多数参与比赛的作品就是用的upx压的.
雪    币: 237
活跃值: (31)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
JiYangTX 2007-3-2 12:54
8
0
传个上来大家看
上传的附件:
雪    币: 331
活跃值: (56)
能力值: ( LV13,RANK:410 )
在线值:
发帖
回帖
粉丝
Isaiah 10 2007-3-2 15:00
9
0
也些也用专用的Loader.根据自身的特点,定制一个压缩方案。来达到最佳的压缩效果。
64K的动画,所高深不高深,不过真的要做还是有一定的难度。

动画无非就是调用opengl或者Dx来画点线面和贴图。64动画里面的贴图都是很简单的。有些甚至没有贴图。比如我要画一个房子。就几行代码。
伪码类似下面:
GLBegin(GL_PLOY)
Vertex(x,x,x)
Vertex(x,x,x)
Vertex(x,x,x)
GLEnd
雪    币: 191
活跃值: (1922)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
4st0ne 4 2007-3-2 17:14
10
0
最初由 dwing 发布
简单地说就是生成技术,包括纹理,模型,音频采样都是由少量参数计算生成的,很有规律性,所以一般只能演示抽象,自然的动画.
汇编几乎没必要,即使有一点,内嵌到VC里就足够了.

玩过一个64KB的第一视角射击游戏..爆强.
雪    币: 217
活跃值: (99)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
dwing 1 2007-3-2 18:56
11
0
第一视角射击游戏应该是那个96KB的吧,我也玩过.

其实看起来特殊形状的物体也是靠技巧用少量数据生成的.
模型都是一些基本形状(方形,球形,四面体等)用sin,cos等函数变换一下顶点坐标就能把模型复杂化,运气好就能得到像样的模型.
纹理也用简单的p=f(x,y)函数算出来每个像素的颜色值.不同纹理直接再融合一下就能变出很复杂的纹理.音频采样也是同样道理.
几个函数的代码量当然比几幅纹理的数据量少得多.
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
dangerboy 2007-3-7 12:11
12
0
有些此类的程序还可以在里面进行操作……
雪    币: 238
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
nantz 2007-3-7 21:46
13
0
第一视角射击游戏在哪下载,可不可以发个网址,游戏名字什么的。我没玩过,想玩玩。谢谢各位大大了。
雪    币: 200
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
一半情人 2007-3-8 02:09
14
0
妞啊...........
雪    币: 238
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
nantz 2007-3-8 20:04
15
0
96k 第一人称射击游戏
这个游戏可惜我玩不了,要求的配置好高啊。
雪    币: 203
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
风雨狂飚 2007-4-1 22:10
16
0
应该全是用计算生成的
雪    币: 217
活跃值: (99)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
dwing 1 2007-4-1 23:33
17
0
画面和音乐/音效还可以,物理引擎和游戏性比较差.
上传的附件:
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
fpluto 2007-4-2 08:38
18
0
那个只有调用代码吧,调用其他程序和系统内的函数来实现的话源码就应该很少,你在运行时看看他所占的内存吧,那才是他的真实大小.
雪    币: 293
活跃值: (110)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
堕落天才 10 2007-4-2 09:50
19
0
UPX壳,解压后3.18M 压缩率2%,这个壳强!
D3D实现
雪    币: 217
活跃值: (99)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
dwing 1 2007-4-2 18:29
20
0
只要调用系统自带的API就不算作弊,当然包括DirectX.任何有意义的Win32程序都要调用系统API.
内存占用和磁盘占用没什么关联.
看看这个非常小的程序:
#include <windows.h>
int main()
{
int t=(int)new char[500000000];
ZeroMemory((void*)t,500000000);
Sleep(-1);
return t;
}
如果内存不超过512MB,那物理内存一定会被吃光...
游客
登录 | 注册 方可回帖
返回