Deferred Pipeline w/ Physically Based Shading


Well creating or rendering terrains is not really a part of the pipeline.

However, in order to render my terrains, I have been using a shader based approach (with heightmaps). Currently rdb is reviewing it, but after that, it should be available in the Panda3D SDK too.


Great i cant wait


tobspr i can see you have other proyects if panda3d comunity and you succed all of you will create a much complete engine (not saying its bad right now)


Hi everyone !!

I have installed the RenderPipeline i modified a class with the code of Roaming Ralph to start the engine but i have errors, this is what i have

:grutil(warning): Rescaling heightfield image heightmap.png from 512x512 to 513x513 pixels.
Traceback (most recent call last):
  File "/home/jordi/Escritorio/Panda3dProyectos/XType/", line 236, in <module>
  File "/home/jordi/Escritorio/Panda3dProyectos/XType/", line 62, in __init__
    from RenderPipeline.render_pipeline_importer import RenderPipeline, SpotLight
  File "/home/jordi/Escritorio/Panda3dProyectos/XType/RenderPipeline/", line 53, in <module>
    globals()[module_name] = getattr(importlib.import_module(module_src), module_name)
  File "/usr/lib/python2.7/importlib/", line 37, in import_module
  File "/home/jordi/Escritorio/Panda3dProyectos/XType/RenderPipeline/code/", line 46, in <module>
    from .GUI.OnscreenDebugger import OnscreenDebugger
  File "/home/jordi/Escritorio/Panda3dProyectos/XType/RenderPipeline/code/GUI/", line 50, in <module>
    from ..native import NATIVE_CXX_LOADED
ImportError: cannot import name NATIVE_CXX_LOADED

Can anybody knows what NATIVE CXX LOADED means ?


That is weird, its a variable exposed by the native module loader which can be used to check whether the native c++ side is used or the python module.

Could you maybe try a clean checkout and see if the issue persists? Notice that in the latest render pipeline version you have to do

from rpcore import RenderPipeline, SpotLight

Instead of using the render pipeline importer (see also the updated samples)


Thanks my friend i will continue with more tests good day :smiley: yes but in the line that imports that code it tells me the module rpcore cant be found and yes ill check the updated examples thanks again


tobspr check Quixel nDo2 and dDo for Photoshop i personaly wouldnt use them but maybe you get even more inspiration


I dont know if Panda3d supports this already but check this in order for your enemies or sprites to learn (in addition to the AI). See you


Oh i dont know wheres my mind lately i think i have to set the path of the Pipeline correctly, ive youst read it from your manual


Hi everyone :smiley:

Does anybody know how to use color maps, gradient maps, normal maps etc and how to create them and use them? Thanks


There is a section in the wiki for it: Exporting from Blender



  • Added support for motion blur
  • Godrays!

(Full res)


You can create Normal Maps, Diffuse Maps, etc with a application called Awesome Bump and then use them with the Importer that Tobias mentioned above


(Full res)

Great looks good ;D


I successfully installed and setup RenderPipeline on linux debian jessie with Geforce 970 and latest driver from NVIDIA (version 361.28, OpenGL 4.5).
But when running 01-Material-Demo I get these errors/warnings:

:display:gsg:glgsg(warning): Ignoring uniform _main_poisson_disk_2D_12_0[0] which may be generated by buggy Nvidia driver.
:display:gsg:glgsg(warning): Ignoring uniform _main_poisson_disk_2D_12_0[0] which may be generated by buggy Nvidia driver.
:display:gsg:glgsg(warning): Ignoring uniform _main_poisson_disk_2D_64_0[0] which may be generated by buggy Nvidia driver.
:display:gsg:glgsg(warning): Ignoring uniform _main_poisson_disk_3D_32_0[0] which may be generated by buggy Nvidia driver.
:display:gsg:glgsg(warning): Ignoring uniform _main_rotations_0[0] which may be generated by buggy Nvidia driver.
:display:gsg:glgsg(warning): Ignoring uniform _main_gaussian_weights_5_0[0] which may be generated by buggy Nvidia driver.
:display:gsg:glgsg(warning): Ignoring uniform _main_poisson_disk_2D_12_0[0] which may be generated by buggy Nvidia driver.
:display:gsg:glgsg(warning): Ignoring uniform _main_poisson_disk_2D_32_0[0] which may be generated by buggy Nvidia driver.

and images are not correctly shown with the right effects: diffuse, roughness, specular etc… (except default may be).
What can be the issue?


You can safely ignore that warnings, they are (as stated), generated by a buggy driver.

What do you mean with that? The debug modes?


I dont know if this can help you but at Linux go to Drivers and cahange your display driver for a propietary driver it will be the one who says “recommended” reboot and hopefully it should work


A couple on months ago (first week of january), there was a short discussion initiated by Anon about integration of the deferred rendering pipeline in panda. Adding the deferred rendering pipeline with all its advanced features would, when is has become fast and stable enough, be a fantastic addition to Panda that makes it comparable to other game engines like Unity and maybe the free and opensource version of cryengine (lumberyard). As I see it, Panda has a lot of advantages for programmers, the most important of which are the open character of the egg files compared to the closed and difficult to access formats used in other engines and the flexible way to create applications (python) instead of closed game editors. All in all, Panda excels in flexibility and freedom to make your own applications, but it could use an easier way to include the most advanced rendering techniques such as the deferred rendering pipeline with all the gems, developed by tobspr.

The conclusion of that short discussion was that its difficult to fully integrate the work of tobspr into Panda, but that rdb is working to see if some selected parts can be added to Panda. I realize that a full integration must be very complicated, but wouldn’t it be great if all users could have access to that, out of the box? What is rdb’s opinion on this ? Do rdb and topspr think it can be integrated into a single installation, and if yes, is this integration seriously considered, and do you have an idea about the timeframe within which this can be accomplished ?


Yes as you say the work of tobspr could benefit a lot to the Panda comunity if it is added to the Engine also a terrain editor like koparka would be great


How about making it a different branch, e.g. Panda3D 2.0 development version, while the current 1.X is continued as the legacy version?