加载中…
博文
标签:

贴图格式

etc

dxt

pvrtc

分类: Unity3d

因为有不少人都问过我压缩格式的问题,今天飞哥又重新提醒了一次。整理一下发个贴,以供大家查阅和讨论。

各种纹理格式,大家参照下U3D MANUAL里面的具体描述介绍,这是官方的东西。但我觉得有一部内容是错的,例如占用内存大小。

http://docs.unity3d.com/Manual/class-TextureImporter.html

基本知识点:

DXT格式是Nvidia Tegra提供的,ETC是安卓原生支持的,OPNEGL2.0都支持。ETC2只有OPENGL3.0支持,PVRTC是Imagination PowerVR提供的,ATC是Qualcomm Snapdragon提供的。一般来说,IOS只支持PVRTC的压缩格式。一旦相应的贴图格式不兼容的时候,U3D会自动将其转换成RGB(A)格式。最好的兼容是针对GPU进行打包,例如针对小米的都用ATC格式,但一般开发做不到太细化的选择。所有设备对RGB 16BITS/ARGB 16BITS/RGB A16BITS/RGB 24BITS/ARGB 32BITS等支持都很好,只是这些格式算是非压缩格式,对内存消耗和渲染消耗非常不友好。

关于压缩后的在储存上的大小,假设高清(ARGB32)大小为1,那么大概数据如下:

 

标签:

性能优化

渲染管线

优化

图形渲染

drawcall

分类: Unity3d
转载请留下本文原始链接,谢谢。本文会不定期更新维护,最近更新于2013.11.09

主要内容也可以参考:
http://docs.unity3d.com/Documentation/Manual/OptimizingGraphicsPerformance.html

最简单的优化建议:

1.PC平台的话保持场景中显示的顶点数少于200K~3M,移动设备的话少于10W,一切取决于你的目标GPU与CPU。
2.如果你用U3D自带的SHADER,在表现不差的情况下选择Mobile或Unlit目录下的。它们更高效。
3.尽可能共用材质。
4.将不需要移动的物体设为Static,让引擎可以进行其批处理。
5.尽可能不用灯光。
6.动态灯光更加不要了。
7.尝试用压缩贴图格式,或用16位代替32位。
8.如果不需要别用雾效(fog)
9.尝试用OcclusionCulling,在房间过道多遮挡物体多的场景非常有用。若不当反而会增加负担。
10.用天空盒去“褪去”远处的物体。
11.shader中用贴图混合的方式去代替多重通道计算。
12.shader中注意float/half/fixed的使用。
标签:

lightmapping

lightmap

动态

it

分类: Unity3d
(转载请注明出处,本文会偶尔更新,最近更新于2013.07.17)

1.为什么要用Lightmapping?

简单来说就是实时灯光计算十分耗时,随着光源越多会倍增计算耗时。使用Lightmap模拟灯光带来的效果,便不用去计算灯光,会带来性能上的大大提升。当然你不用灯光效果也是没问题的,具体还是看项目需求。最简单的直接在3dmas或maya里面烘培完贴图顶点色也行。

2.为什么要使用LightProbes?

因为场景中都是假光,动态的物体或角色没有受光会很突兀,显得格格不入。若觉得没关系便不需要管了,想要角色也有这样的效果就需要用到LightProbes。

3.Lightmapping入门

这部分我就不写了,我写也不完整,便将自己觉得不错的文章贴出来让大家参考学习。

官方教程:

Lightmapping基本使用方式:
http://docs.unity3d.com/Documentation/Manual/Lightmapping.html

深入了
标签:

nan

time.deltatime

realtimesincestartup

除0

异常

分类: Unity3d
在游戏运行时,代码若写得不安全很容易出现NAN的异常。一旦NAN出现整个游戏不崩溃也坏死掉了,游戏上了则是要被直接打回来的节奏,更是一个开发及测试人员每人都要扣3000块的大BUG。

一般表现为:
1.
transform.rotation assign attempt for 'XXX' is not valid. Input rotation is {NaN, NaN, NaN, NaN}.
2.
Getting an error of rigidbody.force assign attempt for 'XXX' is not valid. Input position is { NaN, NaN, NaN }
3.
transform.localEulerAngles assign attempt for 'XXX' is not valid. Input localEulerAngles is { NaN, 0.000000, -0.000000 }

反正各种各样类似了,有些还不直接报你错,间接来搞你让你找半天。

NAN就是字母意思了,NOT A NUMBER,一般是由于一个数除0造成的,所以若设计有除就要留心去确保安全。

一些简单的计算可以让人更好理解:

1 / 0 = NaN
1 + NaN = NaN
2 * NaN = NaN
标签:

fps

游戏帧数

targetframerate

it

分类: Unity3d
关于FPS,在PC端来说,游戏帧数跑得越高越好,FPS跑得越高游戏就越流畅,当然太高也没什么必要。

不过在手机平台上,游戏帧数跑高了,CPU和GPU负荷相应则会增大。CPU和GPU负荷大的话那代表着其发热量也相应会大很多。发热大可是很糟糕的事情,极大影响游戏体验。

所以也并非帧数越高越好。只要玩起游戏来不卡的话,我觉得这个帧数就可以了。

60帧是非常流畅的帧数,所有最高设为60帧则足够了。30帧的话也勉强能够接受,看大家游戏项目需求是怎么样了。若3D效果不多的话,可以考虑帧速低一点也没关系。

1.UNITY3D设置帧数FPS的方法

3.5以后的版本,可以直接设置Application.targetFrameRate。直接修改脚本就可以了。

using UnityEngine;
using System.Collections;

public class example : MonoBehaviour {
    void Awake() {
        Application.targetFrameRate = 60;
标签:

bug

invalidoperationexce

sync

it

分类: Unity3d
详细信息:
InvalidOperationException: out of sync
System.Collections.Generic.Dictionary`2+Enumerator[UnityEngine.KeyCode,System.Boolean].VerifyState ()
System.Collections.Generic.Dictionary`2+Enumerator[UnityEngine.KeyCode,System.Boolean].MoveNext ()
System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[UnityEngine.KeyCode,System.Boolean].MoveNext ()
InputManager.CheckControleKyes () 
MMOController.FixedUpdate () 


从信息上看来,是用了DICTIONNARY的问题。经过查阅资料,发现问题出在迭代修改DICTIONARY的地方:

foreach (string key in dict.Keys)
{
     temp = dictAssetBundleRefs.TryGetValue(key, out value);
     修改temp的值
     或者删除temp
}

不可以迭代去修改dictionnary,正如我看到一
标签:

unity3d

fbs

0.01

导入模型

模型

分类: Unity3d
这个问题挺常见的,主要是U3D与MAX的单位不一致造成的,常用的解决方法有两个。可以参照下面那个帖子,写得挺不错的,还有一些优化事项。


还有另一个直接将模型导入的0.01设置改过来的方式。直接修改U3D的EDITOR类的导入设置。

在EDITOR里面直接加入以下脚本(Assets/Editor/FBXScaleFix.cs),每次导入模型让其大小直接变为1的正常单位。

using UnityEditor;

public class FBXScaleFix : AssetPostprocessor
{
    public void OnPreprocessModel()
    {
        ModelImporter modelImporter = (ModelImporter) assetImporter;                    
        modelImporter.globalScale = 1;       &
标签:

sql

数据库

字段

类型

大小

it

分类: 个人参考资料
本文转载于http://rekyfly.blog.163.com/blog/static/8972223620113192920803/


1.SYBASE的字段类型如下:

 

个人资料
葱烧烙饼
葱烧烙饼
  • 博客等级:
  • 博客积分:0
  • 博客访问:604,618
  • 关注人气:138
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有