Commit Graph
21 Commits
Author SHA1 Message Date
Fernando García Liñán 9393f84972 Compositor: Fix crash when using clustered shading with OSG 3.6 2020-04-02 21:21:55 +02:00
Fernando García Liñán bf013aea54 Compositor: Improve custom depth range handling in scene passes. 2020-03-30 19:23:03 +02:00
Fernando García Liñán 73f00bd842 Compositor: Added support for logarithmic depth buffer. 2020-03-22 17:24:48 +01:00
Fernando García Liñán 1b6545fc05 Compositor: No longer append 'Compositor/' to Effects when the Compositor is
enabled. Do not remove transparent bins in shadow passes.
2020-03-22 17:24:48 +01:00
Fernando García Liñán 14845bf3f2 Compositor: Provide previous frame transformation matrices and the sunlight direction as uniforms 2019-12-24 03:34:37 +01:00
Fernando García Liñán 120328eb2b Removed 'using namespace' from header 2019-12-24 03:31:28 +01:00
Fernando García Liñán 94ced66f87 Compositor: Enable more culling for shadow passes 2019-11-07 15:46:05 +01:00
Fernando García Liñán 2b2ada2037 Compositor: Added support for spotlights in clustered shading 2019-11-07 15:09:26 +01:00
Fernando García Liñán d1eb768de6 Disabled CASTSHADOW_BIT on most of the scene graph geometry to optimize performance 2019-11-03 20:53:55 +01:00
Fernando García Liñán 02b61b145a Compositor: Shaders are looked for in $FG_ROOT/Compositor/Shaders when the compositor is enabled.
Fixed Compositor/ always being added to the effect filename. Now it is only added when the base folder is Effects/.
2019-10-26 01:53:30 +02:00
Fernando García Liñán ab8b1d39bd Fixed undetected compiler error due to gcc accepting variable-length arrays 2019-06-11 23:05:09 +02:00
Fernando García Liñán 1ca3f60f80 Compositor: Significant rework of the clustered shading feature
- Added light definitions to the model XML files. This is not compatible with Rembrandt.
- Added depth slicing.
- Added threading support. For now it's faster to run everything on the main thread since there aren't many lights.
2019-06-10 16:02:32 +02:00
Fernando García Liñán 81d1e16d7b Compositor: Removed intersection checking
This is now responsibility of the CameraGroup.
2019-05-20 22:51:40 +02:00
Fernando García Liñán 3e57b50066 Added support for Effect schemes
Effect schemes are a way of rendering an object in different ways depending on the Compositor pipeline. A new <scheme> tag in the Compositor pipeline definition allows the user to choose which Effect scheme is going to be used for that pass. Every Effect will then be rendered using the technique that has a matching scheme name. If no valid technique is found, it won't be rendered. Since it would be a pain to define a valid technique for every scheme and for every Effect, the file '$FG_ROOT/Effects/schemes.xml' is introduced:

<scheme>
  <name>test</name>
  <fallback>Effects/test</fallback>
</scheme>

If an Effect doesn't have a valid technique for the 'test' scheme, the 'Effects/test.eff' Effect will be merged with it. This process is done at initialization when techniques are being realized.
2019-05-04 19:15:22 +02:00
Fernando García Liñán 3a79b71e80 Compositor: Effects used by a compositor now receive a proper SGReaderWriterOptions and other misc fixes 2019-04-23 03:35:10 +02:00
James Turner 114ddcff52 Tweak code for older GCC 2019-04-11 21:39:41 +01:00
Fernando García Liñán e2bed86bfc Compositor: Enable small feature and view frustum culling by default for every pass. Added option to inherit the view master camera cull mask. 2019-02-23 23:26:27 +01:00
Fernando García Liñán 72f3a784de Compositor: Added support for static branching and <property> tags to be able to configure the Compositor at startup. 2019-02-20 03:05:55 +01:00
Richard Harrison 31c9df665d Fix compile error related to missing osg version include (< 3.6)
For some reason this compiles on 3.6.
2019-02-19 15:11:04 +01:00
Richard Harrison dd240116b1 Compositor compilation fixes for OSG 3.6 and Win32 2019-02-19 08:59:54 +01:00
Fernando García Liñán dc2f24dbed Compositor framework initial commit. 2019-02-04 18:02:44 +01:00