Java-Gaming.org Hi !
Featured games (90)
games approved by the League of Dukes
Games in Showcase (777)
Games in Android Showcase (231)
games submitted by our members
Games in WIP (856)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: 1 [2]
  ignore  |  Print  
  FFP Software Rendered Graphics Engine  (Read 26201 times)
0 Members and 1 Guest are viewing this topic.
Offline TGStudiosDE

JGO Coder


Medals: 14
Projects: 3
Exp: 3 years


17 Years Old Developer from Germany :)


« Reply #30 - Posted 2017-03-10 12:55:37 »

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

Contact me about Bugs: TGStudiosDE@gmail.com
Offline Archive
« Reply #31 - Posted 2017-03-10 17:22:36 »

Oh Okay I will try the method with ASCII but are there any tutorials or Introductions for the BSP trees ? Smiley
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

Offline TGStudiosDE

JGO Coder


Medals: 14
Projects: 3
Exp: 3 years


17 Years Old Developer from Germany :)


« Reply #32 - Posted 2017-03-10 20:40:55 »

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 Smiley

Contact me about Bugs: TGStudiosDE@gmail.com
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline Coldstream24

JGO Ninja


Medals: 82
Projects: 1
Exp: 4 years


You can fill that void inside with programming, but you'll never return a value.


« Reply #33 - Posted 2017-03-10 21:28:49 »

You could probably roll your own .obj loader Smiley 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 Tongue

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

My website: http://www.onedropgames.com/
My soundcloud: http://www.soundcloud.com/coldstream24
Creator of the Morningside Engine, co-founder of Onedrop Games.
Offline TGStudiosDE

JGO Coder


Medals: 14
Projects: 3
Exp: 3 years


17 Years Old Developer from Germany :)


« Reply #34 - Posted 2017-03-10 21:46:44 »

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

Contact me about Bugs: TGStudiosDE@gmail.com
Offline Archive
« Reply #35 - Posted 2017-03-11 00:22:39 »

@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 Smiley
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!

Offline TGStudiosDE

JGO Coder


Medals: 14
Projects: 3
Exp: 3 years


17 Years Old Developer from Germany :)


« Reply #36 - Posted 2017-03-11 08:36:01 »

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 Smiley

Contact me about Bugs: TGStudiosDE@gmail.com
Offline Coldstream24

JGO Ninja


Medals: 82
Projects: 1
Exp: 4 years


You can fill that void inside with programming, but you'll never return a value.


« Reply #37 - Posted 2017-03-11 21:21:41 »

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 Smiley

My website: http://www.onedropgames.com/
My soundcloud: http://www.soundcloud.com/coldstream24
Creator of the Morningside Engine, co-founder of Onedrop Games.
Offline Archive
« Reply #38 - Posted 2017-03-12 01:17:52 »

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 Smiley
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 Cheesy

Offline Ecumene

JGO Kernel


Medals: 197
Projects: 4
Exp: 8 years


I did not hit her! I did not!


« Reply #39 - Posted 2017-03-12 02:22:46 »

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.

Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline Archive
« Reply #40 - Posted 2017-03-12 04:59:19 »

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.
FFP operates in a fashion that's very similar to OpenGL's fixed function pipeline, in fact I named it FFP (fixed function pipeline) because of this. I've never used LibGDX so I'm not sure what it has and what it needs but I'm sure it can't be hard. The engine already has FBOs essentially since you can point the engine to using a certain render target whenever you need. For VBOs, you can wrap the ffpVertex() function calls with the functionality of VBOs. Since this is a software renderer, there is little overhead for calling ffpVertex() and thus VBOs being integrated into the engine itself wouldn't provide much of a performance boost.

I'll definitely look into LibGDX, you've got me curious now :p

About the shaders... I'm not sure how I could implement them, or if I would even want to implement them. I avoided shaders because I feel like they should remain as a hardware accelerated feature. The processing needed for a shader is not convenient for a software renderer and any features that need to be added using shaders are probably not going to run fast on the CPU anyways. The fixed function lighting in the engine is as realistic as I could make it and it's as fast as I could make it.

Offline Ecumene

JGO Kernel


Medals: 197
Projects: 4
Exp: 8 years


I did not hit her! I did not!


« Reply #41 - Posted 2017-03-12 13:53:07 »

I'm not sure how I could implement them, or if I would even want to implement them. I avoided shaders because I feel like they should remain as a hardware accelerated feature.

It would be a challenge, but you could probably replicate the shaders functions in java, the hard part is taking in inputs and outputs and probably compiling the shader to java.

Basically you'd have a simple shader wrapper class, that takes raw shader lines in a string array then just fill up a list of functions that operate over a given list of values (float, texture sampler, ect.) then companion classes per every shader function (ShaderFuncTexture2D, ShaderFuncMix, ShaderFuncSin..)

You'd do blending, depth testing and the clipping or whatever, but the possibilities of having a GLSL function on the CPU oh boy!

It's a challenge but how awesome it would be to run any any libgdx game on the CPU and have it work 1:1 (or 1:crappy shader interpreter in this case)

Offline Archive
« Reply #42 - Posted 2017-03-12 16:53:59 »

I'm not sure how I could implement them, or if I would even want to implement them. I avoided shaders because I feel like they should remain as a hardware accelerated feature.
...
Right, but the software renderer is already struggling to keep up most of the time and adding shaders to it would make it run at awful frame rates. Do you understand what I mean?

Offline Ecumene

JGO Kernel


Medals: 197
Projects: 4
Exp: 8 years


I did not hit her! I did not!


« Reply #43 - Posted 2017-03-12 17:15:27 »

Right, but the software renderer is already struggling to keep up most of the time and adding shaders to it would make it run at awful frame rates. Do you understand what I mean?

I understand, I guess you could go without shaders, and just set material properties similar to glColor and glLight.. LibGDX's "Environment" seems like a good place to derive that info

Also check out LibGDX's backends on github, that might have all the info you need to port it:
https://github.com/libgdx/libgdx/tree/master/backends

EDIT: It looks like libgdx is completely open to any kind of backend, if your engine operates somewhat like OpenGL it shouldn't be any trouble!

Offline Archive
« Reply #44 - Posted 2017-03-12 19:03:21 »

They have interfaces for GL20 and GL30. I can't find anything for < GL20

Offline Ecumene

JGO Kernel


Medals: 197
Projects: 4
Exp: 8 years


I did not hit her! I did not!


« Reply #45 - Posted 2017-03-12 22:30:02 »

Hmm, I've always assumed LibGDX's GL20 interface contained the fixed function methods from OpenGL 1.. But you can get away with porting most of the stuff from GL20 like VBOs and FBOs then filling in the stuff for the shaders and textures.

Idk if it'd be worth it, but libgdx has some great 2D/3D utils your engine could use.

Offline Archive
« Reply #46 - Posted 2017-07-07 05:08:27 »

Updated main post. I created a website for the engine. Everything you want to know about it is there.
http://miremadi.com/code/wsite/index.html

Pages: 1 [2]
  ignore  |  Print  
 
 

 
hadezbladez (331 views)
2018-11-16 13:46:03

hadezbladez (172 views)
2018-11-16 13:41:33

hadezbladez (329 views)
2018-11-16 13:35:35

hadezbladez (80 views)
2018-11-16 13:32:03

EgonOlsen (2171 views)
2018-06-10 19:43:48

EgonOlsen (2199 views)
2018-06-10 19:43:44

EgonOlsen (1375 views)
2018-06-10 19:43:20

DesertCoockie (2007 views)
2018-05-13 18:23:11

nelsongames (1644 views)
2018-04-24 18:15:36

nelsongames (2294 views)
2018-04-24 18:14:32
Deployment and Packaging
by mudlee
2018-08-22 18:09:50

Java Gaming Resources
by gouessej
2018-08-22 08:19:41

Deployment and Packaging
by gouessej
2018-08-22 08:04:08

Deployment and Packaging
by gouessej
2018-08-22 08:03:45

Deployment and Packaging
by philfrei
2018-08-20 02:33:38

Deployment and Packaging
by philfrei
2018-08-20 02:29:55

Deployment and Packaging
by philfrei
2018-08-19 23:56:20

Deployment and Packaging
by philfrei
2018-08-19 23:54:46
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!