FFP Software Rendered Graphics Engine

No. :wink: Are you referring to LWJGL specifically or just OpenGL?

Iā€™m referring to basically any framework built around an engine. Let me get some examples!
Right now, I canā€™t really think of any example involving LWJGL, except maybe for some rather frustrating problems caused by the fact it was built to work with buffers instead of arrays.
However, I have been working recently with the C++ library SFML (which is also built on top of OpenGL); in SFML, you cannot really just create a texture and render it multiple times in different locations; to do that, you have to create one rectangle object, pass it a size, a location and a texture, then draw it once, change its location, draw it once more, change its location, etc. Or you can create a bunch of rectangles, pass each of them a different location and the same size & texture, and draw them all. And itā€™s the same if you just want to quickly render a texture that just exists for one frame: you have to create a new rectangle object each time. Fortunately SFML allows direct OpenGL calls to be made :slight_smile: But if you really hide the engine completely behind a framework you want to give access to every single feature via the framework, Iā€™d say.

@J0 Donā€™t worry about this. All the methods are static and there are NO java objects available to the user because they arenā€™t needed. All methods have parameters of ints, floats, and int arrays or float arrays. All the ā€˜wrappingā€™ is up to you because I like to keep the layer between the engine and the user as thin as possible.

Sounds interesting and Iā€™m excited to build some 3D examples with the FFP Engine! :slight_smile:

The day is finally here!

Here is release build 1.0.0 of the FFP engine!

Link in main post

This ZIP archive should contain three folders and a jar file.
The three folders are: doc, eutLE, and ffp_examples
The jar file is ffp_1_0_0.jar

doc - the javadocs for the engine (this is also packed in the jar file for convenience)
eutLE - the source code of the light version of my windowing and input library.
ffp_examples - all the examples you see in the images in the main post and some extra ones :slight_smile:
ffp_1_0_0.jar - the jar file that contains the 3D engine. Link this to a project to be able to use it.

If you have any questions, concerns, or bugs to report, please either post them on this thread or private message me!

I will try to build some examples later with the Engine and try to unterstand how it Works :slight_smile:

Could you reupload the Engine again ? :slight_smile:

Yeah of course give me a little bit, I was fixing some bugs and I removed some redundant content. I also added spotlights and phong shading!

Oh Okay because I want to start coding with the Engine again today and I was confused why it was down and I delete the old Engine accidentally :slight_smile:

EDIT: I want to code a simple FPS Level with this Engine could you help me with the Level Loading because you have already a working example :slight_smile:

Ehhhā€¦ Thatā€™s a lot of work. I use BSP trees for the levels and thereā€™s way too much code and understanding behind it to just throw at you. Try doing text file loading where the map is 2D and you use ascii characters to make a map.

EDIT:
Iā€™ve put the link back up and iā€™ve added more pictures to better reflect the current state of the engine!

Oh Okay I will try the method with ASCII but are there any tutorials or Introductions for the BSP trees ? :slight_smile:

Yeah there are plenty, but the good ones are in the corners of the internet.

http://www.luki.webzdarma.cz/eng_06_en.htm
This one is in java v
http://www.theparticle.com/applets/geometry/BSPSlidingCollisionFlightBox/index.html

I tried out your Engine with the ffpVertex3f Calls so the Immidiate Mode and its very slow and I have low FPS.I have some Questions to your Engine:

  1. How can I load OBJ Models ?
  2. How can I use OpenGL 3 Functions like glDrawArrays or something ?

But the Engine is very easy to use and when I work longer with it, I think it would be good so build some Games :slight_smile:

You could probably roll your own .obj loader :slight_smile: I have also seen libraries available that do that as well, but interoperability with FFP might not be there.
From memory, @Archive implements OGL 1.1 spec so there wouldnā€™t be many (if any at all) OGL 3+ functions? Correct me if Iā€™m wrong :stuck_out_tongue:

Also @Archive, it looks like itā€™s going really well. Keep up the good work!

Okay then I must try to roll my own OBJ Loader and with the not available OpenGL 3.3, I dont know that :smiley:

@TGStudiosDE, The engine is not a hardware accelerated engine. Itā€™s an emulation, for the most part, of OpenGL completely on the CPU, so you shouldnā€™t expect speeds anywhere near hardware accelerated graphics. I think this is a good thing because it forces you to write good, efficient code. Also, I recommend using resolutions of 640x480 or under if you want speed. This sounds like a low resolution already but understand that modern games only NEED high resolutions because the detail in their games require that much resolution. In low detail games, the graphics look perfectly fine in resolutions as low as 640x480 or even 512x384.

As for the OBJ loader. I do have one for this engine :slight_smile:
This is what I currently use, a bit stripped down though.
http://www.mediafire.com/file/9fk3meayy7vb24l/obj.zip

and yes, @Coldstream24, this is OGL 1.1, there are no vertex arrays and I didnā€™t even implement display lists because the speed wouldnā€™t be too different since this is a software implementation. And thanks!

Oh okay thanks I will try this OBJ Loader and try to build some Scenes with the Engine and also try to draw some Text out and some other things :slight_smile:

I feel like a good project to undertake with this engine would be to port Doom to it.
Seems like a suitable rite of passage :slight_smile:

Nah doom doesnā€™t take advantage of a 3D engine. Quake is more fitting. And thatā€™s similar to what im doing with my game already :smiley:

Id love to dig into the code, but its probably better to ask hereā€¦
If this operates similar to a graphics pipeline like OpenGLā€™s Fixed Function how hard would it be to turn it into a LibGDX backend? Maybe simulate VBOs with actual arrays, FBOs with imagesā€¦
Iā€™m not sure how shaders would work, but It would be really cool to have any libgdx game run absolutely anywhere.