<< Part 1
Michael confirmed my suspicion that MoI’s graphics engine was built from the ground up by him. One of its signature features is having a high quality curve display even on very old and basic video cards. Most 3D CAD programs use OpenGL and rely on the OpenGL video driver to hopefully do a nice job of antialiasing curves and lines. This is problematic though, because video card vendors have decided to only enable some nice features like that on their expensive “workstation” graphics cards and not have the functionality exposed on their lower end “gaming” cards. In fact, according to Michael, frequently the expensive cards actually use the exact same hardware as the cheaper gaming cards, the game card just has functions intentionally disabled.
Michael says, “So it’s not really that great to rely on the OpenGL video driver to handle things like this for you because they will intentionally not handle it in many cases, in order to give an incentive to buy the “high end” card instead. Or in some cases like Intel integrated graphics there isn’t actually a high end version of that available at all. MoI’s graphics engine takes a different approach. Instead of relying on the driver MoI instead has its own code to break curves down into line segments, then constructs thickened polygons from those lines, and then draws those polygons with textures applied, with the texture fading out along the far edge to make it blend nicely. This approach works on all video hardware that can draw texture mapped polygons. So for example, it provides the same kind of quality all the way back on the original GeForce1 or Radeon 7000 cards! Of course, newer cards can handle a higher volume of polygons better, so it is good to have something newer than those very old cards. But if you keep the scene size to a moderate level those really old cards are actually quite usable with MoI.”
MoI uses the Direct3D system instead of OpenGL, which also helps it run on modest hardware because the Direct3D drivers for low end hardware tends to be much more robust and not as buggy as the low end OpenGL drivers. In addition to being able to run on virtually any graphics card, MoI’s engine also enables some cool special effects. One effect that is important in MoI’s GUI is the halo effect that puts a kind of glow around the outside of a curve that you are targeting with your mouse. The glow gives you a preview of what will get selected when you click.
Also another subtle but nice effect is that sharp corners are extended to meet in a miter corner. Look closely at the corner areas in the image below.
Michael sent me one of the first early test images from the engine development which shows how texture mapping also works for applying a line type pattern along the curve in addition to the blended edges.
This is currently used for drawing construction lines in MoI and also for the hidden-line display.
Like I said, drop dead gorgeous!
Part 3 >>