Deferred Pipeline w/ Physically Based Shading

Well the BAM exporter already has a panel to specify the material properties: http://prntscr.com/an8pjl
Or is your exporter doing something completely different?

Export the mesh and UV. I’m still learning api blender 3d. I will try to make a set of tools for working with panda3d.

Is this going to be merged with the internal renderer eventually?

There are considerations to do this, but since it would force the render pipeline to a fixed revision (without getting further development) for sdk releases, I figured it’d be better to keep it seperate for now.

Are there any disadvantages you are getting from not having it integrated directly but instead having to install it seperately?

I don’t see the issue to be honest, there are nighty builds of the engine, we don’t need to wait for panda 1.x.x to release to add a feature to a specific subset of the engine and have others use it. Or do you mean something else?

Update:
I tried myself on volumetric clouds again, here are some results:

Full Res

Full Res

1 Like

Beautiful.
What is your approach of casting shadows from a volumetric cloud to the terrain?

Tobias, I’m going to pester you in chat tomorrow about these things for my space engine:

To simulate the sun in space i assume i could hijack your existing sun interface. Binary star systems have two suns though, so I’d like your thoughts on the possibilities of that with your render pipeline (arguably someone might want to make a regular surface game on an alien planet with two or three suns).

To make my planet based scattering I’m assuming I can just copy the existing scatter plugin and make my own custom plugin. Also what are the differences between the two scatter modes?

Right now none, but when I add this feature to the volumetrics plugin, I will probably either go for a screenspace approach, or a voxel based one.

Hm, well for multiple atmospheres, a bit more logic will be required. You can probably copy over a lot of the code though (I can help you with that). You only want the code for the scattering model by eric-bruneton, the other scattering model does not support planar surfaces.

For distant stars, it might be convincing enough to use a simplified model. For suns, you might even have convincing results by turning their shading model to emissive, so they have a bloom effect.

Depending on if you want shadows from that suns or not it might get more or less complex. Assuming you are fine with no shadows from these suns, you can just model them as PointLights. In combination with emissive surfaces, that should already look quite convincing (I can also help you with that if you wish).


On a side note, I just added support for transparency and forward shading:
Full res

1 Like

Hi,

File "C:\working\RenderPipeline\rpcore\native\scripts\common.py", line 134, in debug_out
    print(*args)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 74-79: ordinal not in range(128)

if comment on this line , the installation proceeds normally.

def debug_out(*args):
    """ Prints a debug output string """
    #print(*args)
    pass

Should be fixed now

Hi there tobspr,

I’ve been looking for a framework that did physically based rendering on high quality for a while, and was astonished when I found yours.
However, I noticed that all the samples are in Python. Do you happen to have some info on how to implement it without the use of any Python? (I prefer C++ due to performance, consistency, and skill-level).

Thanks in advance :slight_smile:
Anasky

Hi, thanks! While it would be possible to use the render pipeline in c++, it would be non-trivial, since you would have to call the python methods from c++.

I do really recommend giving python at least a try though - Its simple to learn, and quite powerful. The performance cricital parts of the Render Pipeline are written in C++ anyways (besides of Panda3D being in C++), so its very unlikely you will ever hit a performance limit caused by python.

Would that allow me to have the rest of my application in C++ though? Including the objects, materials, etc??
If so, I could settle with using Python ^^

Not sure what you mean, could you elaborate on that? Panda3D already handles the scene graph, as well as materials.

I used a screen magnifier to find this option :slight_smile:


Maybe it should be renamed to logic of “use render pipeline”

Hello,

I’m having troubles to install your pipeline through your setup.py.
Each time I execute setup.py, it returns me an error at the first step:

I have the panda3D last version installed and I also compiled and installed the 1.10 version, but still the same error.
I’m on Win10 btw.

Can you help me to get through this? :slight_smile:

As the renderpipeline is under development you may need to compile panda from source or get the latest development build. From what i can tell, latest windows build was from May 10th, which may or may not be too old already.

Installing renderpipeline worked for me a few days ago with the latest versions of renderpipeline and panda3d. If you need assistance you may try to hit the IRC channel. European daytime may allow you to get live-chat with people who might be able to help you.

I development for the FlightGear flight simulator under the GNU license, for some time I am observing the progress made with Panda3D, at this point I’d be curious to know if there is a demo pwer test the rendering of effects on my machine and then see if there is a possibility to use this technique to replace the current outdated FlightGear graphics engine. It would be interesting to add an airplane of FGFs as an actor, his six-axis positioning in space can be achieved via a link via TCP / UDP to the system of FGFS. Obviously it is only a test, if anyone can help me I would be happy to give all my experience for this test.

adriano@bassignana.eu

So first setup.py wouldn’t work, but installing python-dev fixed that. Now, I’m getting the “Failed to execute build.py” error. I’m using the development build, assuming the one at the top of this page: https://www.panda3d.org/download.php?platform=xenial&version=devel&sdk

Here’s what my terminal says:

[ 03 ]  Building the native code .. (This might take a while!)
	Running script: rpcore/native/build.py


[!] FATAL ERROR: Subprocess returned no-zero statuscode!
Failed to execute 'build.py'
Output: Command '['/usr/bin/python', '-B', 'build.py']' returned non-zero exit status 1 
 Creating directory /home/kareem/Documents/RenderPipeline-master/rpcore/native/scripts/../linux_amd64_py27
Executing command:  cmake /home/kareem/Documents/RenderPipeline-master/rpcore/native -DCMAKE_BUILD_TYPE=RelWithDebInfo -DPYTHON_EXECUTABLE:STRING=/usr/bin/python -DPROJECT_NAME:STRING=native_ -DINTERROGATE_LIB:STRING=p3interrogatedb -DPYTHONVERDOT:STRING=2.7 -DUSE_LIB_EIGEN=TRUE -DIGATE_VERBOSE=0 -DOPTIMIZE=3 

Process output: 
-- Configuring done
-- Generating done
-- Build files have been written to: /home/kareem/Documents/RenderPipeline-master/rpcore/native/linux_amd64_py27

Executing command:  cmake --build . --config RelWithDebInfo -- -j7 

Process error:
Scanning dependencies of target native_
[  5%] Building CXX object CMakeFiles/native_.dir/source/tag_state_manager.cpp.o
[ 11%] Building CXX object CMakeFiles/native_.dir/source/rp_spot_light.cpp.o
[ 17%] Building CXX object CMakeFiles/native_.dir/source/internal_light_manager.cpp.o
[ 23%] Building CXX object CMakeFiles/native_.dir/source/interrogate_wrapper.cpp.o
[ 29%] Building CXX object CMakeFiles/native_.dir/source/shadow_source.cpp.o
[ 35%] Building CXX object CMakeFiles/native_.dir/source/gpu_command_list.cpp.o
[ 41%] Building CXX object CMakeFiles/native_.dir/source/rp_light.cpp.o
In file included from /usr/include/panda3d/aa_luse.h:24:0,
                 from /usr/include/panda3d/luse.h:41,
                 from /home/kareem/Documents/RenderPipeline-master/rpcore/native/source/shadow_source.h:32,
                 from /home/kareem/Documents/RenderPipeline-master/rpcore/native/source/shadow_source.cpp:27:
/usr/include/panda3d/lsimpleMatrix.h:20:23: fatal error: Eigen/Dense: No such file or directory
compilation terminated.
CMakeFiles/native_.dir/build.make:158: recipe for target 'CMakeFiles/native_.dir/source/shadow_source.cpp.o' failed
make[2]: *** [CMakeFiles/native_.dir/source/shadow_source.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from /usr/include/panda3d/aa_luse.h:24:0,
                 from /usr/include/panda3d/luse.h:41,
                 from /home/kareem/Documents/RenderPipeline-master/rpcore/native/source/gpu_command.h:31,
                 from /home/kareem/Documents/RenderPipeline-master/rpcore/native/source/gpu_command_list.h:31,
                 from /home/kareem/Documents/RenderPipeline-master/rpcore/native/source/gpu_command_list.cpp:27:
/usr/include/panda3d/lsimpleMatrix.h:20:23: fatal error: Eigen/Dense: No such file or directory
compilation terminated.
CMakeFiles/native_.dir/build.make:182: recipe for target 'CMakeFiles/native_.dir/source/gpu_command_list.cpp.o' failed
make[2]: *** [CMakeFiles/native_.dir/source/gpu_command_list.cpp.o] Error 1
In file included from /usr/include/panda3d/aa_luse.h:24:0,
                 from /usr/include/panda3d/luse.h:41,
                 from /home/kareem/Documents/RenderPipeline-master/rpcore/native/source/rp_light.h:31,
                 from /home/kareem/Documents/RenderPipeline-master/rpcore/native/source/rp_light.cpp:28:
/usr/include/panda3d/lsimpleMatrix.h:20:23: fatal error: Eigen/Dense: No such file or directory
compilation terminated.
In file included from /usr/include/panda3d/aa_luse.h:24:0,
                 from /usr/include/panda3d/luse.h:41,
                 from /usr/include/panda3d/geomVertexColumn.h:21,
                 from /usr/include/panda3d/geomVertexArrayFormat.h:19,
                 from /usr/include/panda3d/geomVertexFormat.h:20,
                 from /usr/include/panda3d/geomVertexData.h:20,
                 from /usr/include/panda3d/geom.h:27,
                 from /usr/include/panda3d/renderModeAttrib.h:20,
                 from /usr/include/panda3d/renderState.h:25,
                 from /usr/include/panda3d/pandaNode.h:26,
                 from /usr/include/panda3d/lensNode.h:19,
                 from /usr/include/panda3d/camera.h:19,
                 from /home/kareem/Documents/RenderPipeline-master/rpcore/native/source/tag_state_manager.h:32,
                 from /home/kareem/Documents/RenderPipeline-master/rpcore/native/source/tag_state_manager.cpp:28:
/usr/include/panda3d/lsimpleMatrix.h:20:23: fatal error: Eigen/Dense: No such file or directory
compilation terminated.
In file included from /usr/include/panda3d/aa_luse.h:24:0,
                 from /usr/include/panda3d/luse.h:41,
                 from /home/kareem/Documents/RenderPipeline-master/rpcore/native/source/./gpu_command.h:31,
                 from /home/kareem/Documents/RenderPipeline-master/rpcore/native/source/interrogate_wrapper.cpp:18:
/usr/include/panda3d/lsimpleMatrix.h:20:23: fatal error: Eigen/Dense: No such file or directory
compilation terminated.
In file included from /usr/include/panda3d/aa_luse.h:24:0,
                 from /usr/include/panda3d/luse.h:41,
                 from /home/kareem/Documents/RenderPipeline-master/rpcore/native/source/rp_light.h:31,
                 from /home/kareem/Documents/RenderPipeline-master/rpcore/native/source/rp_spot_light.h:31,
                 from /home/kareem/Documents/RenderPipeline-master/rpcore/native/source/rp_spot_light.cpp:28:
/usr/include/panda3d/lsimpleMatrix.h:20:23: fatal error: Eigen/Dense: No such file or directory
compilation terminated.
CMakeFiles/native_.dir/build.make:206: recipe for target 'CMakeFiles/native_.dir/source/rp_light.cpp.o' failed
make[2]: *** [CMakeFiles/native_.dir/source/rp_light.cpp.o] Error 1
CMakeFiles/native_.dir/build.make:110: recipe for target 'CMakeFiles/native_.dir/source/interrogate_wrapper.cpp.o' failed
make[2]: *** [CMakeFiles/native_.dir/source/interrogate_wrapper.cpp.o] Error 1
CMakeFiles/native_.dir/build.make:62: recipe for target 'CMakeFiles/native_.dir/source/tag_state_manager.cpp.o' failed
make[2]: *** [CMakeFiles/native_.dir/source/tag_state_manager.cpp.o] Error 1
CMakeFiles/native_.dir/build.make:134: recipe for target 'CMakeFiles/native_.dir/source/rp_spot_light.cpp.o' failed
make[2]: *** [CMakeFiles/native_.dir/source/rp_spot_light.cpp.o] Error 1
In file included from /usr/include/panda3d/aa_luse.h:24:0,
                 from /usr/include/panda3d/luse.h:41,
                 from /home/kareem/Documents/RenderPipeline-master/rpcore/native/source/rp_light.h:31,
                 from /home/kareem/Documents/RenderPipeline-master/rpcore/native/source/internal_light_manager.h:31,
                 from /home/kareem/Documents/RenderPipeline-master/rpcore/native/source/internal_light_manager.cpp:28:
/usr/include/panda3d/lsimpleMatrix.h:20:23: fatal error: Eigen/Dense: No such file or directory
compilation terminated.
CMakeFiles/native_.dir/build.make:86: recipe for target 'CMakeFiles/native_.dir/source/internal_light_manager.cpp.o' failed
make[2]: *** [CMakeFiles/native_.dir/source/internal_light_manager.cpp.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/native_.dir/all' failed
make[1]: *** [CMakeFiles/native_.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2



Setup failed:	 Python script didn't return properly!

Please fix the above errors and then restart the setup.