config.py | ||
INSTRUCTIONS.md | ||
lbitfield_dynamic.cpp | ||
lbitfield_dynamic.h | ||
ldob.cpp | ||
ldob.h | ||
LICENSE | ||
lplanes_pool.cpp | ||
lplanes_pool.h | ||
lportal.cpp | ||
lportal.h | ||
lroom_converter.cpp | ||
lroom_converter.h | ||
lroom_manager.cpp | ||
lroom_manager.h | ||
lroom.cpp | ||
lroom.h | ||
lvector.h | ||
README.md | ||
register_types.cpp | ||
register_types.h | ||
SCsub |
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
- 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.