These are the most important goals we need to focus on in the next release.
Shading
Most major engines have switched to the new PBR-based material model that is now in use by UE4, Unity, Frostbite, Blender 2.8 and more, so we cannot stay behind. We need to make sure that we have reliable and powerful shaders out of the box and a reliable pipeline to import PBR-ready models.
Better sRGB handling; being gamma-correct should be easy
Image-Based Lighting support
Reflection/ambient probes
Ability to load glTF 2.0 files with PBR materials(third-party extension OK)
Pathway for supporting Principled material nodes from Blender(via glTF or otherwise)
Easy HDR support and other post effects; benefits from“blueprints” design of +Rendering API design overview, but simple tonemapping operators could be implemented in CommonFilters
Build pipeline
As Panda is written in C++, it would benefit us to attract C++ developers to the engine who are to contribute back to the engine itself. We need to remove any barriers that might prevent attracting C++ developers or obstruct people from wanting to contribute to Panda3D, and make sure we are not distracted too much by having to maintain our build system. This also decreases the effort to port Panda to additional platforms.
CMake support(should be added soon after 1.10 release)
Ship config files to make it easier for C++ developers to write plug-ins and games for Panda using C++
Delete makepanda very soon(either before 1.11, or immediately after 1.11 so that 1.11 is the only release to have both buildsystems)
Secondary goals
These are features that would be a major assets for Panda. As we should endeavour to“release often” when we have something to show, we will probably not be able to implement all of these before the release, but all of these are major assets nonetheless; we may need to choose which ones are“musts” and which ones are“nice-to-have” depending on available human resources, otherwise they will become targets for 1.12.
Android support
Do not require writing a custom shader to get anything other than a triangle on screen(probably requires new shader pipeline)
Deployment system should be able to produce Android games
Browser support
Deployment system should be able to produce WebGL games
Strongly benefits from new shader pipeline
New render API / postprocessing framework
It should be easy to define postprocessing filters/shaders.
Written in C++, not Python
Easy plugging of effects like tone-mapping operators, lighting passes, bloom, etc.
Better support Vulkan rendering model by having upfront definition of render passes
Better support VR by Panda being able to know which passes correspond to VR scene
Not very important for a release goal, but“nice-to-have”.
Requires new shader pipeline
Strongly benefits from rendering API overhaul
Long-term goals
These are“primary goals” in scope, but likely not worth delaying the next release to achieve. In other words, they should be worked on in a parallel branch, and not prioritized over the primary goals.
These goals are also better off for a 2.0 release, as the bump in major version number does signify a major paradigm shift.
Modernize(i.e. demote direct)
Completely replace the app framework.
New app framework should better support Android and VR app lifecycles.
Create new samples using the new app framework - using some mix of C++ for some and Python for others
Kick direct/samples out to their own GitHub repo under the panda3d/ organization.
Installer will still bundle direct/samples, but those building from scratch will need to first build panda3d/panda3d, then panda3d/direct. When installing from pip, direct is provided separately as direct
Primary goals
Shading
Build pipeline
Secondary goals
Android support
Browser support
New render API / postprocessing framework
VR support
Vulkan support
Long-term goals
Modernize (i.e. demote direct)