High quality graphic within game??

I think most of us felt that before…When you play a game (specially Point And Click game) you sometimes impressed because the environment of the game is designed in very high quality and that doesn’t affect negatively the speed of the game…look at Syberia 2:

and also look at Dracula - Origin:

when you play these games or any others you will find that the player movement is very smooth and the is not slowing down

My question is how these environment being built…and can we reach this level of high graphic quality with Panda3d and egg files or not??

Thanks in advance

These are 2.5D adventures i.e. 3D characters on 2D backgrounds. The environments are built with 3D modelling tools (Blender and the like). Or these are built coloring hand drawings (it depends on the graphical style). They’re “only” pre-renderized images (in the first case). The difficult part of this kind of software is the editor: you must tell to your 3D character how to move on the 2D image. So you must specify some basic information (walkable areas, collision boxes, …) in the editor. If you look at the editor (and documentation) of Wintermute Engine you can see this kind of mechanisms.

Absolutely. They’re only 2D images (which Panda can handle) and 3D characters (which Panda can handle). And in Panda you can play with shaders, so you’ve no limits on the quality of characters (and obviously you’ve no limits on the quality of a 2D image).
Also the games that are in the frontpage of the site of Panda should be 2.5D (‘A Vampire Story’ and ‘Ghost Pirates of Vooju Island’), they’ve a different graphical style but the concepts and the technologies should be the same.

I would create a texture card with egg-texture-cards, disable scaling textures down to the lower power of two, reparent the texture card to the camera but render it behind everything.

For the paths that characters can walk along, simply create a collision geometry in your 3d modeller and set it as one in Panda (or in your exporter). Collision geometry is hidden by default, so I don’t see how this can be difficult.

If you have any other questions just ask.

If you meant 3d scenes, then you should probably have a look at HDR rendering and common filters.


I thought about this idea but I didn’t that it was a right idea…After reading your reply I tried it with a room inside a house by making 3 walls (the 4th is behind the camera so no need to render it) to be as a texture then snapshot the render of it and texture a normal plane from blender then export it as egg file and it was ok…but the problem was the floor that I’m still doing it to make it fit with the dimensions of the wall…I’ll upload the pictures to see the steps clearly

I heard before about egg-texture-cards but I didn’t use it before,as I read from the manual does do the same thing of an animated texture for model?? …the path for the character using collision geometry is great

Thanks :laughing:

it can be used for different things. Use

egg-texture-cards -h

in your command line for info

the basic idea is to have the camera in blender and in panda in the same spot, looking at the same scene with same orientation and fov etc. to make the floor walkable you can simply take the floor-geometry and export it as egg for collision. everything will match up perfectly if done correctly.
exporting normal and depth-maps from blender is a neat idea for dynamic lighting. maybe you could even create something like a light-volume texture to light your model. this way of creating visuals has a lot of potential for nice looking tricks :stuck_out_tongue:

I have to take a look at this command…It seems to be interesting

I thought about the idea of making panda3d camera and blender camera with the same orientation and position and what I’m trying to do right now…hope that works perfectly
With technique,I may not need to light up my environment cause there is a light from blender textured plane I made

BTW…I forgot to ask about something…If I have a model in the center of the room (assume it is an armchair),Is there a way to make it also in high quality?? I sometimes suffer from having a high poly armchair that make the game freeze for more than 20 sec to load it and I solve this problem with polyreducer script in blender that sometimes make the mesh looks bad


either you add a new card with the armchair texture + transparency. (like a billboard). or you also export a depth-texture from blender and let a shader sort out if your character is hidden the caracter is in front or behind the chair. (later one would be the most automatic)

You should follow the ThomasEgi’s hint wherever it’s possible. But there are other cases (very few) where this couldn’t be convenient. For example, if you don’t want a static scene and you want to add some actors (a cat, a flag, …) maybe you don’t want to put the frames on a card, but you could prefer to put the 3d mesh on the screen (consider also that you could want to use shadows, and it’s easier if you’re using 3d meshes).

So, you should face the problem of the 20 seconds loading. I suppose you’ve measured that time with the bam file (not the egg one), right? In that case, it’s a weird situation, with normal maps you should obtain models with few vertices, and 20 seconds to load a normal mapped bam file is an interesting case.

Using textured card or plane from blender maybe good…I’ll to do it

Yes of course this idea is for static scenes…maybe for dynamic (like platform games) I may put a scene like a mountain with trees and this is supposed to be so far that it will be static but the surrounded environment will be dynamic

about the models I always use bam files but when using more than three or four meshes like this then loading time will increase , so assume there is also a background music in mp3 and some waves it may take lots of time


Mmmm that’s not the issue I was referring. If you see the games you linked, these are composed by static backgrounds, but there are also elements that aren’t static (animals, animated objects, other characters, …). Otherwise the scenes look boring and not realistic. I was referring to this, not to platform games.

If you’ve a game like this you could preload the near scenes during the actual one (you can use the asynch loading), that’s not a game with critical need of performances. With MP3 you’ll have license issues (why aren’t you using Oggs?), and I think if you use Oggs and not Waves you could save a little time (you use less disk and more CPU, globally this might be convenient).

I agree with you that in some cases I’ll have to use the 3d mesh itself in the game but this must be controlled…the characters and dynamic objects must be real 3d meshs but tables or chairs in static scene maybe a static background…I’m also thinking about putting the shadows of these static objects which is done by blender lights and make it a part of the texture…I’m working in it right now

You can see here what I’ve done…maybe the ground floor doesn’t fit 100% with the walls (the left hand side part) but the result is not bad at all

As you can see there are some dark spots which refers to the shadows of a fireplace and a round table with a vase on it…I can also put a shadow for eve model but of course it will be created by panda3d itself

Maybe the problem is the quality of the picture because I’m using PNG to be transparent


Oh yes, that’s exactly what I would say… Maybe I selected wrong words… I was referring to non-static “background” objects. Obviously a table or a chair are static, so I would never put them as 3d meshes.

if they are very complex you could also use animated sprites instead of the actual objects but you have to be careful.

i still recommend to render depth-buffers for your backgrounds. and let a shader sort out if the background or the 3d-meshes is visible. having animated-depth-buffers would allow to manage even complex occlusion situations such as this one where gras and flowers are around. file-size for animated depth buffers may be an issue,tho.

Could you explain more please??

I read about render depth buffer before but didn’t use it before and I don’t know much about it, I searched in the manual and found Low-Level Render to Texture
http://www.panda3d.org/manual/index.php/Low-Level_Render_to_Texture,is that what you mean??

About that picture
Did you make this picture…can you please explain more about how you made it??


pictures is the 285 or so frame from the open source movie big buck bunny. i assumed everyone knows it so i didnt bother to mention it. simply exported the floor-geometry and camera from blender, and used the already-rendered image as background.

for buffers and shaders i’m not the right person to ask. all i know is that it should be no problem to implement.

(high res) video-textures eat performance and the perspective the object was rendered from has to fit the camera’s (billboarding helps).
there are many old games that used this technique like “lands of lore” for example.

for more info on sprites see: secure.wikimedia.org/wikipedia/ … Move_to_3D


1-You said that you exported the floor (that is the grass) and the camera from blender…Is it possible to export a camera from blender??

2-My problem in the picture I posted was that the floor doesn’t fit with the left and right hand side wall although the floor was snapshoted from the same angle that the walls are snapshoted from.
look at the red circles in the picture to understand the problem

I can post you the blend file if you want

It’s not a bad idea…I used it before when using game maker as the first step of using 3d world cause there were no ability to import 3d model…it is good for static objects


simply add an “empty” object,name it, add a copy-pos and copy-rot modifier to copy position and rotation of your camera. select the empty-object when exporting your scene with collision-objects.
load the model, search the model for your empty object by the name. reparent your camera to it, done.