Discuss here...
Quoted from Kojima in the PS2DEV forums
Hi,
Here's the first alpha of raptor 3d,
http://www.savefile.com/files/7771278
It's a hybrid engine that is a port of MiniB3D by simon harris, and my own engine Trinity, both of which are open source pc gl engines.
It's wrote against the latest svn version of pspgl and as such requires you have it installed before using this.
Currently the project is a single file containing a small demo and the engine, by alpha2 maybe 3, it will be organized into seperate files for each class.
Current engine features:
SceneGraph with child/parent relationships.
Multi-texture material (Only 1 one texture supported atm, need to do multi-pass stuff)
Full suite of entity maniuplation functions, including position/rotate/lookat/scale etc.
Matrix class.
2D Engine using pens for fast orthogonal 2d rendering of rects/lines 2d textures.
2D Gui, with windows, buttons, plugin styles and more, including full mouse cursor emulation via the nub, dpad and action buttons, sliders, canvas etc
Full support for static b3d files made popular by the blitz3d Application.
Font renderer.(Uses texture based fonts)
Logger (Create text logs and log output via Logger->Log())
And some other stuff.
Next version will add boned animation via b3d and more including multi-pass texturing.
As this is open source, I'd be happy to have others contribute to the engine or even put it on the svn if enough people use itExample Code of how easy to use it is,DiscussCode:InitRaptor(); Joypad *joy = new Joypad; Display *sys = new Display(argc,argv); Camera *vcam = Factory->ProduceCamera(); vcam->Position(0,8,-20); Renderer->_ActiveCam = vcam; vcam->PointAt(0,0,0); Entity *ent = LoadB3D( (const char *)"ship1.b3d",NULL ); ent->Rotate(90,90,90); ent->Position(50,0,0); if(ent==NULL) { Logger->Log("Loadb3d returned null entity.\n"); } else { Logger->Log("Loadb3d returned valid entity.\n"); } Font *fnt = new Font("fnt1.bmp",32,32); FontRenderer->SetActive( fnt ); FontRenderer->SetColor(1,1,1); float cx,cy; cx=0; cy=0; float ex=0; int ec = Renderer->CountEntities(); Logger->Log("Entities:%d \n",ec); ent = Renderer->GetEntity(0); Logger->Log("Got Entity.\n"); ent->Position(25,25,25); if(ent == NULL) { Logger->Log("Entity is null.\n"); } else { Logger->Log("Entity not null.\n"); } while(1) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); //vcam->Move(0,0,0); glLoadIdentity(); joy->Update(); float xi,yi; xi = joy->_x; yi = joy->_y; if(fabs(xi)>0.4) { cx+=xi; } if(fabs(yi)>0.4) { cy+=yi; } ent->Position(0,0,0); ent->Rotate( cy,cx,0 ); FontRenderer->RenderText(0,0,"Gui Test Alpha 1"); Renderer->RenderScene(); if( joy->_rtrigger ) { screenshot("mplay"); } glutSwapBuffers(); }..Getting frontpaged, and I needed a place for the devs to discuss about this.


LinkBack URL
About LinkBacks


..Getting frontpaged, and I needed a place for the devs to discuss about this.
Reply With Quote






