色温

调整白平衡之前有必要说明一下色温的问题!

A:不同时刻直射日光的色温值(K):
中午日光 5500
日落前二小时 4300
日出后40分钟 2900
日落前30分钟 2300
日出日落时 1900
日出后20分钟 2100
日出后30分钟 2400
日出后一个半小时 4000
日出后二小时 4400

B:不同季节和天气情况下自然光的色温值:
自然光的变化 3-5月 6 -8月 9-10月 11-12月
直射日光9-15时 5800 5800 5550 5500
直射9时前15时后 5400 5600 5000 4900
日光+天空光9-15时 6500 6500 6200 6200
日光+天空光9前15后 6100 6200 5900 5700
日光+天空光 5900 5800 5900 5700
阴天 6700 6950 6750 6500
蓝色天空 27000 14000 12000 12000

C:常见人工光源的色温值:
电子闪光灯光 5300-6000
高色温碳弧灯 5500
500W高色温摄影灯 3200
摄影卤素灯光 3000-4000
75W普通灯泡 2800
40W普通灯泡 2650
100W普通灯泡 2900
200W普通灯炮 2980
500W摄影泛光灯 3400
1300W新闻碘钨灯 3200
1000-5000W卤素灯 5000-6000
白色碳弧灯 5000
蜡烛光 1850
烛焰 1500
家用白灯 2500-3000
60瓦的充气钨丝灯 2800
100瓦的钨丝灯 2950
1000瓦的钨丝灯 3000
500瓦钨丝灯 3175
500瓦的投影灯 2865
3200K的泛光灯 3200
琥珀闪光信号灯 3200
R32反射镜泛光灯 3200
锆制的浓弧光灯 3200
1,2,4号泛光灯,反射镜泛光灯 3400
暖色的白荧光灯 3500
切碎箔片,清晰闪光灯信号 3800
冷色的白荧光灯 4500
白昼的泛光灯 4800
白焰碳弧灯 5000
M2B闪光信号灯 5100
高强度的太阳弧光灯 5550
蓝闪光信号灯 6000
白昼的荧光灯 6500
高速电子闪光管 7000
来自灰蒙天空的光线 7500-8400
来自晴空蓝天的光线 10000-20000
在水域上空的晴朗蓝天 20000-27000

类一定要继承

问题描述
今天做Denizen Box, 遇到一个奇怪的问题,问题描述如下:

2011-03-29 11:35:14.237 Box[6271:207] *** NSInvocation: warning: object 0x117c98 of class ‘Config’ does not implement doesNotRecognizeSelector: — abort

问题分析
看到Config.h里:

@interface Config

没有继承任何类

问题解决
改成:

@interface Config : NSObject

一切安逸了。

iPad 图片加载效率

应朋友要做一个家具360展示的iPad App,故做了一些图片加载的效率测试。之前做AD杂志,也是遇到iPad加载图片速度不快的问题,特别是大图。

今天做了一些测试,本测试使用的是cocos2d类库。最终效果由5个层叠加而成:主背景层、壁纸层、地毯层、沙发层、茶几层,都是带透明通道的。

首先,用1920×1080图片进行测试,5层一套加载时间为2秒多。1层加载完成帧率是30,5层加载完成帧率8.6。

再次,用1024×768图片进行测试,5层一套加载时间为1秒多。1层加载完成帧率是30,5层加载完成帧率7.5。

以上为模拟器上测试,真机上测试结果差不多,但是帧率会高很多。采用单张图片即时load速度肯定跟不上,所以以下测试采用预load图片的方法进行测试。

用1024×768图片(每张图片500K左右)1层进行测试,预load内存到25M的时候内存不足,iPad中止。模拟器上因为没有内存限制,load好后非常流畅。

压缩图片到每张50K,用1层640×480带透明通道的图片拉大到1024×768,在真机上可以跑到60帧。但是当用2层640×480图片进行测试,发现内存急速增长,在内存使用达到20M的时候崩溃自动推出。说明,带透明图层不光会占用CPU资源,对内存资源也消耗巨大。在今年iOS开发者大会上,美国佬也是腔调了这一点,能关透明的时候尽量关闭透明,以增加帧率。

后缩小第二层图片的尺寸,内存还是几何型增长。最后放弃了多图层。

所以360展示,现在只能使用一张图片,而不能使用多图层叠加方式。

cocos2d 0.99.5需要手动开启多点触摸支持

问题描述
这几天做Denizen Box,碰到不支持多点触摸,只能单点。

问题分析
使用的代码和之前Puzzle使用的是一样,唯一不同的是类库的版本。
Box使用的是cocos2d 0.99.5,而Puzzle使用的是cocos2d 0.99.4。

问题解决
0.99.5取消了自动多触点支持,所以要手动启用。

在AppDelegate.m的- (void) applicationDidFinishLaunching:(UIApplication*)application中加入:
viewController.view.multipleTouchEnabled = YES;