Feature Requests.


Do you mean something like this?

Sequence(yourInterval, Wait(0.06)).loop()


No I mean the delay time inside the interval itself. Say you have a color scale interval with duration of 100 seconds. having the interval recolor the node each frame might be a waste as doing it each second would be as smooth.
It would be the same as using an ordinary task when domethodLater would suffice.


i noticed there is a relative mouse position thing for c++. it allows you to keep the mouse centered while still reading its movement.

is there something like this for python users too?

if not, it wouldnt be all too hard to create for you, would it?


I’m pretty sure this is pretty easy to implement in Python - I did something similar for a FPS project I had a while ago. Panda might actually have this functionality built-in.


Almost everything in C++ is exposed to Python. What particular “mouse position thing” did you notice?


Actually, MRelative is available in Python, you just do:

props = WindowProperties()

The thing is, IIRC it only works on Linux.


Linux and Mac OS X. Windows has no relative mouse mode, but it doesn’t need it because it preserves the subpixel information when you change the cursor location. so you can simply reset the cursor position to the middle of the window every frame.


Please add a function which takes a GeomNode and returns a CollisionPolygon. The Bullet module has a function like that, but using a full physics engine isn’t the best idea for some games.

BTW, I’m aware you can set Panda to generate CollisionPolygons instead from egg files, but I’m not using the egg/bam formats.

I also know its possible to set visible geometry to collide, but from what I read its not a real solution for final games.

I’m not really sure where the function would go, maybe passing a GeomNode to the CollisionPolygon constructor?



True, but means the optimal way to build mouselook for Linux is without resetting the mouse cursor, and the only way for Linux is with resetting it. It would be great if MRelative on Windows automatically kept the cursor centered, just for the sake of consistency.


I agree. Could you file a bug report, so that this doesn’t get forgotten?





We could have this “greyscale” filter from this manual page in CommonFilters. panda3d.org/manual/index.php … ge_Filters

I think this and sepia filters are as common as an invert filter.

As for a sepia filter, this seems to work:


void vshader(
    float4 vtx_position : POSITION,
    float2 vtx_texcoord0 : TEXCOORD0,
    out float4 l_position : POSITION,
    out float2 l_texcoord0 : TEXCOORD0,
    uniform float4 texpad_tex,
    uniform float4x4 mat_modelproj)
    l_position=mul(mat_modelproj, vtx_position);
    l_texcoord0 = vtx_position.xz * texpad_tex.xy + texpad_tex.xy;
void fshader(float2 l_texcoord0 : TEXCOORD0,
	out float4 o_color : COLOR,
	uniform sampler2D k_tex : TEXUNIT0)
	float4 color = tex2D(k_tex, l_texcoord0).rgba;
	float newred = (color.r * 0.393) + (color.g * 0.769) + (color.b * 0.189);
	newred = clamp(newred, 0, 1);
	float newgreen = (color.r * 0.349) + (color.g * 0.686) + (color.b * 0.168);
	newgreen = clamp(newgreen, 0, 1);
	float newblue = (color.r * 0.272) + (color.g * 0.534) + (color.b * 0.131);
	newblue = clamp(newblue, 0, 1);
	o_color = float4(newred, newgreen, newblue, 1);


DirectEntry isn’t great, instead of the “width” parameter, why not a “charCount”? So we could set thr\e maximum amount of characters (per line). I mean with “width” you can set the lenght of the DirectEntry in screen units, not character count, which means you can make room for “111” but for the same width only “2”, each character has different lenght. So I don’t see the point of “width”.

Also a way to disable characters/numbers/signs.
I have shops in my game where players can by items and they can choose the amount they want to buy. The player can now type “a” or “?” in the entry field, which of course I can reset to 1 or 0 after they have pressed Enter, but I don’t want them to type that anyway.


Can we have the ShaderGenerator not automatically assume we want per-pixel lights? Maybe have a separate function for toggling the lightning mode.


That would be a bit tricky, given the fact that many extra features it provides rely on having per-pixel lighting. Perhaps when we get a new shader generator at some point, this will be possible.


If you mean those features will need to be rewritten to support per-vertex lights, then OK. But if you mean features that are only possible with per-pixel, then I don’t see the problem: just a debug message notifying the developer that he attempted to use something not supported in per-vertex mode will do.

Speaking of which,
@Craig were you planning to integrate your shader generator to Panda?
blueprints.launchpad.net/panda3 … -generator

From what I read it’s feature complete, but still a separate project and in Python. Any plans to make it part of Panda?


Helper function in CollisionHandlerFloor to get the distance of the ray origin from the floor, so we can for example disable player controls when falling.


Isn’t that a matter of subtracting the collision point and the ray origin, and calling length() on the result?


People from time to time ask about generating tangent and binormal vectors in code for a loaded or generated model… I now find myself among them.
In my case I need them for GeoMipTerrain but it would be more useful if one could use it for any Geom.

Tangent and Binormal for GeoMipTerrain

I would like a to be able to call getTags() and getPythonTags() and have it return a dict of all tags on a node. This would really help with the editor I’m building.