Quote: "but smaller objects means smaller textures and that means less detail. thats what i wanted to say by "less detail". "
You shouldn't think of 3d in terms of pixels. Let's say we have a detailed texture (picture) at 256 x 256 pixels. In the 3d world, this doesn't mean that you have to use only 256 x 256 sized obejcts. The 3d object is made up of points in 3d space. A cube, for example, might only have 8 different points. So how does a 256 x 256 pixel picture get put on something that only has 8 points? Bascially, the 256 x 256 picture is "stretched" over the 8 points based on the relationship percentage of each point to the whole 3d object. This is called UV mapping.
Without getting into great detail, think of a blanket that's put over a box. At each corner of the box, you put a tack in to hold the blanket in place. These tacks are the coordinates that the 3d world will use to map the 256 x 256 picture onto the 3d object.
In 3d, the object can be any size; it doesn't matter because the picture will always be "tacked" the same way. So if the object grows (is scaled up) the picture will be mapped the same way because the position of the tacks (UV coordinates). If the 3d object shrinks, it still doesn't matter because the the relationship of where the 256 x 256 picture is placed and tacked on the 3d object stays the same, and the picture will size with the object.
The 3d object's size is imaginary. The size is a calculation relative to the camera's position. If you shrink something, that means you'll have to get the camera in closer to it if you want the object to fill the screen. The object will still look the same as it did when it was bigger.
Now, the problem comes in with the front clipping plane of the camera. This is the distance to the camera that things actually start to be drawn. When you use the command SET CAMERA RANGE, you have to put in 2 values - a front value and a back value.
The front value is the minimum distance the camera can see. The back value is the farthest distance the camera can see. The front values smallest value is 1; it can't be any less. If your objects are too small, you'll never be able to get the camera close enough without passing the object, to see it properly. So the caution is not to make your objects too small.
This example makes a tiny cube. If you press the up arrow the camera will move towards the object. Once the camera is 1 3d unit away from the object, the object will disappear because the camera is too close:
set display mode 800,600,32
sync on
sync rate 60
make object cube 1,.01
do
move camera (upkey()-downkey())*.002
text 0,0,str$(camera position z())
sync
loop
Enjoy your day.