Changing frame format causes noicon texture to appear at frame one

Article needs peer review

Symptom

Your scene contains objects with 2D textures. By default, the frame rate for each texture is set to 29.97 frames per second (fps). You save your scene with a Frame format of 24fps (Film 24). After loading your scene, you then discover that NoIcon (default XSI) 2D textures render at frame one ( 1 ).

</font HTMLFixup>



Cause <DIR>

All your image sources (your textures) are effectivly set to 29.97fps as frame rate. But your current playback frame rate is set to 24fps. And the current time in the time line is set to 1 (in frame). And it appears that all your image sources were created and your scene was saved while the playback frame format was set to 24fps. Doing so, all your texture time control values are set accordingly: clip-in, clip-out, start-offset,...result in & out.

In other words, the time control values are set according to your current playback frame rate at the creation time, and persisted as well... Just take a look at the time control of all of your textures, and you will see the following values:

clip-in : 0
clip-out : 0
start-offset: 0
result-in : 0
result-out : 1
(a result-out set to 1 means that frame 1 is excluded!!, you are out of the sequence)
duration : 1

But just loading back your scene (created & saved at 24fps) and changing the playback frame rate to 29.97, to be in sync with all your textures' frame rate is not enought, and does not solve the problem. Because all internal values in the time control are kept in seconds and persisted as well. Simply change your playback frame rate to 29.97 after loading your scene, and check again values in your textures' time control properties. You should see this:

clip-in : 0
clip-out : 0
start-offset: 0
result-in : 0
result-out : 1.2
duration : 1.2

Because all your textures are still images, a result-out & duration set to1.2 is incorrect. A result-in of 0 and result-out of 1.2 means my sequence is valid in the range [0-1.2[ (1.2 excluded, all values in frame). With such time control values, the system thinks your textures are sequences of 2 frames, from frame 0 to frame 1... And because your current time is set to frame 1, you ask for frame 1 on all textures, but this frame does not exist for any textures. When you ask for a frame which does not exist in a source, it does return the noIcon.pic image. In XSI, all still images used as textures are considered in fact as a sequence of one (1) frame (duration 1), starting from frame 0 (clip-in 0, start-offset 0) to frame 0 (clip-out 0). Time control values are set like this by default:

</DIR>

clip-in : 0
clip-out : 0
start-offset: 0
result-in : 0
result-out : 1
duration : 1
extrapolation-after & before: hold, 0

So at any time, you will get frame 0... If time control values have been changed, you may get unexpected results... But with a result-out and duration set to 1.2, when you ask for frame 1(this is the current time in your scene), and 1 is in the range [0-1.2[ (the valid range of all your textures), this means there should be a frame 1 in all of your textures, but this is not the case obviously!! That's why you get the noIcon.pic at certain frames.



Solution <DIR>

To fix the problem, simply set your current start time to zero (0) (all your textures are valid at this time, even if result-out & duration are set to 1.2). Or, just save your scene again with the playback frame format set to 29.97fps, and load the scene back...

That's it!!

</DIR>



References

The Playback Editor
SOFTIMAGE|XSI_1.0: Animating Document, page 36.

Using Image Sources & Image Clips
SOFTIMAGE|XSI_1.0: Shaders, Lights, & Cameras, page 95.</P>


Applies To: XSI 1.0 on NT,Win2K,Irix

Posted: 11/24/2000

This page was last modified 09:56, 22 Nov 2005.
This page has been accessed 106446 times.