通过组合mesh优化资源

using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class ConbineOpMesh : MonoBehaviour {

void Start () {
CombineToMesh (this.gameObject);
}

public void CombineToMesh(GameObject _go)
{
SkinnedMeshRenderer[] smr = _go.GetComponentsInChildren<SkinnedMeshRenderer> ();
List<CombineInstance> lcom = new List<CombineInstance> ();

List<Material> lmat = new List<Material> ();
List<Transform> ltra = new List<Transform> ();

for(int i = 0; i < smr.Length; i++)
{
lmat.AddRange(smr[i].materials);
ltra.AddRange(smr[i].bones);
for(int sub = 0; sub < smr[i].sharedMesh.subMeshCount; sub++)
{
CombineInstance ci = new CombineInstance();
ci.mesh = smr[i].sharedMesh;
ci.subMeshIndex = sub;
lcom.Add(ci);
}
Destroy (smr[i].gameObject);
}
SkinnedMeshRenderer _r = _go.GetComponent<SkinnedMeshRenderer> ();
if(_r == null)
{
_r = _go.AddComponent<SkinnedMeshRenderer>();
}
_r.sharedMesh = new Mesh ();
_r.bones = ltra.ToArray ();
_r.materials = new Material[]{lmat[0]};
_r.rootBone = _go.transform;
_r.sharedMesh.CombineMeshes (lcom.ToArray(),true,false);
}

void Update () {

}
}

时间: 2024-10-13 11:50:35

通过组合mesh优化资源的相关文章

前端性能优化 - 资源预加载

转帖: https://css-tricks.com/prefetching-preloading-prebrowsing 当提到前端性能优化时,我们首先会联想到文件的合并.压缩,文件缓存和开启服务器端的 gzip 压缩等,这使得页面加载更快,用户可以尽快使用我们的 Web 应用来达到他们的目标. 资源预加载是另一个性能优化技术,我们可以使用该技术来预先告知浏览器某些资源可能在将来会被使用到. 引用 Patrick Hamann 的解释: 预加载是浏览器对将来可能被使用资源的一种暗示,一些资源可

HDU 4465 Candy(组合+log优化)

题目大意:给你两个罐子,里面有糖果每次只能从一个罐子里面取一个糖果,打开A的概率为p,问当一个罐子取完之后,另一个罐子剩糖果的期望是多少. 我们可以知道最少是取第n+1次的时候才会有一个罐子为空,我们可以推出组合公式: (n-k)*C(n+k, k)*((1-p)^(n+1)*p^k+(1-p)^k*p^(n+k)):0 <= k && k <= n-1. 求一个和就是所有的组合情况了,但是组合数很大我们可以用log来进行优化. 我们已知:C(n,m) = m!/n!/(m-n

使用 webpack 优化资源

在前端应用的优化中,对加载资源的大小控制极其的重要,大多数时候我们能做的是在打包编译的过程对资源进行大小控制.拆分与复用.本片文章中主要是基于 webpack 打包,以 React.vue 等生态开发的单页面应用来举例说明如何从 webpack 打包的层面去处理资源以及缓存,其中主要我们需要做的是对 webpack 进行配置的优化,同时涉及少量的业务代码的更改. 同时对打包资源的分析可以使用 webpack-bundle-analyzer 插件,当然可选的分析插件还是很多的,在本文中主要以该插件

cocos2d-x 图片纹理优化 资源加载方案

原文地址:http://blog.sina.com.cn/s/blog_64d591e80101me1y.html 文章主要解决了我一直以来疑惑的几个问题 1.到底用不用2的N次幂的图片 2.为什么加载资源的时候,内存会突然飙高 3.内存突然飙高的解决方案 4.如何解决程序在加载资源卡的问题 首先是cocos2d-x官网上的优化建议 一帧一帧载入游戏资源 减少绘制调用,使用"Use CCSpriteBatchNode" 载入纹理时按照从大到小的顺序 避免高峰内存使用 使用载入屏幕预载入

前端性能优化 – 资源预加载

导语    当提到前端性能优化时,我们首先会联想到文件的合并.压缩,文件缓存和开启服务器端的 gzip 压缩等,这使得页面加载更快,用户可以尽快使用我们的 Web 应用来达到他们的目标. 资源预加载是另一个性能 当提到前端性能优化时,我们首先会联想到文件的合并.压缩,文件缓存和开启服务器端的 gzip 压缩等,这使得页面加载更快,用户可以尽快使用我们的 Web 应用来达到他们的目标. 资源预加载是另一个性能优化技术,我们可以使用该技术来预先告知浏览器某些资源可能在将来会被使用到. 引用 Patr

使用android-resource-remover优化资源使用率和lint-result.xml如果导出

安装教程:http://blog.csdn.net/mlj1668956679/article/details/38643145 按照上面教程中.下载了 get-pip.py.后一运行出现这个问题 ascii codec can't decode byte 0xe8 in posit 解决方法: 像图片那样加入下面三句话 import sys reload(sys) sys.setdefaultencoding('gbk') 重点在于 至于lint-result.xml是怎么来呢?? 我个人比较

组合神经优化涉及的一些知识

---恢复内容开始--- 1/ 注意力机制(attention mechanism) https://lilianweng.github.io/lil-log/2018/06/24/attention-attention.html 2/Pointer network https://www.translatoruser-int.com/translate?&to=en&csId=fa917e53-e092-4c2a-88c3-450a2fe4bf4e&usId=b194361b-a

Spark记录-Spark性能优化(开发、资源、数据、shuffle)

开发调优篇 原则一:避免创建重复的RDD 通常来说,我们在开发一个Spark作业时,首先是基于某个数据源(比如Hive表或HDFS文件)创建一个初始的RDD:接着对这个RDD执行某个算子操作,然后得到下一个RDD:以此类推,循环往复,直到计算出最终我们需要的结果.在这个过程中,多个RDD会通过不同的算子操作(比如map.reduce等)串起来,这个"RDD串",就是RDD lineage,也就是"RDD的血缘关系链". 我们在开发过程中要注意:对于同一份数据,只应该

X86服务器虚拟化的资源划分和性能优化

概述:虚拟化是一个广义术语,通常是指计算元件在虚拟的基础上而不是真实的基础上运行,是一个为了简化管理,优化资源的解决方案.服务器虚拟化则是一项用以整合基于x86服务器,来提高资源利用效率和性能的技术.本文从企业业务系统和管理角度出发,着重分析研究了X86技术架构下,虚拟网卡与SR-IOV.NUMA.虚拟磁盘格式相应的特点,并探索了不同应用场景下的资源划分和性能优化方案,希望能够通过多应用系统下的实践和最优配置,来提高X86服务器的性能和资源利用效率.1 x86虚拟化两种常见的架构对于x86虚拟化