Portal rendering / culling module for Godot
Go to file
2019-09-18 11:46:53 +01:00
config.py Add files via upload 2019-09-11 08:09:36 +01:00
INSTRUCTIONS.md Update INSTRUCTIONS.md 2019-09-18 11:46:53 +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
lbound.cpp More debugging support 2019-09-18 11:04:02 +01:00
lbound.h More debugging support 2019-09-18 11:04:02 +01:00
ldebug.cpp More debugging support 2019-09-18 11:04:02 +01:00
ldebug.h More debugging support 2019-09-18 11:04:02 +01:00
ldob.cpp More debugging support 2019-09-18 11:04:02 +01:00
ldob.h More debugging support 2019-09-18 11:04:02 +01:00
LICENSE Initial commit 2019-09-11 08:04:27 +01:00
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_all.cpp More debugging support 2019-09-18 11:04:02 +01:00
lportal.cpp More debugging support 2019-09-18 11:04:02 +01:00
lportal.h More debugging support 2019-09-18 11:04:02 +01:00
lroom_converter.cpp More debugging support 2019-09-18 11:04:02 +01:00
lroom_converter.h More debugging support 2019-09-18 11:04:02 +01:00
lroom_manager.cpp More debugging support 2019-09-18 11:04:02 +01:00
lroom_manager.h More debugging support 2019-09-18 11:04:02 +01:00
lroom.cpp More debugging support 2019-09-18 11:04:02 +01:00
lroom.h More debugging support 2019-09-18 11:04:02 +01:00
lvector.h DOB visibility culling added 2019-09-16 14:23:10 +01:00
README.md Update README.md 2019-09-17 14:31:37 +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 Optional convex hull bound for rooms 2019-09-17 14:30:31 +01:00

godot-lportal

Portal rendering module for Godot 3.2
Work in progress, not yet released

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

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
  • Optimize non-moving statics DONE
  • Optional convex hull bound for rooms DONE
  • Bug fixing / testing ONGOING
  • 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.