Theres ben a few topics asking about using Panda3d for 3d, over the years, but not too many very conclusive ones; I would humble ask for your thoughts on it again, but with regards to some specific points…
- I’d like to use a 3d engine rather than a 2d one, so that I have access to some handy operations; I’ve written the 2d engines with page-flipping sprite-sheet type artwork for a million years, but I’m hoping I can get a lot of handy features this way…
- I could roll my own using GLES and some python ctypes wrappers, but again, not wanting to reinvent the wheel again
Using a 3d engine like panda 3d…
- gets you cross platform nicely (sure, SDL and so forth can get you that too)
- get ‘free’ rotation, flipping, scaling on ‘sprites’; a sprite really just being two back to back tri’s, or a 4 point polygon if we can do that(auto splitting?), with a texture; so would need to load image into texture or create texture on the fly… if panda3d can’t do that, shouldn’t be too hard to fake it at laod time
- I don’t want to use egg files or whatever, I’ll be pulling down all my tile artwork from local or remote images, so just have bmp or png or jpg to work with, dynamicly set up (changing images on the fly and such.)
- I do want to be able to do zoom and rotate of the scene as a whole… ie: say you’re doing a map editor for Super Mario, you might want to pull way back and see the whole scene, or zoom in to see it as a player would; smooth zooming in/out using a 3d engine shoudl be as eay as setting the camera paramters, right?
- I’m figuring I’d get ‘free’ alpha blending … put a tile down for base, put some features on it (add a tree to a base tile say), add a player charactert on top of that, and add some weapons onto the player say for example… putting som eumber of image son top of each other, with transparencies (so the tree can be on a greass tile say), and having stuff like a weapon that glows with pulsing in and out… just a matter of setting transparency and colouring on the polygon that contains the textures, perhaps?
I figure to render a scene, would be a matter of … at level ‘startup’, set of a scene graph with all the static stuff (the map), and then render time is rendering that scene graph, along with additional polys for the sprite groups and so on.
Should be doable … I expect I’d be fighting with some of panda3d since it inherently is more 3df than that…
… but do you think this would be a good match?
Or should I just go back to rolling my own?
I don’t want to just use SDL (say), since then you’re really on a 2d thing, and doing zooming and flipping and such becomes tedious (ie: I’d be tossing a lot of memory away with pre-rotating and pre-flipping all the sprites, and doing stuff like whole-scene zooming and rotating is _very cpu intensive, impossible on low end machines that would have no problem doing it in gles)
WHeck, with panda3d, might even be able to do it with kivy to get UI elements …
Thoughts?
Thank you for your reading and time