|
|
|
Return to Panda Features in Development
by preusser » Fri Dec 09, 2011 3:09 am
Last edited by preusser on Thu Jun 21, 2012 2:54 am, edited 14 times in total.
-
preusser
-
- Posts: 516
- Joined: Sun Mar 27, 2011 10:07 am
by teedee » Tue Dec 20, 2011 12:08 am
I will try to find some time to finish the portal culling page (I wrote what is currently there).
Also I've been meaning to submit a patch for the multi channel audio so it can use any speaker config that FMOD supports (not just 2.0 and 5.1), so I can write up the multi channel page when I do that.
-
teedee
-
- Posts: 782
- Joined: Tue May 12, 2009 11:33 pm
- Location: Kepler-22b
-
by preusser » Tue Dec 20, 2011 3:51 am
Looking forward to it. Please also write the C++ versions of the pages if you have the required knowledge.
-
preusser
-
- Posts: 516
- Joined: Sun Mar 27, 2011 10:07 am
by preusser » Sat Dec 24, 2011 10:08 am
Okay, I went through all the manual pages, fixing bunch of typos. First post updated.
Artificial Intelligence (PANDAI) pages don't seem to use the standard way of text formatting. Also these pages link to Youtube videos, which I think is a very bad idea as Youtube is blocked in some countries. Could they be reuploaded to Panda's servers or Vimeo?
Also the Bullet pages and PandaAI pages have download links from other sites like googlecode and p3dp, I don't think you can be too sure that they won't get removed (accidentally) in the future.
Also I'm thinking a page which explains what each library in the bin folder is for would be useful, for those people who want to squeeze few megabytes from their game. The manual already has such a list for the executables in that folder. http://www.panda3d.org/manual/index.php ... xecutables
http://www.panda3d.org/manual/index.php ... r_Lectures has the same links as the previous page, makes me wonder if the page is needed.
Also, the offline manual doesn't seem to render correctly in Firefox: http://i.imgur.com/5r4ft.jpg
Finally, I noticed that some pages have code in <pre class="codeblock"></pre> tags, while others have them in <code python></code> tags. Is the first for code which is for both Python and C++ pages? Because some manual pages don't seem to follow this rule.
-
preusser
-
- Posts: 516
- Joined: Sun Mar 27, 2011 10:07 am
by rdb » Sat Dec 24, 2011 10:51 am
You'd have to talk to the people maintaining PandAI about the PandAI manual pages. We don't maintain PandAI.
Good idea on the page explaining the Panda libraries.
<pre class="codeblock"> is the old notation, before we had syntax highlighting in the manual. The pages simply haven't been updated yet.
-
rdb
-
- Posts: 8575
- Joined: Mon Dec 04, 2006 5:58 am
- Location: Netherlands
-
by preusser » Sat Dec 24, 2011 11:09 am
So what should I replace the <codeblock> tags with? <code python>? Will it still show up the same way in the C++ versions of the manual?
Also, i think I could write the "Performance Issue: Python Calculation" page. I could write about the performance issues when generating vertices and pixels with Python or reading them from files and ways to improve the performance. Would that be enough?
Good idea on the page explaining the Panda libraries.
I could use some explaining myself. I don't know much and I'm not sure if I know it right.
- Code: Select all
avcodec-53.dll - avdevice-53.dll - avfilter-2.dll - avformat-53.dll - avutil-51.dll - cg.dll - Cg runtime cgD3D10.dll - I thought Panda3d doesn't use DX10 and 11, are these two needed? cgD3D11.dll - cgD3D8.dll - Also shaders and ShaderGenerator don't work in DX8/9 mode, are these also needed? cgD3D9.dll - cgGL.dll - Cg for OpenGL cv100.dll - cvaux100.dll - cvcam100.dll - cxcore100.dll - cxts001.dll - d3dx9_37.dll - fmodex.dll - fmodexL.dll - highgui100.dll - libguide40.dll - libp3direct.dll - libp3dtool.dll - libp3dtoolconfig.dll - libp3fmod_audio.dll - libp3framework.dll - libp3glstuff.dll - libp3mayaloader2008.dll- libp3mayaloader2009.dll- libp3mayaloader2010.dll- libp3mayaloader2011.dll- libp3mayaloader2012.dll- libp3mayaloader6.dll - libp3mayaloader65.dll - libp3mayaloader7.dll - libp3mayaloader8.dll - libp3mayaloader85.dll - libp3openal_audio.dll - OpenAL audio library wrapper libp3ptloader.dll - libp3pystub.dll - libp3vision.dll - libp3windisplay.dll - libpanda.dll - main Panda3d library libpandaai.dll - PandaAI libpandabullet.dll - Bullet physics engine libpandadx8.dll - Panda3d DirectX 8 renderer libpandadx9.dll - Panda3d DirectX 9 renderer libpandaegg.dll - libpandaexpress.dll - libpandafx.dll - libpandagl.dll - Panda3d openGL renderer libpandaode.dll - ODE physics engine wrapper libpandaphysics.dll - Panda3d phyiscs engine libpandaphysx.dll - PhysX physics engine libpandaskel.dll - libpandatiff.dll - libtinydisplay.dll - Panda3d software renderer mfc90.dll - mfc90u.dll - mfcm90.dll - mfcm90u.dll - ml100.dll - msvcm80.dll - msvcm90.dll - msvcp80.dll - msvcp90.dll - msvcr80.dll - msvcr90.dll - msvcrt.dll - ode.dll - ODE physics engine OpenAL32.dll - OpenAL audio library postproc-51.dll - python2X.dll - Panda's local Python swscale-2.dll -
-
preusser
-
- Posts: 516
- Joined: Sun Mar 27, 2011 10:07 am
by rdb » Sat Dec 24, 2011 1:13 pm
The questions you asked are answered by the editing guidelines, which of course you've read before making any modifications:
https://www.panda3d.org/manual/index.php/Talk:Main_page
As for the libraries, to the best of my knowledge:
- Code: Select all
avcodec-53.dll - Part of ffmpeg, linked into the core, so don't remove it avdevice-53.dll - Part of ffmpeg. We don't use this one. avfilter-2.dll - Same, we don't use this one either. avformat-53.dll - Part of ffmpeg, linked into the core, so don't remove it avutil-51.dll - Part of ffmpeg, linked into the core, don't remove cg.dll - Cg runtime cgD3D10.dll - Cg+DX10, you can remove this cgD3D11.dll - You can remove this, too cgD3D8.dll - Same cgD3D9.dll - Cg for DirectX 9 cgGL.dll - Cg for OpenGL cv100.dll - Part of OpenCV, linked into the p3vision module cvaux100.dll - Same cvcam100.dll - Same cxcore100.dll - Same cxts001.dll - I have no idea. d3dx9_37.dll - Part of DirectX 9 runtime fmodex.dll - FMOD EX sound system fmodexL.dll - Same, but I don't think we use this one highgui100.dll - Part of OpenCV, linked into p3vision libguide40.dll - I don't remember. Maya? Or OpenCV? libp3direct.dll - Contains various modules like the interval system libp3dtool.dll - Core of Panda, don't remove libp3dtoolconfig.dll - Part of Panda's core libp3fmod_audio.dll - Panda's FMOD module. libp3framework.dll - Not 100% sure if Python users need this one libp3glstuff.dll - Important for OpenGL stuff. libp3mayaloader2008.dll- obvious libp3mayaloader2009.dll- " libp3mayaloader2010.dll- " libp3mayaloader2011.dll- " libp3mayaloader2012.dll- " libp3mayaloader6.dll - " libp3mayaloader65.dll - " libp3mayaloader7.dll - " libp3mayaloader8.dll - " libp3mayaloader85.dll - " libp3openal_audio.dll - OpenAL audio library wrapper libp3ptloader.dll - Allows you to load .x, ,dxf, etc using loader.loadModel libp3pystub.dll - Only needed for the binary tools to run, not the libraries libp3vision.dll - Webcam stuff, and OpenCV integration libp3windisplay.dll - Needed by display modules on Windows libpanda.dll - Contains the gist of the Panda3D stuff libpandaai.dll - PandaAI libpandabullet.dll - Bullet physics integration libpandadx8.dll - Panda3D DirectX 8 renderer libpandadx9.dll - Panda3D DirectX 9 renderer libpandaegg.dll - Egg loader, you can remove this if you don't load eggs libpandaexpress.dll - Part of Panda's core libpandafx.dll - Some esoteric stuff like special lenses libpandagl.dll - Panda3d OpenGL renderer libpandaode.dll - ODE physics engine wrapper libpandaphysics.dll - Panda3D's internal physics engine libpandaphysx.dll - PhysX physics engine integration libpandaskel.dll - Example module, you don't need this. libpandatiff.dll - Loads tiff images, I think it's linked into the core libtinydisplay.dll - Panda3D software renderer mfc90.dll - Microsoft Foundation Class mfc90u.dll - " mfcm90.dll - " mfcm90u.dll - " ml100.dll - OpenCV stuff again msvcm80.dll - MS standard library msvcm90.dll - " msvcp80.dll - " msvcp90.dll - " msvcr80.dll - " msvcr90.dll - " msvcrt.dll - " ode.dll - ODE physics engine OpenAL32.dll - OpenAL audio library postproc-51.dll - An ffmpeg library we don't use python2X.dll - Just a copy snatched from the Python installation swscale-2.dll - Part of ffmpeg, we do use this
-
rdb
-
- Posts: 8575
- Joined: Mon Dec 04, 2006 5:58 am
- Location: Netherlands
-
by preusser » Sat Dec 24, 2011 2:39 pm
rdb wrote:The questions you asked are answered by the editing guidelines, which of course you've read before making any modifications
Certainly, however I'm not sure my question is addressed there. The page says to put language specific stuff in [langauge][/language] tags and they will be displayed only if you are in that language version of the page. Then it says to use this <code language></code> tag to highlight the language specific syntax. However, it does not mention if I should replace <pre class="codeblock"> tags with the <code langauge></code> tags if I'm only going to add for a single language. The manual page says you can use [func][/func] tags to let the manual try to convert to the other langauge itself, however I'm not sure if it's meant for complete code snippets or just class/function names. I'll write the Python calculations page if you don't mind then. As for the libraries, to the best of my knowledge:
Thanks. However, I think we need just a little bit more accurate info before adding the page. We don't use this one.
When you say this, does this mean it is never used by Panda? Why is it included in the SDK then in the first place? libp3mayaloader2008.dll- obvious
Not so obvious for me (not a Maya user).
Also, the quotation marks mean same as above, or unknown?
-
preusser
-
- Posts: 516
- Joined: Sun Mar 27, 2011 10:07 am
by preusser » Sun Dec 25, 2011 5:31 am
-
preusser
-
- Posts: 516
- Joined: Sun Mar 27, 2011 10:07 am
by rdb » Sun Dec 25, 2011 11:52 am
Looks good. Maybe it would be helpful to add in a little section explaining how to determine whether the slowdown is really caused by a too large amount of geoms or polygons, and whether or not animations are the bottleneck; both of which can be analysed using PStats.
You need <code python> to highlight Python code. So yes, all Python code should be enclosed in <code python> tags and not <pre class="codeblock"> tags.
-
rdb
-
- Posts: 8575
- Joined: Mon Dec 04, 2006 5:58 am
- Location: Netherlands
-
by preusser » Sun Dec 25, 2011 1:29 pm
Maybe it would be helpful to add in a little section explaining how to determine whether the slowdown is really caused by a too large amount of geoms or polygons
I think people should find out if they use too many meshes in the "Too Many Meshes" page instead, which is linked from this page. Skinning doesn't seem to have it's own page though, so it could go here.
-
preusser
-
- Posts: 516
- Joined: Sun Mar 27, 2011 10:07 am
by preusser » Wed Dec 28, 2011 6:39 am
OK, I've edited the sentence to make clear that getting the number of Geoms is explained in the "Too Many Meshes" page. However I couldn't find out how to get the time it takes on the Geoms alone or the time that is spent on skinning in PStats.
BTW, how do you create a new page in the manual?
-
preusser
-
- Posts: 516
- Joined: Sun Mar 27, 2011 10:07 am
by rdb » Wed Dec 28, 2011 9:54 am
Type it into the URL bar as if it already existed, then click edit.
-
rdb
-
- Posts: 8575
- Joined: Mon Dec 04, 2006 5:58 am
- Location: Netherlands
-
by drwr » Wed Dec 28, 2011 10:11 am
However I couldn't find out how to get the time it takes on the Geoms alone or the time that is spent on skinning in PStats.
In general, there aren't good ways to measure the time it takes to render the Geoms alone. Panda only sends the render calls to the graphics driver, which renders the scene. There aren't calipers inside the graphics driver to measure what it is doing (at least, none available to Panda). We can time the actual sending of the render calls, but that tells us very little about why it takes the time it does--is it too many vertices, too many pixels, or too many geoms? No way to tell just from one measurement.
To actually determine what is going on requires a bit of intuition and detective work. For instance, reducing the size of the window gives you one data point, by reducing the number of pixels without affecting anything else. If this improves performance, you know you have a bottleneck that's related to pixels (either too much depth complexity or too complex a pixel shader).
Similarly, you can try calling flattenStrong() on a scene to reduce the number of Geoms without affecting anything else. (This only works on certain scenes, of course.) If this improves performance, you know you have a bottleneck that's related to geom count.
As for skinning, if by this you mean the time Panda spends computing the vertices for animation, that can be read in PStats in the "*:Animation" category, with a separate entry for each differently-named character.
David
-
drwr
-
- Posts: 11253
- Joined: Fri Feb 13, 2004 12:42 pm
- Location: Glendale, CA
by preusser » Wed Dec 28, 2011 10:22 am
Hm OK.
I see a graph even when I use hardware skinning. But how does Panda know how long it takes for the GPU?
BTW, in what state is the hardware skinning support? The prc variable says it's not quite ready, but I haven't had problems with it. Could it just be an outdated comment?
And why is the "*" category in PStats named like that?
-
preusser
-
- Posts: 516
- Joined: Sun Mar 27, 2011 10:07 am
by drwr » Wed Dec 28, 2011 12:32 pm
If you see any time spent in "skinning", then you're not using hardware skinning. This category shows the time spent to compute vertices on the CPU.
In fact, hardware skinning is really not supported for most modern hardware. The current implementation in Panda relies on a somewhat outdated fixed-function OpenGL extension. It's still present on some computers, but can only handle extremely limited characters (like with only four bones). More than that, and it will fall over into software skinning. One day we may offer a shader-based implementation as well (but it will have its own set of limitations, as these things always do).
You can also prove where the skinning is being computed by setting "show-animated-vertices 1" in your Config.prc file; this will flash vertices red when they are animated on the CPU, and blue when they are animated on the GPU.
The "*" category is intended for the general overhead category. These are things that might be computed in either App or Cull, or possibly in another thread altogether, depending on your setup. It was originally intended that the "*" category would be automatically mapped into the appropriate toplevel category based on its runtime determination, but this feature wasn't added.
David
-
drwr
-
- Posts: 11253
- Joined: Fri Feb 13, 2004 12:42 pm
- Location: Glendale, CA
by preusser » Wed Dec 28, 2011 2:54 pm
Hm, OK. I've updated the page. http://www.panda3d.org/manual/index.php/Preusser
Is there anything else I can add?
I think the "*" category caused and will cause some confusion unless the manual page gets updated or the code gets implemented.
-
preusser
-
- Posts: 516
- Joined: Sun Mar 27, 2011 10:07 am
by drwr » Wed Dec 28, 2011 3:50 pm
Why is it confusing? Should it be called something else instead?
-
drwr
-
- Posts: 11253
- Joined: Fri Feb 13, 2004 12:42 pm
- Location: Glendale, CA
by preusser » Wed Dec 28, 2011 4:04 pm
Does the asterisk mean anything here?
-
preusser
-
- Posts: 516
- Joined: Sun Mar 27, 2011 10:07 am
by drwr » Wed Dec 28, 2011 4:13 pm
Yes, it means "None of the above." Neither App, nor Cull, nor Draw; and yet it's not its own category either. Calling it something like "Overhead" might make it appear to be equally important to App, Cull, and Draw, which it isn't really.
David
-
drwr
-
- Posts: 11253
- Joined: Fri Feb 13, 2004 12:42 pm
- Location: Glendale, CA
by preusser » Sun Jan 08, 2012 12:59 pm
I'll probably add something to the "Performance Issue: Python Calculation" and "Performance Issue: Collision System Misuse" pages now.
So what do you guys think of replacing the page in my previous post?
-
preusser
-
- Posts: 516
- Joined: Sun Mar 27, 2011 10:07 am
by rdb » Sun Jan 08, 2012 4:51 pm
That looks good, thanks! Please go ahead and replace the page.
-
rdb
-
- Posts: 8575
- Joined: Mon Dec 04, 2006 5:58 am
- Location: Netherlands
-
by preusser » Tue Jan 10, 2012 12:17 pm
-
preusser
-
- Posts: 516
- Joined: Sun Mar 27, 2011 10:07 am
by zonzagolo » Tue Jan 10, 2012 4:05 pm
Preusser: what would really be nice is to get a great introduction/tutorial on how to get stunning rendering in Panda.
So far I'm onlly getting crappy scenes with ambient + a couple of directional lights, and most of the examples i've seen in the tutorials have poor quality.
There is no reason why Panda should not have nice realistic effects such as friends are getting in Irrlicht or Ogre.
grazie
tonio
zonza
-
zonzagolo
-
- Posts: 28
- Joined: Tue Jan 10, 2012 3:51 pm
- Location: casa mia
by preusser » Wed Jan 11, 2012 10:06 am
Please post if there is anything I should change before adding the text to the "Performance Issue: Python Calculation" page.
@zonzagolo: Sorry, but there can't be a single page for "how to get stunning rendering". I've never seen anything like that in other engine's documentation as well. it wouldn't make much sense, there are hundreds of ways to make your scene look better, each deserving its own topic, stuffing them all in one page would be a bad idea. If you would read some more of the manual, I'm sure you would learn "how to get stunning rendering" by using different features explained in different pages.
I would suggest the pages about the "Shader Generator" and "Common Image Filters".
-
preusser
-
- Posts: 516
- Joined: Sun Mar 27, 2011 10:07 am
by drwr » Wed Jan 11, 2012 12:50 pm
Please post if there is anything I should change
It seems like a fine introduction to the problem to me. I might quibble with the emphasis a bit (a lot of times, troublesome Python routines can be improved simply by writing the Python code better), but it gets the point across. Thanks!
-
drwr
-
- Posts: 11253
- Joined: Fri Feb 13, 2004 12:42 pm
- Location: Glendale, CA
by preusser » Wed Jan 11, 2012 3:13 pm
OK, I added a sentence like that.
I'll probably also be able to write the "Collision system misuse" page.
The only things I can think of is wanting to use Geoms for collisions, using one big collision geometry instead of splitting it into parts and not using masks. Is there anything else I'm missing?
-
preusser
-
- Posts: 516
- Joined: Sun Mar 27, 2011 10:07 am
Return to Panda Features in Development
Who is online
Users browsing this forum: No registered users and 0 guests
| | |