Welcome, Guest. Please login or register.

Author Topic: How to do 3D graphics development on the Amiga?  (Read 13812 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show all replies
Re: How to do 3D graphics development on the Amiga?
« on: December 03, 2003, 08:42:30 PM »
No existing amiga 3D api supports the newer features supported by these cards. Until they do, you can only expect

Basic shading, filtered texturemapping, blending, fogging, depth culling, logic operations and stencilling.

Currently you have several choices for 3D on amiga

1) Mesa - Shared library implementation. Pretty well implemented openGL clone, not the fastest on existing systems but not bad for faster PPC systems. Supports both hardware and software rendering, the former via Warp3D.

2) MiniGL - Static linker linrary implementation. A subset of OpenGL spec, written by Hyperion for speed rather than functionality. Requires Warp3D.

3) Warp3D itself. Base hardware abstraction layer for 3D chipsets, developed by Hyperion. Conceptually similar to Glide, but hardware independent.
Low level and the fastest way to do 3D, as long as you know your 3D maths very well becuase you will have to implement your 3D transform yourself - it only works in 'screen' space.
int p; // A
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show all replies
Re: How to do 3D graphics development on the Amiga?
« Reply #1 on: December 03, 2003, 08:58:20 PM »
What exactly do you need, anyway?

Unless you are hell bent on doing shader centric stuff, I think you'll find the existing support suffucient for most purposes ;-)
int p; // A
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show all replies
Re: How to do 3D graphics development on the Amiga?
« Reply #2 on: December 03, 2003, 11:02:21 PM »
Quote

lempkee wrote:
ermm guys... EVER heard of "NOVA"


Don't worry, I'm way ahead of you - hence the "no *existing* api...".

Quote

and as far as Warp3d goes, it can do exactly what we want it to do for now, i dont see any bigtime commercial games comming this way with state of the art 3d and most of all the money to do such a project.


My previous point exactly. Unless sharpie is single handedly going to make a tenebrae type engine, I don't see the rush. You can have the best 3D API in existance, theres no point if you don't have the bluddy OS ready to run it on.

Future interim versions of Warp3D supporting T&L in the API may appear prior to Nova, which requires much work.

Or it may be that Hyperion simply opt to create an OpenGL 2 system. Personally I prefer the nova approach, then building OGL2 upon that, but we'll have to wait and see. In the final analysis, few people know as much about amigaOS hardware 3D than hyperion but people need to appreciate they must finish the OS first.
int p; // A
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show all replies
Re: How to do 3D graphics development on the Amiga?
« Reply #3 on: December 03, 2003, 11:10:07 PM »
Quote

sharpie wrote:
Its clear that 3D is not something the Amiga can handle at the moment, but it may in the future. But then again, where have I heard that before when it comes to Amiga?


Correction. Shader centric 3D is beyond existing amiga 3D solutions. I dont see anything more than a few years old that requires it. Fragment shaders are out of the question for now, but a degree of vertex shader emulation can be done in software even with warp3d, provided you are prepared to get your hands dirty and implement your own pipeline.

As for newer games that do require fragment shaders, official ports command liscence fees far beyond any existing amiga games developer budgets.

I don't doubt that shaders will appear, if not by hyperion then by someone else. Now that we can actually use such cards, someone will inevitably implement it.

Boring old shaded/texturemapped 3D hardware acceleration was possible on the amiga *before* anybody saw fit to write a decent API/abstraction layer. Guess who they were?
int p; // A
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show all replies
Re: How to do 3D graphics development on the Amiga?
« Reply #4 on: December 04, 2003, 02:19:21 AM »
I've seen both Graphics Library and Graphics Language banded about in different literature. One thing I do know is that before it was OpenGL, it was IrisGL - my old chemistry dept. still had some ageing Silicon Graphics systems gathering dust in the corner of the theoretical chemistry labs last time I was there ;-)
int p; // A
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show all replies
Re: How to do 3D graphics development on the Amiga?
« Reply #5 on: December 04, 2003, 02:30:47 AM »
Quote

lempkee wrote:

for karlos and shaders: anyway integrating an os with an 3d api is the future?? , i dont see why this can be a problem if its added later when there is an OS , seriously warp3d is enough for now and later we will have NOVA which i am pretty sure will be integrated somewhat..


I wasn't disagreeing. Of course they can add it later in 4.x., and theres no reason that its functionality couldn't be used to bolster things like AG2 - but that is purely conjecture on my part.

AFAIK, Hyperion haven't stated for fact that Nova will be released or if an OpenGL2 implementation will be developed instead. My preference is for Nova with OGL2 built upon it.

Irrespective of the choice between Nova or OpenGL2, what does seem likely is that before that choice is made, interim versions of Warp3D 4 will be released that better suit the new OS4 Interface concept and add support for things like geometry acceleration (T&L) etc.

Quote

i know why hyperion is not working on nova, os4 gotta be finished first ..


Thats exactly what I said earlier...

Quote

you all have very good points here and i understand it, but i am a developer and i seriously dont see this as a problem atm.


Me neither. I used warp3d for lots ot stuff, not all of it for 3D either ;-)
int p; // A
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show all replies
Re: How to do 3D graphics development on the Amiga?
« Reply #6 on: December 04, 2003, 05:31:22 AM »
Quote

ajk wrote:

It's better to release a version without (modern) 3D support than not release a version at all and wait for everything to be finished, no?

I for one would rather have all printer/usb/etc stuff done before 3D things.


Couldn't agree more, really.
int p; // A
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show all replies
Re: How to do 3D graphics development on the Amiga?
« Reply #7 on: December 04, 2003, 12:03:14 PM »
Quote

Crumb wrote:
If I remember correctly they may also add Antialias
to this Warp3D pre-NOVA version :-)


Actually, theres actually nothing stopping antialiasing being used on existing v4.2 warp3d other than the fact that none of the currently supported chipsets seem to have it. Actually, I coudln't say for later voodoo chips ;-)
Anyway, as for antialiasing, the appropriate states and queries are defined in the API since v2 IIRC.

Hmmm. According to sect 2.1 of the  permedia2 programmers reference manual, it has 'full scene antialiasing', but I'm buggered if I can find it elsewhere in the documentation.

-edit-
@hairy
Quote
Yeah, that closed source, in-house developemnt only, non-standard low-level library, successor to Warp3D, wich suffered the same limitations.


So I take it you have read the Nova whitepaper and discussed it with Hyperion then? :roll:
int p; // A
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show all replies
Re: How to do 3D graphics development on the Amiga?
« Reply #8 on: December 04, 2003, 12:21:10 PM »
Quote

lempkee wrote:
i had expected someonmne from hyperion to join in this discussion but they havent....sort of weird :)

Just extremely busy I suspect...
int p; // A
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show all replies
Re: How to do 3D graphics development on the Amiga?
« Reply #9 on: December 04, 2003, 12:27:49 PM »
:lol: Rogue, you have an awesome sense of timing...

-edit-

I see its a genetic trait also ;-)
int p; // A
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show all replies
Re: How to do 3D graphics development on the Amiga?
« Reply #10 on: December 04, 2003, 12:57:48 PM »
Is it me or did it suddenly get pretty busy in here?
int p; // A
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show all replies
Re: How to do 3D graphics development on the Amiga?
« Reply #11 on: December 04, 2003, 01:30:07 PM »
The really funny thing is that it all started just after I said they were probably busy to jump in, then went quiet again just as I remarked how busy it was after they did :lol:
int p; // A
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show all replies
Re: How to do 3D graphics development on the Amiga?
« Reply #12 on: December 04, 2003, 02:15:44 PM »
Ages ago, when I was messing about with this old game engine I was designing, my model class didn't actually have any IO support at all (I was waiting to do it later), so I actually had to encode the vertices by hand in some source. Thats why they look (and are) sooo basic :lol:


int p; // A
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show all replies
Re: How to do 3D graphics development on the Amiga?
« Reply #13 on: December 04, 2003, 07:44:41 PM »
@sharpie

Direct X is a standard, but it is not an open one. There is obviously no chance it will be ported to AmigaOS4/MOS unless Microsoft wish it.

Anyhow, seeing as your existing project will be on hold until you get the 3D support you need, if you are as clued up on the whole shader issue as you seem to imply, why not do something about it?

Since nVidia are totally closed off to external 3D driver developers, you are left with ATI as your main vendor for 3D fragment shader technology available for Amiga right now.

You could get in touch with them and get an NDA and whatever else they may require covering the Radeon series and create a 3D API yourself. Model it on whatever existing shader language you prefer.

Nothing is stopping you.
int p; // A