Tuesday, August 04, 2020

Lots of Argus and the Arrow of Time

Well, today Blogger has switched to a horrid interface. The post list now fills the screen with big chunky looking posts, and so few per page. I'm also lacking the ability to italicise my text here. This annoyance put me off posting yesterday, but I'll brave it now. This text editor part is fine (despite being less efficient than the old one - a horrid blocky 'labels' list that shows a tiny few labels at a time, the End key now jumps to the end of the paragraph rather than the line, no spell checking); but it's the post list with huge unnecessary images that is the worst aspect.

Good progress on Argus. I can now render an animation and step forwards or backwards. Stepping forwards is easy, it's a matter of updating the current position by one tick, but stepping backwards isn't because you have to essentially go back to the first appearance of an actor or object then run through every change and step to work out what the scene should look like now. It's weird how this happens... I'm sure this has some analogue in real physics (just as my matrix calculations for the perspective and 3D display are remarkably similar to those use in quantum physics to calculate the appearance of the actual world).

Ultimately, starting at the start of a film and running to a frame, at least now, is a fast job, far faster than pre-calculating a Prometheus tune, which takes many seconds (this is mainly because in music there are 44100 samples per second to calculate, I only have 30 frames per second here).

I expect things will slow down as I make more complex animations, but this is the most accurate way. One could jump back many frames (a second... 10 seconds...) and step forwards in single ticks. I need to do this in VirtualDub... film compression also has this backwards-time resistance.

Today I've added a 3D cursor and checking for textures - it is posisble to create objects without textures (but it is unlikely anyone would want them, object would appear pure white). Trying to render when a texture can't be found now produces an error (we wouldn't want to accidentally get a filename wrong and have the whole thing render in error). I've added date and time of the render, and speed, and lots of keyboard checks.

The last big challenge job is texture frames... multiple textures per object. This will involve new arrays of texture filenames and texture id numbers.