M3D Gotchas

Below are some problems I've seen; perhaps this will save you a headache or two. If you have something to add to this list, please let me know.

Multiple errors originating in QD3D headers.

You've probably got two versions of the QD3D headers: the current version, in your user path, and the older version that came with the CodeWarrior CD, in the system path. These do not get along. To avoid this problem, either remove (or replace) the older versions in the Metrowerks folder hierarchy, or check "Always Search User Paths" in the Access Paths preferences panel.

The computer locks up whenever you break into the debugger while rendering.

This is a problem with ATI accelerator cards; they don't like switching abruptly between 2D and 3D modes. To get around this, you can either set up your debugging windows on a second screen, or disable the 2D accelerator (drag the "ATI Graphics Accelerator" (the 2D accelerator) out of the Extensions folder and reboot).

It may also suffice to disable the 3D accelerator; you can do this by dragging the 3D accelerator extension out of the Extensions folder, with no need to reboot. But I haven't tried it. And note that this is *only* a problem if you break into the debugger within the inner rendering loop.


Your computer crashes with a Type 12 error when your run the demos.

The demos are all compiled with debug options on. This means that if something unexpected happens, it calls DebugStr() -- which, on computers that don't have MacsBug installed, is a Type 12 crash. (I can't believe Apple hasn't provided a default DebugStr trap, even in MacOS 8.1!)

So you should do two things. First, install MacsBug (available from Apple's FTP site); it will let you see where the code has detected a problem, and exit gracefully (just type "es" -- for "escape"; or see MacsBug Basics for more info). Second, check your monitor depth. It must be 16-bit (thousands of colors).


Textures don't show up -- or some do, and some don't.

This can be caused by exceeding the VRAM on your accelerator hardware. You can verify this by removing the 3d accelerator extension from your Extensions folder, then running the program again -- if your textures look fine now, then it's a VRAM limit.

The solution for now is to use smaller textures, or do some fancy culling to make sure you don't submit too many textures at once. (Remember that M3D automatically culls objects for you if they're out of the viewcone, but not if they're hidden behind other objects.)


http://www.strout.net/info/coding/macdev/magdef/m3dgotchas.html
Last Updated: 7/26/98 . . . . . . webmaster@strout.net