December 2017 Development Update

Hello everyone to our heavily delayed December post. Even though we’re quite late with this one due to lack of time, we wish you all a happy new year! Much has happened during the winter holidays, so read on to see what’s new.

What happened in the last month

The work on the input overhaul branch is almost complete and needs some more polish to finalize the API before we will merge it into the development trunk. In addition, we started to add a mapping table for known devices to have them work as expected. For other devices, the mapping is provided by the device driver with the help of some heuristics to detect the device type. Currently the input overhaul is still in heavy development and API changes will occur, though for those who are interested in testing it, sample applications are available and some manual entries with more or less accurate instructions have been created and will be finalized as soon as the API is stable.

Some long-standing bugs with the multithreaded pipeline were finally resolved. These issues caused deadlocks that occurred whenever geometry data was being manipulated on another thread, or when shadows were enabled using the automatic shader generator; as such, they were a significant barrier that prevented the multithreaded pipeline from being useful for some applications. However, more testing is needed before we can be completely confident that all the threading issues are resolved.

On macOS, it is now possible to get an offscreen rendering buffer without opening a window. This lets you render to a buffer on a headless mac server, which can be useful for plenty of things. Aside from scientific simulations where no immediate output is necessary or even desirable, another example is to send a frame rendered by Panda3D over a socket or network to display it elsewhere. This technique is used in the BlenderPanda project to render a Panda3D frame into a Blender viewport and thereby get a live display of how a model will look when used with the engine.

Looking into the crystal ball

In the coming months some of the newly developed features (input-overhaul, deploy-ng) will be polished off and merged into the master branch of panda3d. More work is also planned on the introduction of a new physically-based material model as well as support for the glTF 2.0 format. Stay tuned for more updates!

Tags: , , , ,

1 Comment »

  1. Physically-based rendering and materials have been around for few years now and should have been the priority for Panda developers.
    This and the lack of iOS and Android deployment made Panda both visually inferior as well as limiting in market accessibility.

    I mentioned years ago that better shaders and mobile support should have been top priority but my suggestions were brushed off with the reasoning that they should be an addon rather than part of the engine and the abused phrase in many foss projects that “you can code it yourself”. Fast forward to 2018 and many users I knew and myself had to migrate to other engines. Sad really, as didn’t have to happen. Even with CMU abandoning the engine it could still be far better off than how it is. The proof is right there, ask 10 game developers if they have heard about Panda, see how many if any will say yes. Don’t want to discourage anyone or start an argument but maybe this time you guys will look at this from our perspective and maybe start 2018 differently.

    Comment by kxxkd — January 29, 2018 @ 4:10 am

RSS feed for comments on this post. TrackBack URL

Leave a comment