您的位置:首页 > 其它

如何编写更好的MaxScript

2015-07-14 14:04 134 查看


如何使MaxScript更快?

对场景物体进行更改时,关闭视图刷新

当使用MaxScript更改物体,Max会尝试更新物体在视图中的变化。当需要做很多更改时(例如在一个for循环中),如果希望MaxScript能够执行的更快,可以在循环中关闭视图刷新,执行完所有更改后重新开启。可以使用 "redraw off" 以及 disableSceneRedraw() , enableSceneRedraw() 来设置是否开启视图刷新。

关于相关方法参阅MaxScript Reference中的 :

Redraw

Refreshing the Viewports

必要时关闭撤销

撤销系统消耗较多内存并降低速度。

关于相关方法参阅MaxScript Reference中的 :

undo

修改面板会导致缓慢,必要时切换至创建面板。

关于相关方法参阅MaxScript Reference中的 :

suspendEditing() ,resumeEditing()

MAX Commands

Command Panels

永远不要在你可以获取一行像素的时候去获取单个的像素。

可以使用Mapped Function的时候,不要使用for循环

尽量减少计算次数

fn test4a inVal =

(

local res = 0

for i = 1 to 100 do res += ((inVal * 10) + i)

res

)

fn test4b inVal =

(

local res = 0

local temp = inVal * 10

for i = 1 to 100 do res += (temp + i)

res

)

循环100000 次:

test4a 0 -- 20562 msec.

test4b 0 -- 17797 msec.

缓存经常使用的对象和函数

Dice your data into smaller pieces.

尽可能使用BitArray而不是Array

如果知道Array的大小,应当在使用前进行初始化

递归函数可以更快

MatchPattern 要比FindString更快

若非必要,不要使用 return, break, exit , continue

需要较长的字符串时使用 StringStream

可以使用Name值的时候不要使用string

若非必要,不要使用Execute

如何使MaxScript更好?

尽可能避免全局变量
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: