@m_schuetz@CianNoonan The superior distribution is demonstrated by the vertical lines in this diagram from Foundations of Game Engine Development, Vol. 2. (a) Depth is mapped from 0 to 1. (b) Depth is mapped from 1 to 0. amazon.com/dp/0985811757/…
• • •
Missing some Tweet in this thread? You can try to
force a refresh
So why intrusive containers in C4? To look at one example out of many, consider that a single node in the scene can range in size from a few hundred bytes to roughly a kilobyte in size. (The largest levels I've worked with have more than a million nodes in them.) 1/9
Every node is part of a big transform tree. Instanced objects are attached to the main world somewhere, and they may contain other instanced objects. Character models typically have a node hierarchy (like a skeleton for skinning) that can be ~dozen nodes deep. 2/9
Nodes often have ancillary components attached to them like properties and a controller. Nodes can be added to or removed from the transform tree at any time. They may even move to a different location in the tree when, for example, a character picks something up. 3/9
The largest task remaining before I can release C4 Engine version 7.0 is an upgrade to the GI solution. For many years, the engine has been using a volumetric "illuminance space" that contains precomputed ambient light for 6 directions at every point inside a 3D grid. 1/12
To fit the data into 8 channels over two 3D textures (in RGBA8 format), 6 intensities are stored for each sample point, but only one two-component color value is stored. This has the undesirable effect of making the sky color or ground color bleed into other directions. 2/12
In large outdoor areas, there is also the limitation that you need to use one extra-large volume to cover everything, and it only gives you a single uniform sampling resolution. We need more detail where structures are sitting on the terrain, for example. 3/12
The 8 basis elements for the 3D geometric algebra correspond to the 8 ways that three dimensions x, y, and z can be partitioned into two groups, shown as red and blue here. The symmetries of duality arise from an operation that simply swaps the two colors.
Quaternions are multivectors only with components having an even number of red dimensions, and they look like this. Quaternions perform rotations, and they correspond to all possible proper isometries in 3D space that leave the origin fixed.
What about the basis elements with an odd number of red dimensions? They look like this, and they perform *rotoreflections*. These correspond to all possible improper isometries in 3D space that leave the origin fixed.
Back in 1993, I was taking a number theory class, and there was a semester-long factorization contest that we could participate in. I implemented a distributed multiple polynomial quadratic sieve (MPQS) for the Mac, and I needed a cluster of computers to run it on.
The computer lab in the math building had a bunch of Mac Centris 650s on an AppleTalk network. But they were running some kind of secure software that didn't give you access to the Finder, only specific software, so I couldn't pop in a disk and run my own programs.
You can see in this picture that the Centris had two little buttons on the front. One was a reset button, and the other generated a non-maskable interrupt (NMI). If Macsbug was installed, the NMI button froze everything and dropped you into the system debugger.