A normal cloud model xml wrapper looks more or less like this
- Code: Select all
<?xml version="1.0"?>
<PropertyList>
<path>altocumulus1.ac</path>
<animation>
<object-name>rect</object-name>
<enable-hot type="bool">false</enable-hot>
</animation>
<effect>
<inherits-from>Effects/clouds-thin</inherits-from>
<object-name>rect</object-name>
</effect>
</PropertyList>
and I just added a range tag to that like this
- Code: Select all
<?xml version="1.0"?>
<PropertyList>
<path>altocumulus1.ac</path>
<animation>
<object-name>rect</object-name>
<enable-hot type="bool">false</enable-hot>
</animation>
<effect>
<inherits-from>Effects/clouds-thin</inherits-from>
<object-name>rect</object-name>
</effect>
<animation>
<type>range</type>
<object-name>rect</object-name>
<min-m>0</min-m>
<max-m>31000</max-m>
</animation>
</PropertyList>
What happened cannot be called a complete success - I got a 30% improvement in framerate (good) - but I collided with a cloud - apparently the enable-hot tag was ignored. The weird thing is that I didn't collide with the first cloud I met. I was descending for 30 seconds through a dense layer, during which time I must have crossed probably hundred cloudlets. Since I'm using only six distinct cloudlet models for layers, I must have hit that particular cloud model a few times before without problems.
I checked the obvious thing first and I did not in modifying the files delete the enable-hot tag in a xml file. So my next hypothesis is that there is some cross-talk between animations which can induce errors if a large number (thousands) of models need to be rendered - maybe the order in which one declares animations matters?
I'd really like to keep the 30% gain in framerate - so if anyone who knows the internals of animation handling can advise me if there is a more reliable way to declare clouds as non-substantial objects than I'm doing now, I'd be very happy!