 |
The New Plugins
|
17 November 1999 (7:56pm) - Wednesday Evening
|
|
I just finished the plugin design for the transformation and rendering engine that I mentioned a while ago.
I decided to go with a straight DLL plugin system rather than use COM. I'm currently filling in the
code for the DLL, but I have to convert all my old code to DX7 (I'm still using 6.0). I'll try to
whip up a silly little test demo (like some spinning objects or something) with the new system sometime soon.
I'm excited because once I finish all this groundwork, new engine features should make their way in pretty
rapidly. I'll likely pull another all-nighter and get the DLL out of the way.
|
 |
Few More Things
|
14 November 1999 (12:32am) - Early Sunday
|
|
Things may appear to be rather slow on the engine front, but they're really not. I've been
working at the new design and engine base quite a bit. Hopefully once I get all of the
core code out of the way, then fill in the blanks, things will pick up much more rapidly.
I believe I finally came up with a design that I like. It leaves the pipeline and renderer
pluggable and can be implemented via COM or just vanilla DLLs. At this time, I'm strongly considering
the latter. More later.
|
 |
3DS Conversion Tool
|
11 November 1999 (12:01pm) - Thursday Afternoon
|
I was testing a few parts of my object engine and decided to rewrite and release a handy
little utility which will convert a 3DS object to a modified .ASC format (text file).
Why on earth would I do that when other modelers and conversion tools can already export
ascii files? Well, I've never seen one that preserves the texture coordinates! How
fun can that be? I believe the old 3D Studio for DOS had an ascii export which would
write the texture coordinates, but who still uses that thing? If you do, then you won't
need this utility.
Before anything else, credit where its due: The bulk of the 3DS loading code was adapted
directly from a 3DS loader released by Jare of Iguana into the
public domain. All credits to him for that. This program is
basically just a front-end & exporter that works with his loader. Its rare that I ever
work with other people's source code, but in this case I have no interest in wasting my time
to learn all of the chunk specifics of the 3DS format, especially when all I want are the
vertices and faces. That's pretty much the whole point of this program.
The export format is extremely simple to work with or convert to your own format, and it
preserves the texture coordinates at the vertices (if they're present in the object).
Anyway, I just thought it might be useful to someone. No big deal. I remember a while back,
looking far and wide for a converter that would save out the bloody
texture coordinates - with no success. If you're interested, grab it over on the downloads page.
|
|

Download 3ds2asc.zip (25k)
|
|
 |
An Bit On Design & COM
|
10 November 1999 (11:39pm) - Late Wednesday
|
I've been thinking long and hard about how exactly I want to restructure my engine's design. To be quite
honest, one of the main influencing factors for making any changes in the first place has to do with the
up and coming transformation and lighting hardware. Its sick to think how many people are going to get
screwed when they realize that their engine is based entirely on their own software transformation pipeline.
They'll of course gain nothing from the new hardware. So, what I decided, is that I want my entire
transformation unit pluggable via COM. COM makes this very easy and intuitive. In fact, I want most
portions of my engine pluggable so that the engine never really dies. I don't want to be redesigning the
thing from the ground up in another few monthes. I'd like to do it the "right way" now and not have to worry
about it again.
COM is one of those things that looks scary from a distance, but when you actually step up and wade through
the crap, its really not difficult. My concern is not the implementation... its the design. My old
design motto was just to keep things modular. This works pretty nicely, but when it comes to COM interfaces,
I want large sections that do a lot of work rather than a bunch of little ones. I'm still working this out
and I'm not sure if that's a great idea. I'll see.
On a somewhat related note, here are some links to some documents on engine/game design:
Designing a PC Game Engine by Bishop, Eberly, Whitted, & Others
The Cougar 3D Graphics Engine: Overview by Niklas Elmqvist
More on the design ideas later... must code some things now.
|
 |
The World As It Stands
|
09 November 1999 (2:01pm) - Monday Afternoon
|
Because I started the engine before this web site, its only logical that I explain where the engine
currently is and what I plan to do next. But before that, let me tell you what this web site is for.
The main reason I have this site up is to act as somewhat of a journal
that I can look back on someday to see what I was working on when I was just a lad :). I hope, however, that
you will gain something from reading some of my updates, tutorials, and/or viewing demos. From time to time I plan
to post small pieces of code, tools, or descriptions of techniques, but I'm not planning on releasing the full
source code to the engine (for now anyway). It changes way too much and I've got too much invested
in it to actually give it away right now. By the way, this is the fifth version of the grain engine.
If by some cosmic coincidence, you happened across the web site I had up for grain 3 (2 years ago), welcome back.
In any event, that's what the site is for. Now for where I am...
I started this site at this time in the engine's development because I'm currently re-structuring the whole thing.
I'm essentially starting over, only not. The whole design is being reworked, but much of the code and tools
are already written. The engine itself though, I'll be talking about pretty much, in effect, "from the start"
as I try to work out an exceptional design.
Anyway, I've got some work to do. I'll update again (with a real update and some screenshots from the tools) tonight.
|
 |
Screenshots For This Month:
|

copyright (c) 1999 kurt miller. all rights reserved.
|