log in | register | forums
Show:
Go:
Forums
Username:

Password:

User accounts
Register new account
Forgot password
Forum stats
List of members
Search the forums

Advanced search
Recent discussions
- Elsear brings super-fast Networking to Risc PC/A7000/A7000+ (News:)
- Latest hardware upgrade from RISCOSbits (News:)
- RISCOSbits releases a new laptop solution (News:4)
- Announcing the TIB 2024 Advent Calendar (News:2)
- RISC OS London Show Report 2024 (News:1)
- Code GCC produces that makes you cry #12684 (Prog:39)
- Rougol November 2024 meeting on monday (News:)
- Drag'n'Drop 14i1 edition reviewed (News:)
- WROCC November 2024 talk o...ay - Andrew Rawnsley (ROD) (News:2)
- October 2024 News Summary (News:3)
Latest postings RSS Feeds
RSS 2.0 | 1.0 | 0.9
Atom 0.3
Misc RDF | CDF
 
View on Mastodon
@www.iconbar.com@rss-parrot.net
Site Search
 
Article archives
The Icon Bar: Games: 3D Engine design
 
  3D Engine design
  This is a long thread. Click here to view the threaded list.
 
Andrew Message #85252, posted by andreww at 15:04, 14/1/2001, in reply to message #85251
AA refugee
Posts: 555
Posting to csaa might be useful but do we want to wait around for a reply or should we porceed through steps 2,3, and 4.
I'm happy with just almost blank pages so long as they're functional.
Regarding the management issue, I think Nathan should be the overall coordinator and Jeffrey directing us in what sections we need to do and how they will come together. He can act as technical advisor to Nathan perhaps.
We have a rough idea of who will do what so now maybe some kind of plan should be made?
So yes, now we need the specs. from Jeffrey and / or Lee.
  ^[ Log in to reply ]
 
Shane Message #85253, posted by Ramuh at 15:05, 14/1/2001, in reply to message #85252
AA refugee
Posts: 35
Umm, only one question really Nathan....csaa ? comp.sys.acorn.advocacy ? Err, ok, good luck smile

I'd probably put it in comp.sys.acorn.misc or something like that myself, only diehard Acorn fanatics read csaa *puts on flameproof gear* tongue

  ^[ Log in to reply ]
 
David McEwen Message #85254, posted by davidm at 15:17, 14/1/2001, in reply to message #85253
Member
Posts: 100
I think the csaa in question is comp.sys.acorn.announce.
  ^[ Log in to reply ]
 
Lee Johnston Message #85255, posted by johnstlr at 15:18, 14/1/2001, in reply to message #85254
Member
Posts: 193
So yes, now we need the specs. from Jeffrey and / or Lee.

I'm working on the document I mentioned as I speak. It's pretty basic so far - I've briefly covered what has been said on here, I've cleared up the API vs Engine issue and I'm about to talk RISC OS issues. Then comes the heavy bit as I suspect I'll have to introduce a few things like transformation pipelines to get my points across cool

I'm not intending this to be "the spec". I'm trying to focus discussion onto some of the technical issues and ways we could go about things. I'm also intending to do an evaluation of OpenGL so we can decide once and for all if that is the route we're going to take. Note I am concentrating more on low-level API issues than than things like should we use portals, BSP trees etc as these firmly belong at the engine level.

Hopefully the final document will be in HTML by exporting from Easiwriter. I can also cope with Draw, Word, RTF and Postscript. Speak up if you have a major preference but I suspect HTML should be ok (afterall, we're all reading this right?)

  ^[ Log in to reply ]
 
Andrew Message #85256, posted by andreww at 15:49, 14/1/2001, in reply to message #85255
AA refugee
Posts: 555
Well the API is the interface for the 3d system right?
So for the start we do need to concentrate on core issues and I mean the very fundamentals of 3D graphics don't we?

Any higher level concepts or standards wouldbe more useful later I'm thinking, at least for the core areas.
For planning though, yes I'd think some of the concpets you mention would be worth including.
Can you include some explanation o the terminology though?

Regards,

Andrew

  ^[ Log in to reply ]
 
Lee Johnston Message #85257, posted by johnstlr at 16:22, 14/1/2001, in reply to message #85256
Member
Posts: 193
Yes the API provides the facilities for writing a proper 3D engine and yes we need to concentrate on the fundamentals. However an API would (in theory) ease this burden on any engine developer who could take it as a given that his vertices will be transformed and displayed correctly cool

I'm trying to explain some of the terminology, although I haven't got that far yet. I've just finished the overview of RISC OS issues that are immediately apparent to me. I don't know how the rest is going to pan out yet because I've only a vague idea in my head of what I have to say.

BTW if it sounds like this is progressing quickly it's because I've only done the easy part so far. ;-)

  ^[ Log in to reply ]
 
Mark Quint Message #85258, posted by ToiletDuck at 16:37, 14/1/2001, in reply to message #85257
Ooh ducky!Quack Quack
Posts: 1016
on the OpenGL issue then, it looks like we should take OpenGL, adapt it to how we need it (leaving us to move onto the engine), and so we would be supplying a basic 3D API for RiscOS, which could be released along with the Engine.
and therefore, we need to take the neccesarry bits from OpenGL, and and parts that are either unsuitable or just dont exist we form our own standard upon.
BTW we gotta call the API RiscGL wink
  ^[ Log in to reply ]
 
Message #85259, posted by chrisbazley at 17:45, 14/1/2001, in reply to message #85258
Member
Posts: 58
would be supplying a basic 3D API for RiscOS,

No such thing. You must be thinking of Doritos tongue

BTW we gotta call the API RiscGL wink

I very much doubt that this would be legal. The Mesa project got their wrists slapped because people started calling it "MesaGL".

  ^[ Log in to reply ]
 
Message #85260, posted by chrisbazley at 18:03, 14/1/2001, in reply to message #85259
Member
Posts: 58
4) List of people working on project and what they are willing to do.

I am willing to work on the sub-API level of an OpenGL module, writing ARM code.

As for the game engine itself, I don't really have time to be involved in a core role.

  ^[ Log in to reply ]
 
Message #85261, posted by chrisbazley at 18:19, 14/1/2001, in reply to message #85260
Member
Posts: 58
on the OpenGL issue then, it looks like we should take OpenGL, adapt it to how we need it (leaving us to move onto the engine), and so we would be supplying a basic 3D API for RiscOS, which could be released along with the Engine.

Game/Application (Mark's area of interest)
/\ ||
|| \/
3D game engine (Jeffrey's area of interest)
/\ ||
|| \/
OpenGL API (By agreement with MicroDigital)
| |
|----| |------|
| |
Open-source MicroDigital
Software Hardware
Implementation Driver

(My area of (Not our
interest) concern)

  ^[ Log in to reply ]
 
Message #85262, posted by chrisbazley at 18:38, 14/1/2001, in reply to message #85261
Member
Posts: 58
The formatting is screwed up, but you should be able to make out what that is supposed to look like. All spaces have been removed.

I have tried editing it, but it ignores my changes. >unhappy

  ^[ Log in to reply ]
 
Richard Goodwin Message #85263, posted by rich at 09:28, 15/1/2001, in reply to message #85262
Rich
Dictator for life
Posts: 6828
The formatting is screwed up, but you should be able to make out what that is supposed to look like. All spaces have been removed.

I have tried editing it, but it ignores my changes. >unhappy


This is HTML - the spaces are there, the browser ignores them. Perhaps setting up a website and putting up proper diagrams is in order?
  ^[ Log in to reply ]
 
Tim Fountain Message #85264, posted by tfountain at 10:15, 15/1/2001, in reply to message #85263
AA refugee
Posts: 59
...or use the <pre> tag. I guess I should put that in the FAQ.
  ^[ Log in to reply ]
 
Jeffrey Lee Message #85265, posted by Phlamethrower at 10:53, 15/1/2001, in reply to message #85264
PhlamethrowerHot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot stuff

Posts: 15100
Having some fixed width font option would be handy as well for when we need diagrams and stuff.

The project seems to be going along quite well now, and it sounds like Lee's spec thing should cover all the things we need to take into account.

There is a feature of OpenGL which I think is really handy (Supposing I've read the docs right), and that's the vertex arrays. Having lists of vertices makes sense, but having a 'stride' value so you can cut out non-graphics relevant data is a very good idea. If we are making an API then this is a very important feature IMHO.

In terms of all the 'fancy' features, I agree that dotted lines are unlikely to be needed, and coding should be much easier without them. Features like curve approximation/polygon division would be nice, especially if we had curve objects built into the renderer/API. That way the graphics would be scalable depending on what system you're running it on. On the other hand, scalable graphics might be a bit too complex for us to delve into (For the first version at least). I suppose this will be in your docs somewhere, Lee?

Since I'm here, I might as well mention an alternative to floating point that I've just thought of - fractions. It would be handy if we had some kind of competition to produce the fastest math routines for integers, fixed point, floating point and fractions. This would really help us to decide what system to use, perhaps I'll write a few progs to do that some time (Although other people trying their own versions would be nice). Stick your code up on the 3D engine bits thread.

[Edited by Phlamethrower at 11:04, 15/1/2001]

  ^[ Log in to reply ]
 
Lee Johnston Message #85266, posted by johnstlr at 12:42, 15/1/2001, in reply to message #85265
Member
Posts: 193
The project seems to be going along quite well now, and it sounds like Lee's spec thing should cover all the things we need to take into account.

I doubt it will to start with, but the point of the document is to find the gaps cool

There is a feature of OpenGL which I think is really handy (Supposing I've read the docs right), and that's the vertex arrays. Having lists of vertices makes sense, but having a 'stride' value so you can cut out non-graphics relevant data is a very good idea. If we are making an API then this is a very important feature IMHO.

I just knew the boy Jeff was going to say that the minute he read up on them. Vertex arrays are incredibly powerful. There are downers to the OpenGL implementation but I'll be covering that in the document. Bear in mind that while they're downers to a software rasteriser, hardware accelerators are often designed to implement the D3D and OpenGL specs.

In terms of all the 'fancy' features, I agree that dotted lines are unlikely to be needed, and coding should be much easier without them. Features like curve approximation/polygon division would be nice, especially if we had curve objects built into the renderer/API. That way the graphics would be scalable depending on what system you're running it on. On the other hand, scalable graphics might be a bit too complex for us to delve into (For the first version at least). I suppose this will be in your docs somewhere, Lee?

So we also want something on scalable engine techniques and higher order surfaces? I'll admit I don't know much about these. However higher order surfaces are usually built on top of the more primitive OpenGL commands so are a possibility once something is up and running.

It would be handy if we had some kind of competition to produce the fastest math routines for integers, fixed point, floating point and fractions. This would really help us to decide what system to use, perhaps I'll write a few progs to do that some time (Although other people trying their own versions would be nice). Stick your code up on the 3D engine bits thread.

Good idea, although I'll have to leave it to the ARM guys. However I believe the routines should be seen as a resource rather than a definite statement of how a driver works. If there's no FPA fixed point would be nice. Otherwise why not take advantage of the FPA? Bear in mind that these would be two distinct drivers for the same API. Before people groan, that doesn't actually represent a huge amount of work over getting an API in the first place.

  ^[ Log in to reply ]
 
Jeffrey Lee Message #85267, posted by Phlamethrower at 16:02, 15/1/2001, in reply to message #85266
PhlamethrowerHot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot stuff

Posts: 15100
Otherwise why not take advantage of the FPA? Bear in mind that these would be two distinct drivers for the same API. Before people groan, that doesn't actually represent a huge amount of work over getting an API in the first place.

*Smacks head on table*

Of course! Why should we care about what number types we're using? If it's written in C then changing to a different type is relatively easy, and in assembler it would all be done by macros/routines, which are easy to change anyway!

I don't know that much about scalable engines myself, so it would be best to leave that out for the first version (As in forget about it completely, then spend the next couple of months re-writing the code to support it smile)

  ^[ Log in to reply ]
 
Andrew Message #85268, posted by andreww at 19:35, 15/1/2001, in reply to message #85267
AA refugee
Posts: 555
I'm showing my ignorance here but.. :-)

I thought that fractions were taken account of for the graphics plotting by performing the calculations precisely before entering the low-level code and then shifting the values back down for screen coordinate plotting.
I assume yu're talking about other sections of the whole system??

  ^[ Log in to reply ]
 
Lee Johnston Message #85269, posted by johnstlr at 21:21, 15/1/2001, in reply to message #85268
Member
Posts: 193
It depends. Although OpenGL has an interface that can take integers, floating point and double values almost all applications use the floating point functions. Now on a PC the underlying driver is likely to use floating point as well as it has FPA and 3D support.

On a non FPA enabled ARM processor using floating point all the way through may prove too costly. The trick then is to change the parameters passed into each call to fixed point and optimise the transformation code for that. However the application is none the wiser for it. Note you are correct about "shifting down". With fixed or floating point math you have to "clamp" the values back to screen coordinates eventually but this happens after the transformations have taken place.

As Jeff says, if we redefine all the types and math operations using macros we can simply recompile / re-assemble to change between the numeric types used.

  ^[ Log in to reply ]
 
Nathan Message #85270, posted by Wrath at 19:51, 17/1/2001, in reply to message #85269
Member
Posts: 155
www.coderscauldron.com is coming along. I've stuck a primitive news page up there for the time being as I don't know what the structure of the site will be as it's only just gone up. I don't know what plans Richard is going to do but I put up a member list and what you are specialising in.
If anything is wrong then just mail me.
  ^[ Log in to reply ]
 
Lee Johnston Message #85271, posted by johnstlr at 09:17, 18/1/2001, in reply to message #85270
Member
Posts: 193
Nice one Nathan and co. I notice the mailto's are blank. You can put my yahoo address down for that - johnstlr@yahoo.co.uk

There's some slightly bad news - the document I was working on is going to be delayed, probably until next week due to my PhD supervisor wanting to see some writeup.

  ^[ Log in to reply ]
 
Jeffrey Lee Message #85272, posted by Phlamethrower at 15:58, 18/1/2001, in reply to message #85271
PhlamethrowerHot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot stuff

Posts: 15100
Damn education! Why can't we all just learn things using hipnosis? That way when we wake up we won't remember how bad everything was smile

I didn't even know CC was getting things put on it yet.... must be some mail problem at my end or something. I'll take a look.

  ^[ Log in to reply ]
 
Jeffrey Lee Message #85273, posted by Phlamethrower at 16:05, 18/1/2001, in reply to message #85272
PhlamethrowerHot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot stuff

Posts: 15100
Looks fine so far, although analysing the sites features isn't exactly possible yet since they aren't there smile

You can stick my email address up on the site Nathan, just use the hotmail one (the one i'm using here).

Since Lee's holding us up on his docs, I'm getting some time to do work on XSpr, so there may be a new version out sometime soon for those who use it (Just me and Andrew at the moment I think unhappy)

  ^[ Log in to reply ]
 
Andrew Message #85274, posted by andreww at 19:38, 18/1/2001, in reply to message #85273
AA refugee
Posts: 555
Looks fine so far, although analysing the sites features isn't exactly possible yet since they aren't there smile
You can stick my email address up on the site Nathan, just use the hotmail one (the one i'm using here).
Since Lee's holding us up on his docs, I'm getting some time to do work on XSpr, so there may be a new version out sometime soon for those who use it (Just me and Andrew at the moment I think unhappy)

So is the plan to see what Lee says the project will entail, Jeffrey?
Then will you ascribe roles or should we hold another discussion at this point?
The project looks set to go ahead at some point, hopefully. It should be a learning experience and certainly will be for me!!

  ^[ Log in to reply ]
 
Mark Quint Message #85275, posted by ToiletDuck at 20:42, 18/1/2001, in reply to message #85274
Ooh ducky!Quack Quack
Posts: 1016
yay the website is looking nice now grin
we just need a little more content smile
  ^[ Log in to reply ]
 
Lee Johnston Message #85276, posted by johnstlr at 21:08, 18/1/2001, in reply to message #85275
Member
Posts: 193
Since Lee's holding us up on his docs,

and your homework for tonight is to read and understand the full OpenGL spec cool

I know you're kidding.

So is the plan to see what Lee says the project will entail, Jeffrey?

The project will entail

lots of reading
lots of smashing head against the wall
lots of coding (we hope)
followed by some sort of release.

I'm getting a little bit confused though now. When I started the doc it was intended to look at our options, pros and cons of each. Since then it seems that we've pretty much come to the conclusion that following the OpenGL API is the way to go so I'm wondering now what people want to see in it. I've introduced this whole thing, I've looked at some RISC OS issues but I can't exactly explain OpenGL - that'd take a whole book.

I figure that I should introduce some terminology (such as coordinate systems and the like), transformation pipelines and then look at the parts of OpenGL that are of most relevance to us - ie the general philosophy, the Begin / End API, vertex arrays and maybe display lists (although I'm not that familiar with them).

Blimey, that's quite a lot actually.

  ^[ Log in to reply ]
 
Nathan Message #85277, posted by Wrath at 23:09, 18/1/2001, in reply to message #85276
Member
Posts: 155
And can some person give me a translation into stupid speak smile

I need some correctly worded information about this project for the about page.

BTW, I've pretitles it RISC OS G'e'L. Cool huh grin

  ^[ Log in to reply ]
 
Andrew Message #85278, posted by andreww at 23:22, 18/1/2001, in reply to message #85277
AA refugee
Posts: 555
Yes we need clear definitions.
Remember Lee as well that the plan has to translate eventually into what each person will do so a list of requirements theme would be useful I suppose.

Andrew

  ^[ Log in to reply ]
 
Andrew Message #85279, posted by andreww at 23:25, 18/1/2001, in reply to message #85278
AA refugee
Posts: 555
I don't know if we'll get a release at the end of the project as it's a project woth the aim of making a development tool for use in our own future projects isn't it?
Although we have Mark for graphical support and play-testing for any gameplay generated.
  ^[ Log in to reply ]
 
Lee Johnston Message #85280, posted by johnstlr at 09:49, 19/1/2001, in reply to message #85279
Member
Posts: 193
I think the G'e'L bit is cool - gets around copyright restrictions cool

As for writing the document in stupid speak I'll do my best - remember though you can always go "oi Johnston I don't understand this bit, write it better". wink

Finally what I meant by release was something that is usable as Andrew points out, I didn't mean some huge product.

  ^[ Log in to reply ]
 
Lee Johnston Message #85281, posted by johnstlr at 09:58, 19/1/2001, in reply to message #85280
Member
Posts: 193
Something else that may be of interest is that the person behind the Parsec 3D engine has released his PhD thesis on it on the web. You can get it from

http://www.parsec.org/download.html

BUT it's a 2MB download.

This is the kind of engine that sits on top of an API like OpenGL and maybe worth a read.

  ^[ Log in to reply ]
 
Pages (5): |< < 4 > >|

The Icon Bar: Games: 3D Engine design