Operating on the theory that my csg was slowing down the render, I decided to
rebuild the scene from the void up using constructive csg as much as possible.
What follows is the current state of the scene, built almost entirely out of
prisms. The code is quite a bit less readable, but there are no difference(s)
at all.
The major speedup came when I changed the way I tiled the floors. Rather than
making a single large union of all the tiles on a particular level, I altered my
macro to pass back an array of tiles which I then use to tile a given area. I
cull tiles which fall inside areas I want kept clear using an inside(...)
statement. Render speed increased to "OH MY GOD THAT'S FAST".
Render Time:
Photon Time: No photons
Radiosity Time: 0 hours 0 minutes 17 seconds (17.107 seconds)
using 6 thread(s) with 95.544 CPU-seconds total
Trace Time: 0 hours 4 minutes 26 seconds (266.060 seconds)
using 6 thread(s) with 1535.187 CPU-seconds total
The upshot seems to be a problem in bounding of difference objects where the
base is composed of many small objects, much like you might expect from turning
off split_unions.
Regards,
A.D.B.
Post a reply to this message
Attachments:
Download 'rebuild.png' (565 KB)
Preview of image 'rebuild.png'
|