Rendering Engine


Kordman916

Still Fresh
Joined
Jul 6, 2010
Messages
72
So I've been using Irrlicht for some time now to act as my rendering engine but now after figuring out how complicated it is to get Irrlicht to run on the Pandora I decided to ask and see if there was another rendering engine that I could use that works flawlessly with Code::Blocks and is able to be compiled and run on the Pandora with no problems at all.

I hear alot of talk about SDL but does it work on the Pandora flawlessly or what?

I heard that SDL isn't just a 2D engine but it also supports 3D is that true?

Also does SDL support shaders and particle effects?

If you know of any other rendering engine or have more information about setting up SDL in Code::Blocks so that it works with the Pandora compiler let me know it'll help me out alot.

Thanks in advance,
Kordman916
 
Last edited by a moderator:
SDL isn't really a rendering engine, it just gives you an abstract graphics surface. You can paint on the surface manually, ask SDL to blit other surfaces onto it, or ask SDL to create an OpenGL context for it.

In that case, it is technically possible to have 3D rendering in SDL, through OpenGL, but it's not considered an engine. There's still a lot of work like loading models, performing animations, etc.

SDL just bootstraps OpenGL, which supports GLSL shading.
Particles aren't really something you support, they're a graphics concept. You can draw particles in any rendering system. My Qt game will probably have particles at some point.

You might look at OGRE3D, although my experience has shown it to be a pain in the ass even on x86 Linux.

I haven't really found a graphics library that works well, at all, and my own efforts to create one ended melodramatically, with me on my knees cursing Blender, Art of Illusion, and Irrlicht for failing to provide a free 3D modeller that actually works 100%. (long, long story... Blender doesn't track its rotations sanely AT ALL, and AoI uses some kind of screwed-up Java for scripting)

Oh, that reminds me.
Qt is working on something that produces 3D graphics. It has to do with QML. No freaking clue how it will attach to a programming language, but since it's Qt, it should at least work well on ARM and have some decent tools.
Flash Video related: http://www.youtube.com/watch?v=OXcxFZbKUNI
 
That "engine" looks awesome and the best part is how simple it looks to program animations and things.

Sadly I hate using any other IDE than Code::Blocks so I'm gonna wait until they release the project so I can see if I can get the source working with Code::Blocks.

I'm hoping that we might have an Irrlicht wrapper for the Pandora soon so that I can begin programming things without having to worry about converting my code later.

But anyway keep the Ideas for rendering engines open!

What do most people use to render 3D models on screen?
 
If you want to do 3D Graphics on the Pandora, right now the simplest thing to do is roll your own. You can see an example for how to do this with the Wakebreaker sources, which in my opinion provide a very good basis for doing 3D stuff by hand, without some 3rd-party dependency. Certainly its a lot of work, though.
 
Kordman916 said:
So I've been using Irrlicht for some time now to act as my rendering engine but now after figuring out how complicated it is to get Irrlicht to run on the Pandora I decided to ask and see if there was another rendering engine that I could use that works flawlessly with Code::Blocks and is able to be compiled and run on the Pandora with no problems at all.
As 3D engines, ogre3D and Irrlight could be relatively easy to bring in.
If you're not able to bring them up. No problem.
Show us your skill on a desktop with Irrlight and you'll have your Irrlicht package :)
 
Last edited by a moderator:
torpor said:
If you want to do 3D Graphics on the Pandora, right now the simplest thing to do is roll your own. You can see an example for how to do this with the Wakebreaker sources, which in my opinion provide a very good basis for doing 3D stuff by hand, without some 3rd-party dependency. Certainly its a lot of work, though.
Becomes kinda infeasible when you want to have animated humanoid characters in your game though, doesn't it?
 
Last edited by a moderator:
sebt3 said:
Kordman916 said:
So I've been using Irrlicht for some time now to act as my rendering engine but now after figuring out how complicated it is to get Irrlicht to run on the Pandora I decided to ask and see if there was another rendering engine that I could use that works flawlessly with Code::Blocks and is able to be compiled and run on the Pandora with no problems at all.
As 3D engines, ogre3D and Irrlight could be relatively easy to bring in.
If you're not able to bring them up. No problem.
Show us your skill on a desktop with Irrlight and you'll have your Irrlicht package :)

Do you mean something like this? ATF Irrlicht Demo - Windows and Linux

Windows click ATF.exe
Linux click ATF

W,A,S,D - movement, SPACE - fire, K - smart bomb, L - reverse and RETURN - START


Because I'd love my Irrlicht package ;)
 
Last edited by a moderator:
Unfathomable Depths said:
Do you mean something like this? ATF Irrlicht Demo - Windows and Linux

Windows click ATF.exe
Linux click ATF

W,A,S,D - movement, SPACE - fire, K - smart bomb, L - reverse and RETURN - START


Because I'd love my Irrlicht package ;)

Geez, I didn't expected such a quick answer to this :) (I should have shut my mouth :p)
I already done a quick test on irrlicht and it's easy to bring :
Bring this : http://code.google.com/p/irrlicht-em/source/checkout
Read this : http://beaversource.oregonstate.edu/projects/cspfl/browser/trunk/software/openembedded/packages/irrlicht/files/irrlicht_beagle.diff?rev=391 (warning this doesn't applyat all, but might prove itself usefull for the colors)
And this to fix the texture problem : http://groups.google.com/group/beagleboard/browse_thread/thread/1772980c997a7f56

And you're done basically.
I lost my package in a disk failure (3 weeks ago :( ) and now I'm going to be pandora less for a while : lcd ribon is dying.
But I do have free time this evening, I'll see what I can bring to life :p
 
Last edited by a moderator:
So there is no real working 3D Engine for Pandora yet? (except Quake Engine or so I guess).
Hm... would explain why nearly every (non emulator/port) Pandora Homebrew is still 2D at the moment. ^^"""
 
fusion_power said:
So there is no real working 3D Engine for Pandora yet? (except Quake Engine or so I guess).
Hm... would explain why nearly every (non emulator/port) Pandora Homebrew is still 2D at the moment. ^^"""

Not quite.
Porting 3D apps is a bit harder, since most use OpenGL so you need to convert it to OpenGL ES or use a wrapper.

A 3D engine would help producing 3D homebrew games - but designing a good 3D game is probably harder than coding it ;)
 
Last edited:
EvilDragon said:
A 3D engine would help producing 3D homebrew games - but designing a good 3D game is probably harder than coding it ;)

Yea, 3D is really easy to code for once you have something like Irrlicht working. Design is always hard.
 
Last edited by a moderator:
Eniko said:
Becomes kinda infeasible when you want to have animated humanoid characters in your game though, doesn't it?
well, all that is required is the ability to export (1) meshes with bone attributes, and (2) skeletal animations from your modelling package of choice.

so, what's your modelling package of choice?
 
Last edited by a moderator:
Silo, then Blender. But unless I'm missing something here how would that help without a library to actually give this stuff to so it gets properly animated? Am I grossly overestimating how hard it is to roll your own animation code?
 
Eniko said:
Silo, then Blender. But unless I'm missing something here how would that help without a library to actually give this stuff to so it gets properly animated? Am I grossly overestimating how hard it is to roll your own animation code?
Animation is sort of easy, but I spent some amount of time trying to wrangle Blender into exporting animation. I got it to export IPO curves, but I had already planned to use quaternions or matrices or something, and the rotations would be relative to one thing (say, global space) while the positions were relative to another thing (parent object) and to make a long runon sentence, Blender has some really shit parts and is frustrating and poorly documented. And rarely gives you things in the coordinate system you expect.
 
Last edited by a moderator:
Has anyone tried OpenSceneGraph on the Pandora? It's not really wide-spread (yet) but it's by far the fastest OpenGL-based rendering engine I've ever seen, and it is extremely easy to use. I'd really like to see a port to the Pandora (OpenGL ES 1.0, 1.1 and 2.0 are already fully supported afaik.) because this is an engine that shows a lot of potential on performance-limited devices.
 
Eniko said:
Silo, then Blender. But unless I'm missing something here how would that help without a library to actually give this stuff to so it gets properly animated?
not familiar with Silo, but blender should not be much of a problem to extract either meshes or skeletal animations from.

Am I grossly overestimating how hard it is to roll your own animation code?
all skeletal animation systems i've ever seen can be pinned down to:

Code:
@compute_animation
for every animated bone entity (matrix, quat, euler, you-name-it)
  find pair of keyframes enclosing the moment on the timeline we are interested in
  apply desired interpolator between these keyframes (usually linear)

@before_draw:
for every node of your skeletal tree
  update the binding_pose-to-current_pose-to-root_space transforms from the local_bone-to-parent transforms taken from the newly computed bones above
  update the draw pipeline parameters cooresponding to the node - matrices (only option in the fixed pipeline), quats, what-have-you (programmable pipeline)

@draw
draw your mesh with the draw pipeline parameters from above, also factoring a desired root transform

clearly, depending on the amount and complexity of the interpolators and other factors, the amount of work for the task can vary considerably, but in its most bare-bone case, it can be fairly light.

here's a nice tutorial on skeletal systems in the context of GL.
 
Last edited by a moderator:
Eniko,
I could be wrong but I always thought the animation was kinda static. Like 2D, but with more "frames" for you animations - usually. (I remember Quake 1/2 animations seemed very much legs together, legs apart...legs together, legs apart... Many 2D games seemed to have more frames of animation.) So you'd have a walk/run/jump cycle pre-calculated, and all you'd do is tell the character which direction it was pointing in, what "frame" it was on, and have a point reference for its place in 3D space. The "animation" would be pre-done in your your rendering package of choice. It gets a little tricker with hills or steps, but mainly that would be calculating the height of the character, I thought. Is it worse than that in most games?
 
Darkblu,
Just saw your link to the tutorial. Nice. I guess you can do it the way I described, but it appears there are other ways as well. Cheers!

Edit: Other, newer ways that may work better.
 
Back
Top