Portal rendering / culling module for Godot
Go to file
2019-09-16 18:03:57 +01:00
config.py Add files via upload 2019-09-11 08:09:36 +01:00
INSTRUCTIONS.md Update INSTRUCTIONS.md 2019-09-16 18:02:41 +01:00
lbitfield_dynamic.cpp Dynamic objects now working 2019-09-13 19:15:25 +01:00
lbitfield_dynamic.h Dynamic objects now working 2019-09-13 19:15:25 +01:00
ldob.cpp DOB visibility culling added 2019-09-16 14:23:10 +01:00
ldob.h DOB visibility culling added 2019-09-16 14:23:10 +01:00
LICENSE
lplanes_pool.cpp Hiding of unvisited rooms more efficient 2019-09-15 16:16:09 +01:00
lplanes_pool.h Hiding of unvisited rooms more efficient 2019-09-15 16:16:09 +01:00
lportal.cpp DOB visibility culling added 2019-09-16 14:23:10 +01:00
lportal.h DOB visibility culling added 2019-09-16 14:23:10 +01:00
lroom_converter.cpp DOB visibility culling added 2019-09-16 14:23:10 +01:00
lroom_converter.h Hiding of unvisited rooms more efficient 2019-09-15 16:16:09 +01:00
lroom_manager.cpp DOB visibility culling added 2019-09-16 14:23:10 +01:00
lroom_manager.h DOB visibility culling added 2019-09-16 14:23:10 +01:00
lroom.cpp DOB visibility culling added 2019-09-16 14:23:10 +01:00
lroom.h DOB visibility culling added 2019-09-16 14:23:10 +01:00
lvector.h DOB visibility culling added 2019-09-16 14:23:10 +01:00
README.md Update README.md 2019-09-16 18:03:57 +01:00
register_types.cpp Refactor LRooms and LPortals to no longer be part of scene graph 2019-09-15 15:39:01 +01:00
register_types.h Add files via upload 2019-09-11 08:09:36 +01:00
SCsub Refactor LRooms and LPortals to no longer be part of scene graph 2019-09-15 15:39:01 +01:00

godot-lportal

Portal rendering module for Godot Work in progress, not yet fully functional

Video of initial testing: https://www.youtube.com/watch?v=xF_3Fe2HRdk

Feel free to leave suggestions / feature requests on the issue tracker, especially regarding ease of use.

Current status

The system is mostly working. I am now testing / polishing the interface and adding a few features. I will make a first release before implementing PVS as PVS is an optional feature.

Roadmap

  • Auto conversion of named room spatials and portal mesh instances to LRoom and LPortal DONE
  • Auto creation of mirror portals DONE
  • Recursive determine visibility DONE
  • Prevent memory allocations (use pools for plane vectors) DONE
  • Add support for objects moving between rooms - cameras, players, physics etc - DONE
  • Refactor code, moving LRooms and LPortals outside scene graph DONE
  • Cleanup code, Optimize DONE
  • Handle special cases (multiple portals views into room etc) DONE
  • Bug fixing / testing ONGOING
  • Optimize non-moving statics DONE
  • Closable portals
  • PVS (primary and secondary)
  • Investigate multiple passes (shadows, lights)

Instructions

See INSTRUCTIONS.md

Installation

You will need to compile Godot from source (for now). See: http://docs.godotengine.org/en/3.0/development/compiling/index.html

Once the engine is compiling okay on your system, to add the module:

  • Create a folder inside godot/modules called 'lportal'
  • Clone / download this repository as a zip file and place the files in the lportal folder
  • Compile the engine as normal, it should automatically pick up the lportal module
  • Note that to export to other platforms you will also have to compile export templates for those platforms

You will know the installation was successful when you see a new Node type 'LRoomManager' in the Godot IDE.