本文主要是介绍服务器3D场景建模(四):体素场景(二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
(提示:体素相关文章参考至http://gad.qq.com/article/detail/10014)
跳跃、飞行
跳跃 飞行
行走需要的角色信息:
a. 角色位置信息: (x, y, z, layer, dynamicId)
b. 角色跳跃、飞行的方向: dirX、dirY、dirZ跳跃、飞行的碰撞校验步骤为:
上图,同样省略了玩家间的碰撞。
内存占用
忽略动态场景信息
这些信息根据玩法偶尔才会有,因此可以忽略之
连通信息
有连通信息的网格非常少,因此可以忽略之
一个网格需要内存占用量:
2byte + 2byte + 1byte = 5byte ( Hdownward H d o w n w a r d + Hupward H u p w a r d + M)
地图大小 | 网格数 | 计算过程 | 内存占用 |
---|---|---|---|
1KM×1KM 1 K M × 1 K M | 1000×1000×100÷50=2000000 1000 × 1000 × 100 ÷ 50 = 2000000 (2M) | 2M×5byte=10M 2 M × 5 b y t e = 10 M | 10M |
2KM×2KM 2 K M × 2 K M | 2000×2000×100÷50=8000000 2000 × 2000 × 100 ÷ 50 = 8000000 (8M) | 8M×5byte=40M 8 M × 5 b y t e = 40 M | 40M |
3KM×3KM 3 K M × 3 K M | 3000×3000×100÷50=18000000 3000 × 3000 × 100 ÷ 50 = 18000000 (18M) | 18M×5byte=90M 18 M × 5 b y t e = 90 M | 90M |
4KM×4KM 4 K M × 4 K M | 4000×4000×100÷50=32000000 4000 × 4000 × 100 ÷ 50 = 32000000 (32M) | 32M×5byte=160M 32 M × 5 b y t e = 160 M | 160M |
5KM×5KM 5 K M × 5 K M | 5000×5000×100÷50=50000000 5000 × 5000 × 100 ÷ 50 = 50000000 (50M) | 50M×5byte=250M 50 M × 5 b y t e = 250 M | 250M |
6KM×6KM 6 K M × 6 K M | 6000×6000×100÷50=50000000 6000 × 6000 × 100 ÷ 50 = 50000000 (72M) | 72M×5byte=360M 72 M × 5 b y t e = 360 M | 360M |
7KM×7KM 7 K M × 7 K M | 7000×7000×100÷50=50000000 7000 × 7000 × 100 ÷ 50 = 50000000 (98M) | 98M×5byte=490M 98 M × 5 b y t e = 490 M | 490M |
8KM×8KM 8 K M × 8 K M | 8000×8000×100÷50=50000000 8000 × 8000 × 100 ÷ 50 = 50000000 (128M) | 128M×5byte=640M 128 M × 5 b y t e = 640 M | 640M |
9KM×9KM 9 K M × 9 K M | 9000×9000×100÷50=50000000 9000 × 9000 × 100 ÷ 50 = 50000000 (162M) | 162M×5byte=810M 162 M × 5 b y t e = 810 M | 810M |
10KM×10KM 10 K M × 10 K M | 10000×10000×100÷50=200000000 10000 × 10000 × 100 ÷ 50 = 200000000 (200M) | 200M×5byte=1G 200 M × 5 b y t e = 1 G | 1G |
从上图可以得出结论:
- 服务器端,必须多进程共享静态场景信息。这样1机器 10KM×10KM 10 K M × 10 K M 的吃掉1G内存
- 如果打算该算法挪至客户端用,则必须限制在2KM之内吧。(不清楚,客户端一般需要吃到多少内存)
这篇关于服务器3D场景建模(四):体素场景(二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!