|
Submitted by , posted on 20 November 2002
|
|
Image Description, by
Here is a little progress screenshot of my in-development 3D Engine
dubbed 'xGL' or xtremeGraphicsLibrary. The current full name is xGL
3DPocketPC Engine (16Bit) v1.2 :) I've been working on fixing up the
engine for about a week now, however the core engine code was written by
me in Visual Basic sometime around ~1999 and took much longer to build.
the original engine's source code to it is still floating around one of
my old and abandoned WebPages. Anyhow, I took the core engine code and
ported it to VC and used EasyCE to take care of underlying
rasterization. Because of this, my 3D Engine can theoretically run on
all versions of wince as well as be compiled a desktop workstation.
Unfortunately, I've never been able to get OpenPTC working on my
computer and I don't own an actual iPaq/PPC/WinCE device to test it out
on. so the emulator and compiled VB applications are my only testing
engine. (Please feel free to donate a PPC to me, I'd appreciate it).
After the engine was ported, I took out my chewed out copy of Andre'
LaMothe's The Black Art of 3D Game Programming, and started dropping
useful chunks of code into the engine. I also got some useful techniques
off of various well known authors working (C-Buffer, etc), and cleaned
out the engine so that it would look like OpenGL.
Here is a list of the current engine commands:
xglBegin();
xglClear();
xglClearColor();
xglColor3f();
xglColor4f();
xglDisable();
xglEnable();
xglLightfv()
xglLoadIdentity();
xglLoadWavefrontOBJ();
xglRotatef();
xglTranslatef();
xgluLookAt();
Basically, I'm trying to make a PocketGL, however since that cool name
is already taken, I had to choose xGL instead. There are a lot of
features in this engine as of now. the coolest of which are 5 different
types of FSAA (Full Screen Anti Aliasing), Alias Wavefront Maya .OBJ
Loading, Java3D .OBJ Loading, up to 2 lights (no light RGB's. only
intensity values), C-Buffer for 0% overdraw, and a globalmatrix which
takes care of translations and rotations just like OpenGL. One thing you
might notice is that in a lot of software 3D engines have functional
equivalents to RotateObject3D(obj, rotatevector). Instead of doing that,
you just call up nifty xglRotatef and xglTranslatef and go from there.
The next things I plan to implement are gouraud shading, texture
mapping, triangle strips, object clipping and an elementary particle
engine. I know it seems far fetched, but if I can just find some killer
way to get the engine optimized, it might all just work out. My final
goal is to license the engine and use it myself with my upcoming 3d
pocket pc games. If anyone would like do donate a PocketPC to me or
perhaps just more screenshots (I have a bunch), please email me, Uthman
Apatira, at wiz3d@i-gear.net
http://www.i-gear.net/
|
|