Not logged in, Join Here! or Log In Below:  
News Articles Search    

Submitted by M.Knuth, posted on August 13, 2000

Image Description, by M.Knuth

Some screenshots from two "experimental" Engines I programmed on a voodoo1 long time ago:

The upper two images are from an engine using "uniqe" texturing (this would be fast (if you have 64mb texture memory :) )), but it looks nice

The lower two show my way of using voxelspaces - it is a skybox - as a texture , recalculated every frame :)

Iīve got a lot of more pictures of these old projekts in my home :

Image of the Day Gallery


Message Center / Reader Comments: ( To Participate in the Discussion, Join the Community )
Archive Notice: This thread is old and no longer active. It is here for reference purposes. This thread was created on an older version of the flipcode forums, before the site closed in 2005. Please keep that in mind as you view this thread, as many of the topics and opinions may be outdated.

August 13, 2000, 01:23 AM

Wow, all I can say is that those are some kickass screenshots. Good job. =]


August 13, 2000, 01:29 AM

(Comments are back?)

Well that's kool, i like voxel'ing too

see my, well i can grab some of your ideas

and if i have time fill something to my voxels




August 13, 2000, 01:59 AM

You know, I've never had much success with sky boxes. Yours look quite nice...*hint hint* :)

Plap Per

August 13, 2000, 03:55 AM

This looks quite similar to Bryce 3D. Also, I was unaware that bump mapping and mipmapping were available several years ago on Voodoo 1 technology. Volumetric fog (top right) is pretty f'ing amazing as well, especially several years ago.

Just my 2 cents on a rip.



August 13, 2000, 07:28 AM

Just wated to say that the upper-right image is the cooleast landscape image ive ever seen. :-)
The others look great too.

-In theory, there is no difference between theory and practice. In practice, however, there is.


August 13, 2000, 10:27 AM

Keep in mind he is using voxels, different from glide/poly raster paradigm.


August 13, 2000, 01:02 PM

Plap Per said:
I was unaware that bump mapping and mipmapping were available several years ago on Voodoo 1 technology.

Read the description again. See the bit that says 'unique texturing'? That means that a unique texture map is generated for every single surface. Thus, bump-mapping can be precalculated.

I advise you read up a little more before implying that someone is faking.


August 13, 2000, 01:32 PM

I don't see where he mentionned he was using bumpmapping and mipmapping ?!



August 13, 2000, 05:30 PM

How did you generate the landscape for the upper right shot? I notice that it has overhangs, and it looks great


August 13, 2000, 07:04 PM

Plap Per, both bump mapping and mip mapping have been "available" for a good 20 years now.

"I think, therefore I'm right."

"Float like a butterfly, bite like a crocodile."


August 13, 2000, 08:05 PM


Is this a realtime engine? If so - stand back, let the man through / If not, looks mighty excellent anyway!

In awe...

"Blessed are the cheese makers..." - Life of Brian


August 13, 2000, 08:49 PM

Oh man, if the top two shots are realtime, then you could probably kick Carmack's a**. ;)


August 13, 2000, 09:28 PM

The Voodoo1 did indeed have mipmapping. I used to have a Voodoo1, and it mipmapped just fine.

I seriously doubt those voxels are realtime. :) And as M. Knuth himself said, the unique texturing engine would be quite fast if you had 64MB of texture memory - the problem with all unique-texture engines is that you have a pretty big texture per polygon. I'd also think that unless that were static lighting, you'd have to recalculate the bumpmapping per texture per frame, and although bumpmap calculations for a single image are quite quick (hell, the original Unreal engine faked it pretty well for things like puddles), if you have that on every single texture on the screen, that'd end up becoming really crappy, CPU-wise, and you'd probably be better off software-rendering (especially given that the Voodoo1 didn't have a triangle setup engine, and was just a glorified span processor).

That said, god DAMN those are some pretty pictures...


August 14, 2000, 12:26 AM

Impressive :)

Although, I could doubt that the frame rates would've been high (especially on that landscape :). Is it written in glide? If so, I wonder how it would perform now on a voodoo3.

The individual texturing looks nice - Obviously, cos you can calculate per pixel lighting straight into the texture :) This would probably run alright on 3dfx cards (high texture upload speeds), but on nVidia etc, it would probably fair less well.


August 14, 2000, 05:31 AM

Bumpmapping is available on a voodoo1 :)
Simply misuse the "paletted texture mode" as lightmap:
use the lower 4 bits of the colorindex for horizontal offset
and the upper 4 bits for the vertical offset.
Then you have to calculate a palette (as 16x16 lookuptable)
per frame / per polygone


August 14, 2000, 01:43 PM

m.knuth: There's another way to use paletted textures for the purpose of doing fast hardware bumpmapping, which might be even faster, though it only works for directional lights. What you do is make a skin for the entire object whose colors correspond to the surface normal of the object, then you quantize it down to 256 colors (i.e. get the 256 most-important surface normals; if it's dithered and you use bilinear filtering it'll look pretty good), and keep track of them. Then before you render, you set the texture's palette based on your own lighting model applied to those normals. There's some other tricks you can do to get multiple materials as well (like, quantize it down to 128 colors and use the top bit as a material flag, or 64 colors and use the top 2 bits, etc.).

This technique was Cass Everitt's thesis, for what it's worth. He might do a better job of explaining it than I did. :)


August 14, 2000, 01:50 PM

Oh crap, wrong thesis on per-pixel lighting. :) Disregard that previous message's link while I try to find the *right* thesis...


August 14, 2000, 06:42 PM

Here we go: the paper I was thinking of


August 15, 2000, 05:55 AM

Wow ! this is much faster then my version ... (mine was 4 pass per trianlge with one palette per point ...)

In my actual engine I use an algorithm which worlks on every dual texture per pass graphics card :

I compute 5 textures from one (
1: light fallin on it frontal
2: laplace north
3: laplace west
4: laplace south
5: laplace east

now you paint your vertex array 5 times :
tmu0 has one of the upper textures
and tmu1 multiplyes it with a corresponding lightmap (front,up,left,down,right)

blending mode is an addition

- you can use ulimited static lightsorces, radiousity, shadows, etc
- you have to animate the lightmaps, if you want dynamic lightsources

the algorithm isnīt so expensive, because the vertexarray is only calculated once, but the graphics-card is rendering itself mad :)

This thread contains 19 messages.
Hosting by Solid Eight Studios, maker of PhotoTangler Collage Maker.