Welcome, Guest. Please login or register.

Author Topic: Amiga (CD32) & voxels  (Read 2499 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16867
  • Country: gb
  • Thanked: 4 times
    • Show only replies by Karlos
Re: Amiga (CD32) & voxels
« Reply #29 from previous page: November 30, 2003, 11:11:23 PM »
Well, you know, this was an old old idea from times when 68020 + fast ram was kinda high spec :lol:
int p; // A
 

Offline Piru

  • \' union select name,pwd--
  • Hero Member
  • *****
  • Join Date: Aug 2002
  • Posts: 6946
    • Show only replies by Piru
    • http://www.iki.fi/sintonen/
Re: Amiga (CD32) & voxels
« Reply #30 on: November 30, 2003, 11:29:05 PM »
Quote
I was thinking a two pass job if mixing the rendering between blitter and CPU.

Setting up blitter to fill a rectangle is complex. Also to draw rectangle with specific colour you typically need to do 8 blits (for 256 col screen). Consider drawing 800 voxels: That would result in 800*8 = 6400 blits, and each one would have different individual setup.

Two pass routines mixing CPU and blitter only pay off when the actual blit is done only in few large operations. Also ever since 040, using CPU only has been faster. In fact, I remember that even with 030 it was faster with CPU only.

Quote
It would be interesting to see if a blitter driven voxel engine is remotely feasable, but I'm not the AGA basher to do it

No, it's not.
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16867
  • Country: gb
  • Thanked: 4 times
    • Show only replies by Karlos
Re: Amiga (CD32) & voxels
« Reply #31 on: November 30, 2003, 11:33:29 PM »
Oh well...I guess that puts paid to that idea :-)

You can see why I started doing graphics post RTG only :-)
int p; // A
 

Offline bloodline

  • Master Sock Abuser
  • Hero Member
  • *****
  • Join Date: Mar 2002
  • Posts: 12113
    • Show only replies by bloodline
    • http://www.troubled-mind.com
Re: Amiga (CD32) & voxels
« Reply #32 on: November 30, 2003, 11:37:58 PM »
Quote

Karlos wrote:
Oh well...I guess that puts paid to that idea :-)

You can see why I started doing graphics post RTG only :-)


I used to believe, as you did, that the AGA was able to cope with it... only after a few months of trying everthing I could think of did I come to the conclusion that my 030 was actually better than the Blitter :-)

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16867
  • Country: gb
  • Thanked: 4 times
    • Show only replies by Karlos
Re: Amiga (CD32) & voxels
« Reply #33 on: November 30, 2003, 11:41:18 PM »
Dang! We ain' nuffin but a pair o' poor misguided fools!

-edit-

When I get a mo, I'm gonna hardware bash my BVision. I'm sure the Permedia2 can outfill my 68040 for say 800x600x16-bits...

Just send a mass of rectangle requrests into the FIFO...

hehe :-)
int p; // A
 

Offline SpeelgoedmannetjeTopic starter

  • Hero Member
  • *****
  • Join Date: Oct 2002
  • Posts: 9656
    • Show only replies by Speelgoedmannetje
Re: Amiga (CD32) & voxels
« Reply #34 on: December 01, 2003, 12:06:56 AM »
But if I am looking at a game like ElfMania, there are a hell of a lot independently moving pixels to be drawn . And that's running on a 1mb A500
Let's see, the A500 came out in 1988 and the A1200 in 1992, so after 4 years, a hell of a lot more pixels could be drawn couldn't it?
And the canary said: \'chirp\'
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16867
  • Country: gb
  • Thanked: 4 times
    • Show only replies by Karlos
Re: Amiga (CD32) & voxels
« Reply #35 on: December 01, 2003, 12:19:37 AM »
Well, we are talking about block fills using the blitter. As the guys have explained, it is neither fast at doing this and at same time you'd need many thousands of them for any reasonable voxel engine...

-edit-

What a bummer...back in the day it seemed a good idea too :lol:
int p; // A
 

Offline bloodline

  • Master Sock Abuser
  • Hero Member
  • *****
  • Join Date: Mar 2002
  • Posts: 12113
    • Show only replies by bloodline
    • http://www.troubled-mind.com
Re: Amiga (CD32) & voxels
« Reply #36 on: December 01, 2003, 12:27:12 AM »
Quote

Karlos wrote:
Well, we are talking about block fills using the blitter. As the guys have explained, it is neither fast at doing this and at same time you'd need many thousands of them for any reasonable voxel engine...

-edit-

What a bummer...back in the day it seemed a good idea too :lol:


I've seen screen shots of your game engine... what frame rate did that get? I assume you used intuition/cybergraphics?

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16867
  • Country: gb
  • Thanked: 4 times
    • Show only replies by Karlos
Re: Amiga (CD32) & voxels
« Reply #37 on: December 01, 2003, 01:07:02 AM »
@bloodline

It varied :-) It was mostly a learning exercise and if I was to do it again, I'd avoid many pitfalls of last time....(famous last words - I'd just find new pits to fall into :lol: ).

First up, it was running on 68040 and was using OS standard stuff + cxg +warp3d (v3 funcs only).

A lot of overhead was from having to call the warp3d v3 functions for so many small sets of polygons. v4 is far better for this (one call can render as much as you can give it).

It ran at ~15fps when you were at the default zoom level. As you zoom out or go for a shallow view (anything basically increasing the number of cells to vis test and render) it got slower. To help things along, many detail objects and stuff 'faded out' and stopped being rendered all together beyond a certian long distance zoom level.

Similarly it got faster as you zoomed in, so I added extra passes for detail textures and stuff to take advantage.

One thing it used was a transformation cache. Given the nature of the engine I anticipated that the view wouldnt change much, most of the time youd be clicking on stuff and doing stuff locally then scrolling over somewhere else and fiddling about there.

Hence, only when the view changed was all the visible stuff recalculated, then reused until another change occured (for the static world/objects only, of course). So when you werent moving around it was very steady - the water ripplinng was hypnotisingly smooth ;-)

Anyhow, it ran on my first experimental portability layer project, but that in itself was canned (as it was frankly rather poo). My new portability layer doesnt have enough functionality yet and I am too busy to work on it for now, but its much cleaner, better designed - and most importantly faster :-)

Rather than upwards port that old engine, I'd write something new instead :-)
int p; // A