Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/finger563/unreal-pgm
Projective Grid Mapping for Planetary Terrain Implementation for Unreal Engine 4 / 5
https://github.com/finger563/unreal-pgm
Last synced: 13 days ago
JSON representation
Projective Grid Mapping for Planetary Terrain Implementation for Unreal Engine 4 / 5
- Host: GitHub
- URL: https://github.com/finger563/unreal-pgm
- Owner: finger563
- License: mit
- Created: 2021-12-19T20:15:41.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2021-12-29T22:35:00.000Z (almost 3 years ago)
- Last Synced: 2024-10-26T03:51:38.310Z (about 2 months ago)
- Size: 49.8 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# unreal-pgm
Projective Grid Mapping for Planetary Terrain Implementation for Unreal Engine 4 / 5## References
* [Projective Grid Mapping for Planetary Terrain (Thesis)](https://www.cse.unr.edu/~fredh/papers/thesis/046-mahsman/thesis.pdf) (2010)
* [Projective Grid Mapping for Planetary Terrain Visualization (YouTube)](https://www.youtube.com/watch?v=xtFxDCJE-0Y) (2012)
* [Geometry Reinvented with Mesh Shading - NVIDIA SIGGRAPH 2019](https://www.youtube.com/watch?v=rLEbO0Vrzz4) (2019)
* [Planetary Rendering With Mesh Shaders](https://www.cg.tuwien.ac.at/research/publications/2020/rumpelnik_martin_2020_PRM/rumpelnik_martin_2020_PRM-Thesis.pdf) (2020)## Progress
So far I've gotten a basic matirial which projects from absolute world position
onto a sphere with the given center and radius. This is applied to sprites of a
niagra emitter which spawns particles in a grid (statically) and those particles
/ that grid are placed very close in front of the camera, approximating the
screen-space grid from the PGM paper.### Current Images
Textured (Earth) onto PGM sphere:
![Textured PGM](./images/textured_pgm.png)Normal Vector visualized on PGM sphere
![Textured PGM](./images/normal_1_pgm.png)### Older Images
Here is an example of the current (very beta) version of that system:
![Example PGM](./images/pgm_test.png)Here is that same scene, but in wireframe mode:
![Wireframe PGM](./images/wireframe_pgm.png)## TODO
- [ ] Better ray-sphere intersection calculation to move the vertices of near-misses onto the sphere for smoother sphere edge without needing to drastically increase the resolution of the particle grid
- [ ] Better management of particle spawning to remove motion blur and ensure that it updates frequently enough
- [x] Better calculation of normal / tangent vectors (since they seem to be .... not so great...)
- [ ] Update to affect lighting (since right now the particles (and thus the sphere) don't affect the lighting in the scene / don't cast shadows)
- [x] Texture mapping onto the sphere
- [ ] Height mapping / displacement onto the sphere (texture lookup)
- [ ] Conversion of height map into TSDF for use in ray-sphere ray-sdf intersection calculation
- [ ] Addition of atmosphere shader / integration with UE atmosphere system?
- [ ] Addition of water shader / integration with UE water system?
- [ ] Addition of clouds / integration with UE cloud system?