Notes From The Dork Web

Old Computer Challenge 2023, Day 5

I've found it quite hard with a busy week, a lot of curveballs and day job issues (for some value of $day_job), doing Amiga stuff, getting screenshots and writing about it for WhatIFF? magazine, then rewriting for Mastodon and for here. Unrelatedly I slept badly last night due to illness, so I took a sick day and spent it noodling with Imagine 3D. 3D Rendering on old computing involves a lot of waiting around doing nothing, which is great when you're ill. Anyhow, I'm feeling better this evening, so I thought I'd post up something to show what I've done.

Relearning Imagine

Most professional 3D people who had an Amiga on the western side of the Atlantic were big fans of the VideoToaster and LightWave. Don't get me wrong, LightWave is really good. I've spent some time with it and had some good results. For those of us who grew up in the UK with magazines like Amiga Format and CU Amiga, Imagine 3D versions were occasionally found on cover disks, along with tutorials inside the magazines. It's been a long time since I've used Imagine (maybe over a quarter of a century!) but I was determined to see what was possible with my MiSTer build running Workbench 1.3.

Don't have a cow, man

I dug out some CU Amiga magazine archives and had a play using Imagine 3.3. The MiSTer lacks FPU support, so I had to use the integer-only version. Despite this drawback it was still quick, if occasionally a little unstable.

Imagine's Detail Section

Imagine splits everything into projects. Different parts of the app control different things. For example, the Detail Editor is roughly analogous to LightWave's modeler. I started by adding the ground and a ground texture. I chose add a classic Red and White chequerboard pattern, changing a few settings here and there to make it bigger. I then added the classic Imagine cow model. If you've ever played with Imagine before you'll instantly recognise it as the Amiga equivalent of the Utah Teapot.

Notes From The Dork Web

I gave the cow a camo texture and did a quick render. To speed things up I was able to run quarter-resolution renders using HAM colours to get an idea of how final renders would look.

Notes From The Dork Web

Once I had the models I wanted configured and saved in my project folder, I was able to move on to the staging editor. The staging editor is where you set up your models, cameras and add lighting. I was happy with a single light approach for this render. Normally in LightWave I'd add a flood to offset the main spot light, but I didn't feel it was important here. I was just messing around passing the time till I got better.

Notes From The Dork Web

I then went to the Action Editor. The Action Editor has a globals setting which controls things like the sky and so on but I couldn't actually edit it and didn't have enough documentation or spoons to figure out what I needed to do. Instead I moved on to the Project Editor, where I created a render sub-project. This let me play with various render qualities and so on. I did some test renders in standard resolutions and they were great, but I wanted to push it further. I wanted to do a full 1080p HD render in 9Mb of RAM on an OS from 1985 running the equivalent of an 68030 at 50mhz. I also wanted the render to run while I converted the 24-bit IFF images to JPEG and did any touch-up processing needed. I wanted to do all that and play chiptunes at the same time. I wanted fries and a shake with it too but my demands had to stop somewhere. Despite it's capabilities, an Amiga can't cook fast food (yet). Happy as a pig in the proverbial, I did my 24-bit render, loaded into ImageFX, converted it to JPEG and transferred it over to a more modern machine where I noticed something a little off:

Notes From The Dork Web

Imagine was written at a time where people would use special effects in television or on video tapes. Most of this was 4:3 oriented. The Amiga actually has a slightly different aspect ratio in PAL modes but Imagine could handle that fine. What it couldn't quite handle was 16:9 - or rather it could, but not from a standard Amiga resolution preview screen. Moving back and forth between my setup and the PC was rather tedious, so I worked out the scale I needed and rendered at 1920x1536 so I could crop to 1920x1080p afterwards.

Notes From The Dork Web

Imagine also has some cool tools for rendering both in wireframe and solid. I took advantage of this to make some renders that look different. Nostalgia-filled media are often defined by their rough edges - the imperfections of film, the hiss of audio cassettes, the crackle of vinyl. I've never believed it coincidence that colours featured in early vapourwave aesthetic correlate well with IBM's CGA palette 1. Granted, it's just a cow on a chequerboard, but if there was a cow in another Tron sequel, this could be it.

Notes From The Dork Web

I find the solid render worse than the wireframe one, although that's probably based on me preferring lower poly solid-fills and more detailed wireframes.

I had no problems rendering at 1080p, but full renders at higher resolution proved difficult. I also found I pushed up against ImageFX's limits. I had to use arcane virtual memory configurations just to load the 1080p images in, and most of the filters and adjustments didn't work. I think this is around the upper limit of a 16-bit Amiga, and it's nice to lean up against the boundary. My Amiga 4000 would chew these kinds of processes up in it's sleep.

I eventually found the answer to the aspect ratio issue in Understanding Imagine 2.0 by Stephen Worley, but not where I expected it. He talks about resizing the camera to set focal length in an Appendix featuring discussion on widescreen, but the real gem is that Imagine's 3D rendered doesn't really care about aspect ratios. I resized the camera twice but I'm not sure if it made a bigger difference than setting the X ans Y aspect ratios to 1. Unfortunately the render still crashes in scanline mode. I might try another render tomorrow and look into it further. I'm more tempted to try Imagine on something with a floating point like my A4000.