What is feasible or not in Panda3D

Hello all -
I’m quite new to Panda and I like it a lot in term of ease of programing.
Yet there is still a major concern I have in mind: what can be realistically completed or not with Panda3D?
Most of the demos I have seen are not very ‘flashy’ and prior to investing a lot of efforts in developping a game, I would like to get a fair view on the subject.

For instance googling the web (and this is in no way an a commercial for unigine or other companies to which I’m not related at all!!): how is it possible to have this kind of real time render:
unigine.com/products/unigine/oil … nkship.jpg

youtube.com/watch?v=6swDR83O … re=related
youtube.com/watch?v=7hEhU1q_ … re=related

or even better!
youtube.com/watch?v=3nTCyP99 … re=related

Sorry to ask such basic questions
Just wondering if this is realistic to expect developping such things with Panda3D, and then if yes: it would really be nice to get some tutorial on the first steps


It’s possible to do pretty much anything in Panda3D, but you have to be ready to produce the artwork and shaders. Panda3D doesn’t really stand in your way. It’s never the 3D engine itself that provides the nice graphics, it’s always up to your artists and shader programmers.

thank you rdb -
you see the point is that even if one can say ‘the only limit is your imagination’, at a certain point there is some hard work to be done and some tools are providing different primitives than others to ease development task and time.

This is what i don’t see in Panda3D, ie how much effort is needed to get something ‘state of the art’. Should we reinvent a bunch of wheels? For instance some friends of mine are in favour of cryengine ( mycryengine.com ), they claim that this is by far a superior product.
Don’t take me wrong, I don’t want to start the game of comparing bells and whistles among different products, my only point is that i’d like a fair assesment on what are the ‘practical limits’ of Panda, since so far i’ve not seen outstanding graphics demo written in Panda.

Additionally what kind of efforts are you refering to when talking about writing specific shaders?


long story short:
if you load panda’s tutorial art into crytek, it will look like panda’s tutorial art.
if you load crytek art and shaders into panda, it will look like crytek art.

the fact that you have not seen state-of-the-art demos in panda, is that noone cared to make some. since panda is not a commercial product that needs to boost sales, there is no need for such a demo, thus noone made any.

there are many aspects to evaluate when choosing an engine. like programming or scripting language, integration with libraries you need/want, available toolkits, licencing, budget, target platform, etc…
Most modern engines, including panda, allow you to do more stuff than you will have lifetime to actually implement.

as rdb already pointed out, visuals are made by artists and shader programmers (in combination with a capable enough gpu), not by the engine.

the effort it takes is pretty much the same for every engine , unless the stuff you are looking for was already made by someone else so you can simply re-use it.

I think what the OP wants to know is how much does the engine provide which you would otherwise need to write yourself.
I can’t agree that shaders included with a library are not part of the library, being a piece of code like everything else. Of course you can write them yourself, but the same way you can write or modify any other piece of the library to behave exactly as another one.
But you’ll hardly argue that any (open source) library is not ‘worse’ than another one because you can add what you want yourself. One of the reasons of using a library is to not reinvent the wheel with using OpenGL/DirectX.
So I think it’s important to note what shaders Panda includes for you.


In this case i suppose that a bunch of already written ‘semi-standard shaders’ (lighting,…) are floating around and can be used as a library for Panda3D’s scenes. Obviously the artworks work will still have to be done, but that’s ok.
So the point is, there should be somewhere a backlog of Panda already used nice shaders… isn’t it? If not why don’t suggesting a repository shared by the community?


I fully agree with your statement, some more understanding of all this is wished

I haven’t tried working with Unigine yet, but it does look sweet, and big ups to them for their linux support :slight_smile:

I think to be able to figure out the answer you have to be able to pick apart the actual features. Can you deduce what rendering techniques are used in the image you’re going for? And can you figure out how much is code, and how much is from well-designed assets?

Some things to look into that might or might not be part of what you’re interested in: various shadowing techniques; dynamic vs baked shadows; SSAO; deferred shading; HDR and tone maps; image-based lighting; foliage level of detail; post-processing like bloom, blur, bokeh, flares; fresnel; ocean shaders; etc

A huge part really has to do with your assets, having good texture, normal maps, good specular maps …

You can do all of those techniques in Panda. A lot of neat rendering tricks aren’t shown in the samples but you can find them in the forums. I’ve got to recommend “The Panda3D 1.7 Developer’s Cookbook” too.

There is always a question of how easy or difficult a given thing is. For example, you can do deferred shading in Panda, but may have to put a bit of work into it to combine other shading techniques into the render path. Other engines just have a checkbox that says “Deferred Lighting,” and you’re done. On the other hand, that costs money, and you don’t get any control over what’s actually happening under the hood.

On the other hand, some engines have easier built-in lighting effects, but are missing things like blendshape animation, which Panda has.

Completely agree - the question shouldn’t be “is it feasible”, but “how feasible is it”. Saying a given graphics engine “in theory can do everything the others do” is exactly the same as saying I can write Call of Duty in the (Turing-complete) R programming language. YES in theory, but that’s a lie.

After asking someone who knows more about shader tech than me, I have more specific answers :slight_smile:

The beautiful forests are likely done with Speedtree, which is a middleware product solely for rendering huge amounts of hi-res forests. I think if you compile the current source for Panda you can link in speedtree.

I actually couldn’t find too much detail about unigine’s shading system, perhaps they keep it a little close to the vest. One important feature going on there is floating-point HDR and tone mapping, which I don’t know if you can do in Panda. I think there are some things that would be hard to replicate, but then I also notice that Unigine’s pricing looks like the “if you have to ask you can’t afford it” kind :slight_smile:

I’m told that Battlefield 3 looks like that because they’re a proprietary realtime global illumination, which might also be a little tough to replicate. But it depends on whether that’s something you really, really need.[/i]