服务器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

相关文章

Python使用Matplotlib绘制3D曲面图详解

《Python使用Matplotlib绘制3D曲面图详解》:本文主要介绍Python使用Matplotlib绘制3D曲面图,在Python中,使用Matplotlib库绘制3D曲面图可以通过mpl... 目录准备工作绘制简单的 3D 曲面图绘制 3D 曲面图添加线框和透明度控制图形视角Matplotlib

Java Spring 中 @PostConstruct 注解使用原理及常见场景

《JavaSpring中@PostConstruct注解使用原理及常见场景》在JavaSpring中,@PostConstruct注解是一个非常实用的功能,它允许开发者在Spring容器完全初... 目录一、@PostConstruct 注解概述二、@PostConstruct 注解的基本使用2.1 基本代

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

springboot上传zip包并解压至服务器nginx目录方式

《springboot上传zip包并解压至服务器nginx目录方式》:本文主要介绍springboot上传zip包并解压至服务器nginx目录方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录springboot上传zip包并解压至服务器nginx目录1.首先需要引入zip相关jar包2.然

将Java项目提交到云服务器的流程步骤

《将Java项目提交到云服务器的流程步骤》所谓将项目提交到云服务器即将你的项目打成一个jar包然后提交到云服务器即可,因此我们需要准备服务器环境为:Linux+JDK+MariDB(MySQL)+Gi... 目录1. 安装 jdk1.1 查看 jdk 版本1.2 下载 jdk2. 安装 mariadb(my

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

SpringBoot应用中出现的Full GC问题的场景与解决

《SpringBoot应用中出现的FullGC问题的场景与解决》这篇文章主要为大家详细介绍了SpringBoot应用中出现的FullGC问题的场景与解决方法,文中的示例代码讲解详细,感兴趣的小伙伴可... 目录Full GC的原理与触发条件原理触发条件对Spring Boot应用的影响示例代码优化建议结论F

SpringBoot条件注解核心作用与使用场景详解

《SpringBoot条件注解核心作用与使用场景详解》SpringBoot的条件注解为开发者提供了强大的动态配置能力,理解其原理和适用场景是构建灵活、可扩展应用的关键,本文将系统梳理所有常用的条件注... 目录引言一、条件注解的核心机制二、SpringBoot内置条件注解详解1、@ConditionalOn

Python 迭代器和生成器概念及场景分析

《Python迭代器和生成器概念及场景分析》yield是Python中实现惰性计算和协程的核心工具,结合send()、throw()、close()等方法,能够构建高效、灵活的数据流和控制流模型,这... 目录迭代器的介绍自定义迭代器省略的迭代器生产器的介绍yield的普通用法yield的高级用法yidle

C++ Sort函数使用场景分析

《C++Sort函数使用场景分析》sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变,如果某些场景需要保持相同元素间的相对顺序,可使... 目录C++ Sort函数详解一、sort函数调用的两种方式二、sort函数使用场景三、sort函数排序