Autodesk Softimage (XSI) ICE 笔记3
2009-07-06 18:30:01| 分类:
Dev Mem
| 标签:
|举报
|字号大中小 订阅
1.Loaction属性不能用于构建数组,使用几何采样节点(Get Geometry Sample)产生的Location(per Point)值使用点数组的形式访问时会导致Softimage(XSI)崩溃
2.尽管ICE的大部分节点支持多线程计算,Repeat循环却是单线程的(即使循环的内容是多线程的),1000次几何循环采样(每帧)就已经导致我无法实时流畅模拟(帧率10左右)。因此,通过Repeat循环进行迭代计算的时候会出现计算效率上的瓶颈,多核心在这种情况下无法发挥全部能量,CPU的单核心频率和内存频率(包括内存时序)会决定Repeat操作的执行效率。
注:我进行了如下测试,通过Repeat每帧循环1000次,每次循环执行:几何体采样并把采样坐标填入预定数组(Reserve Array)。使用Intel Core 2核心的cpu,核心频率在3.0GHz时帧率保持在8.1~8.6之间,频率提升到3.4GHz后成绩保持在10.3~10.8之间。另外,用E6550和Q9550对比测试证实,同频率、同核心类型的双核CPU和四核CPU成绩相同,Repeat节点确实是单线程的。
3.循环中断,这在任何一种编程语言中都有对应的操作指令,但是在ICE中实现循环中断却只能使用比较有限的方法。目前我使用的方法是,在循环过程中满足预定的循环结束条件后,通过If判断输出空操作,这样循环事实上已经在这里结束,剩余的循环将全部执行空操作,而计算机循环执行空操作是飞快的,ICE在这方面也没犯傻。但是,这种方法有点傻,因为尽管已经满足结束循环的条件,Repeat还是会把预定的循环次数执行完…………
4.,Reserve Array(预定数组)在创建时按照预定成员数量一次性向系统申请相应的内存空间。在计算过程中不断添加新成员的时,预定数组可以避免不断为新成员向系统申请内存的状况,从而优化计算效率。
评论这张
转发至微博
转发至微博
评论