游戏中开启MipMap会导致纹理消耗内存增大多少

当物体与投影面的距离发生变化的时候,物体在投影面的大小也发生着变化,如果此时还是用一张尺寸大,分辨率高的纹理就会过分的消耗GPU的性能,所以我们有了MipMap可以生成一组分辨率逐渐降低的纹理序列,可是当我们开启MipMap的时候他究竟会比没有开内存相差多少?

来源:https://en.wikipedia.org/wiki/Mipmap

先看一下他们的大小总和:

T(n) = 1 + 1/4 + 1/16 + 1/64 + ......1/4^n

然后我们求解这个公式可得:

其中:

1/4 + 1/16 + 1/64 + ......1/4^n = 1/4 + 1/4(1/4 + 1/16 + 1/64 + ......1/4^(n-1))

1/4 + 1/16 + 1/64 + ......1/4^n - 1/4(1/4 + 1/16 + 1/64 + ......1/4^(n-1)) = 1/4

因为接近于无穷 所以可约等于:

3/4(1/4(1/4 + 1/16 + 1/64 + ......1/4^n) = 1/4

然后将左右两侧除以3/4可得

(1/4(1/4 + 1/16 + 1/64 + ......1/4^n) ≈ 1/3

所以T(n) =1 + 1/3

所以开启MipMap之后产生的内存消耗与没有开启相差 4/3倍

时间: 2024-08-03 09:32:04

游戏中开启MipMap会导致纹理消耗内存增大多少的相关文章

手机游戏开发中如何选择适合的纹理格式

为毛要写这个 本来觉得像这样的问题,是无法归类的,因为不同的项目有不同的需求,但今天因为quick论坛中的一个技术疑问贴,钩起了我整理这篇文章的兴趣 http://www.cocoachina.com/bbs/read.php?tid=214811 于是,我决定尽力描述一下纹理格式选择方面的问题,一是起到一个科普的作用,因为目前没有发现十分完整的讲这方面的文章.二是整理一下自己的思路. 当然,这些东西肯定不是我自己凭空YY出来的,我也是参考了不少文章,也从项目中总结了一些问题.在此先列出一些链接

cocos2dx 游戏中内存优化

全文如下: 我目前正完成我的最后一个合约项目.在这个项目的最后阶段,我需要考虑的一件事情就是如何优化游戏的内存使用. 在今天的iDevBlogADay文章中,我将向大家讲述,我是如何减少25-30MB游戏内存消耗的(现在游戏消耗内存90-95MB,我还通过这个过程,消除了一些由于内存警告而引起的程序崩溃问题).同时,我还将游戏程序的大小从25MB减少到了20MB以下(如果苹果没有在不久前将蜂窝网下载应用的限制从20MB提高到50MB的话,那么我这个小的优化就太棒了,它可以潜在地给我带来更多的下载

全屏游戏中自动切出到桌面的问题解决

近期遇到一个客户全屏游戏中,自动切出游戏到桌面的问题,于是到现场解决.     打开游戏<英雄联盟>测试,并开启前端进程监测软件监测.一段时间过后,游戏切出,发现一个名称为"DeskTopHelper.exe"的进程.如图: 好吧,那么看一看这个进程是哪个软件带的吧.打开PROCESS EXPLORER,查看一下,如图: 通过进程关系,并进一步查找文件目录得知,这个进程是"95网吧大师的进程".那么得知是哪个软件导致的,解决办法就不用再说了吧. 附上工具

漫谈游戏中的人工智能

写在前面   今天我们来谈一下游戏中的人工智能.当然,内容可能不仅仅限于游戏人工智能,还会扩展一些其他的话题. 游戏中的人工智能,其实还是算是游戏开发中有点挑战性的模块,说简单点呢,是状态机,说复杂点呢,是可以帮你打开新世界大门的一把钥匙.有时候看到知乎上一些可能还是前公司同事的同学的一些话,感觉还是挺哭笑不得的,比如这篇:http://zhi.hu/qu1h,吹捧机器学习这种玄学,对游戏开发嗤之以鼻.我只能说,技术不到家.Vision不够,这些想通过换工作可培养不来. 这篇文章其实我挺早就想写

游戏中的定时器

写在前面 游戏中处处都有定时器,基本上每个逻辑部分我们都能看到定时器的影子.如果翻看一下以前网上流传的一些MMO的代码,比如mangos的,比如大唐的,比如天龙的,我们都可以看到形形色色的定时器实现. 在以前,很多程序员用起来C++还都是在用C with Object,以前的C++写callback也好异步也好总是感觉哪里不对劲的样子,所以网上流传的那种线上服务器的代码,一般都是往主循环里硬塞定时器逻辑. 定时器在很多能参考到的代码里都是逻辑和底层不做区分的,这样就会导致一些问题.一方面,底层的

游戏中的三角学——Sprite Kit 和 Swift 教程(1)

原文链接 : Trigonometry for Games – Sprite Kit and Swift Tutorial: Part 1/2 原文作者 : Nick Lockwood 译文出自 : 开发技术前线 www.devtf.cn 译者 : kmyhy 更新 2015/04/20:升级至 Xcode 6.3 和 Swift 1.2 更新说明:这是我们广受欢迎的教程之一的第三个版本--第一个版本是 Cocos2D 的,由 Matthijs Hollemans 缩写,第二个版本由 Tony

游戏中精灵对象的属性功能设计

我们大部分it人事可能都玩过游戏,且不止一款游戏,都知道游戏有属性: 在游戏中,包含哪些属性,时候数值策划而定: 属性牵涉三个大问题, 1,属性不管是前期还是后期变更可能会非常大: 2,存在不同的属性系统,比如人物基础属性,坐骑属性,宠物属性等: 3,属性计算:属性最终计算: 第一条和第二条,是非常息息相关的功能块设计:需要做到统一,方便,且可扩展性设计: 有且是对策划在配置各种属性,各种系统中去配置属性,既要他们方便配置,思路清晰,又要方便程序扩展,转化: 1 package com.game

[Unity]制作游戏中名字板的过程记录(未完成)

先大概说一下需求: 1 每个模型上都要有名字板:人.怪.npc等等. 2 名字板上会显示:名字(文字).血条(图片)等 3 因为是透视相机,名字板离得太近会变得超大,且主角移动,名字板的位置相对于相机来说是一直变化的,因此有Update一直在计算名字板的大小以及朝向Camera 刚开始接到需求用的是UGUI+NGUI实现的,每个名字板占用4.5个batches(1种字体+3个图集).但当游戏中怪物多了,10个怪就有差不多50个batches,以后会有更多同屏需求,因为需要改进. 尝试使用Supe

Unity优化方向——在Unity游戏中优化脚本(译)

原文地址:https://unity3d.com/cn/learn/tutorials/topics/performance-optimization/optimizing-scripts-unity-games?playlist=44069 介绍 当我们的游戏运行时,我们设备的中央处理器(CPU)执行指令.游戏的每一帧都需要执行数百万的CPU指令.为了保持平滑的帧率,CPU必须在规定的时间内执行指令.当CPU不能及时执行所有指令时,我们的游戏可能会变慢.卡顿. 许多事情会导致CPU有太多的工作