Project1
标题:
今天闲的测了一下RGSS1和3的Bitmap效率
[打印本页]
作者:
SailCat
时间:
2016-2-24 13:18
标题:
今天闲的测了一下RGSS1和3的Bitmap效率
测试的代码大概长这样
#建一个bitmap
t=Time.now
loop do
#测什么东西
t1 = Time.now
break when t1-1 >1.0 / 40 #这里本来是Graphics.frame_rate考虑到XP和VA不一样就统一成了40
end
然后打印循环的次数
结果亮了……说好的“高效图形引擎”RGSS3呢?
draw_text(1字符):RGSS1:每帧大概能执行700次;RGSS3:每帧大概能执行225次(描边关闭、阴影关闭的情况下)
draw_text(20字符):RGSS1:每帧大概能执行30次;RGSS3:每帧大概能执行17次(描边关闭、阴影关闭的情况下)
如果在RGSS1里手工实现描边,并将RGSS3的相关选项开启(默认开启)
draw_text(1字符):RGSS1:每帧大概能执行70次;RGSS3:每帧大概能执行125次
draw_text(10字符):RGSS1:每帧大概能执行24次;RGSS3:每帧大概能执行24次
draw_text(20字符):RGSS1:每帧大概能执行17次;RGSS3:每帧大概能执行17次
draw_text(30字符):RGSS1:每帧大概能执行11次;RGSS3:每帧大概能执行10次
blt:RGSS1:每帧大概能执行62-68次;RGSS3:每帧大概能执行57-71次
stretch_blt:两个差不多,和dest_rect的大小正相关,如果src_rect比原来的小(需要放大)有额外的花费
set_pixel: RGSS1:每帧大概能执行11000-12000次;RGSS3:每帧大概能执行7000-8000次(宝宝你吓到我了!)
get_pixel: 上面的2倍……
fill_rect: RGSS1和3:每帧大概能执行780-810次
gradient_fill_rect: RGSS1无此功能,RGSS3:每帧大概能执行13次(横向)或426次(纵向)……这差别太大了吧
clear_rect: RGSS1无此功能,RGSS3:每帧大概能执行880-900次
blur: RGSS1无此功能,RGSS3:每帧大概能执行1次
作者:
精灵使者
时间:
2016-2-24 15:47
#=============================================================================
# ■ Bitmap重定义
#=============================================================================
class Bitmap
def blur(strength = 1, opacity = 10)
(-strength).upto(strength) do |x|
(-strength).upto(strength) do |y|
next if x.zero? and y.zero?
src_rect = Rect.new(0, 0, width - x, height - y)
blt(x, y, self, src_rect, opacity)
end
end
end
end
复制代码
精灵放一段忧雪的黑科技
作者:
紫英晓狼1130
时间:
2016-2-24 16:06
猫大真是好厉害的
作者:
taroxd
时间:
2016-2-24 16:19
官方哪里说过 RGSS3 的图形处理能力比 RGSS1 高效了?
至少连 Bitmap 的存储方式都没变过来着
作者:
晴兰
时间:
2016-2-25 13:23
提示:
作者被禁止或删除 内容自动屏蔽
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1