当前位置:  开发笔记 > 编程语言 > 正文

金属中的多个模型.怎么样?

如何解决《金属中的多个模型.怎么样?》经验,为你挑选了1个好方法。

没有一种推荐方式.当你在Metal这么低的水平上工作时,有很多种可能性,你选择的那种很大程度上取决于你想要/需要优化的情况和性能特征.如果您只是在玩介绍项目,那么大多数决策都是无关紧要的,因为在您扩展到"真正的"项目之前,性能问题不会受到影响.

通常,游戏引擎每个模型使用一个缓冲区(或一组顶点/索引缓冲区),特别是如果每​​个模型需要不同的渲染状态(例如着色器,绑定纹理).这意味着当将新模型引入场景或不再需要旧模型时,可以将必需的资源加载到GPU存储器中/从GPU存储器移除(通过创建/销毁MTL对象).

当你改变缓冲区时,用于从同一缓冲区的(不同部分)进行多次绘制的主要用例.例如,在第n帧上,您使用缓冲区的第一个1KB进行绘制,同时您在新顶点数据中计算/流式传输并将其写入缓冲区的第二个1KB ...然后第n + 1帧,你切换缓冲区的哪些部分用于什么.



1> rickster..:

没有一种推荐方式.当你在Metal这么低的水平上工作时,有很多种可能性,你选择的那种很大程度上取决于你想要/需要优化的情况和性能特征.如果您只是在玩介绍项目,那么大多数决策都是无关紧要的,因为在您扩展到"真正的"项目之前,性能问题不会受到影响.

通常,游戏引擎每个模型使用一个缓冲区(或一组顶点/索引缓冲区),特别是如果每​​个模型需要不同的渲染状态(例如着色器,绑定纹理).这意味着当将新模型引入场景或不再需要旧模型时,可以将必需的资源加载到GPU存储器中/从GPU存储器移除(通过创建/销毁MTL对象).

当你改变缓冲区时,用于从同一缓冲区的(不同部分)进行多次绘制的主要用例.例如,在第n帧上,您使用缓冲区的第一个1KB进行绘制,同时您在新顶点数据中计算/流式传输并将其写入缓冲区的第二个1KB ...然后第n + 1帧,你切换缓冲区的哪些部分用于什么.

推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有