服务器3D场景建模(四):体素场景(二)

2024-09-02 22:48

本文主要是介绍服务器3D场景建模(四):体素场景(二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

(提示:体素相关文章参考至http://gad.qq.com/article/detail/10014)

跳跃、飞行

跳跃 飞行

  1. 行走需要的角色信息:

    a. 角色位置信息: (x, y, z, layer, dynamicId)
    b. 角色跳跃、飞行的方向: dirX、dirY、dirZ

  2. 跳跃、飞行的碰撞校验步骤为:

    Created with Raphaël 2.1.2 Start 获取当前体素信息v0 获取目标体素信息v1 获取layer1所有动态体素信息d1(如果有的话) 获取layer1+1层静态体素信息v2(如果有的话) v1的mask检查通过 检查角色与v1没有碰撞 检查角色与d1没有碰撞 检查角色与v2没有碰撞 跳跃、飞行 End yes no yes no yes no yes no

    上图,同样省略了玩家间的碰撞。

内存占用

  1. 忽略动态场景信息

    这些信息根据玩法偶尔才会有,因此可以忽略之

  2. 连通信息

    有连通信息的网格非常少,因此可以忽略之

  3. 一个网格需要内存占用量:

    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场景建模(四):体素场景(二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1131292

相关文章

NFS实现多服务器文件的共享的方法步骤

《NFS实现多服务器文件的共享的方法步骤》NFS允许网络中的计算机之间共享资源,客户端可以透明地读写远端NFS服务器上的文件,本文就来介绍一下NFS实现多服务器文件的共享的方法步骤,感兴趣的可以了解一... 目录一、简介二、部署1、准备1、服务端和客户端:安装nfs-utils2、服务端:创建共享目录3、服

在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码

《在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码》在MyBatis的XML映射文件中,trim元素用于动态添加SQL语句的一部分,处理前缀、后缀及多余的逗号或连接符,示... 在MyBATis的XML映射文件中,<trim>元素用于动态地添加SQL语句的一部分,例如SET或W

VUE动态绑定class类的三种常用方式及适用场景详解

《VUE动态绑定class类的三种常用方式及适用场景详解》文章介绍了在实际开发中动态绑定class的三种常见情况及其解决方案,包括根据不同的返回值渲染不同的class样式、给模块添加基础样式以及根据设... 目录前言1.动态选择class样式(对象添加:情景一)2.动态添加一个class样式(字符串添加:情

Python项目打包部署到服务器的实现

《Python项目打包部署到服务器的实现》本文主要介绍了PyCharm和Ubuntu服务器部署Python项目,包括打包、上传、安装和设置自启动服务的步骤,具有一定的参考价值,感兴趣的可以了解一下... 目录一、准备工作二、项目打包三、部署到服务器四、设置服务自启动一、准备工作开发环境:本文以PyChar

Apache Tomcat服务器版本号隐藏的几种方法

《ApacheTomcat服务器版本号隐藏的几种方法》本文主要介绍了ApacheTomcat服务器版本号隐藏的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需... 目录1. 隐藏HTTP响应头中的Server信息编辑 server.XML 文件2. 修China编程改错误

如何在一台服务器上使用docker运行kafka集群

《如何在一台服务器上使用docker运行kafka集群》文章详细介绍了如何在一台服务器上使用Docker运行Kafka集群,包括拉取镜像、创建网络、启动Kafka容器、检查运行状态、编写启动和关闭脚本... 目录1.拉取镜像2.创建集群之间通信的网络3.将zookeeper加入到网络中4.启动kafka集群

Python如何实现 HTTP echo 服务器

《Python如何实现HTTPecho服务器》本文介绍了如何使用Python实现一个简单的HTTPecho服务器,该服务器支持GET和POST请求,并返回JSON格式的响应,GET请求返回请求路... 一个用来做测试的简单的 HTTP echo 服务器。from http.server import HT

java中VO PO DTO POJO BO DO对象的应用场景及使用方式

《java中VOPODTOPOJOBODO对象的应用场景及使用方式》文章介绍了Java开发中常用的几种对象类型及其应用场景,包括VO、PO、DTO、POJO、BO和DO等,并通过示例说明了它... 目录Java中VO PO DTO POJO BO DO对象的应用VO (View Object) - 视图对象

如何安装 Ubuntu 24.04 LTS 桌面版或服务器? Ubuntu安装指南

《如何安装Ubuntu24.04LTS桌面版或服务器?Ubuntu安装指南》对于我们程序员来说,有一个好用的操作系统、好的编程环境也是很重要,如何安装Ubuntu24.04LTS桌面... Ubuntu 24.04 LTS,代号 Noble NumBAT,于 2024 年 4 月 25 日正式发布,引入了众

如何提高Redis服务器的最大打开文件数限制

《如何提高Redis服务器的最大打开文件数限制》文章讨论了如何提高Redis服务器的最大打开文件数限制,以支持高并发服务,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录如何提高Redis服务器的最大打开文件数限制问题诊断解决步骤1. 修改系统级别的限制2. 为Redis进程特别设置限制