Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/shirleynekodev/chunky-cpunativeoctree
Implements a packed octree using native memory management in Zig + Java 19 JEP 424
https://github.com/shirleynekodev/chunky-cpunativeoctree
chunky chunky-plugin hacktoberfest minecraft
Last synced: 7 days ago
JSON representation
Implements a packed octree using native memory management in Zig + Java 19 JEP 424
- Host: GitHub
- URL: https://github.com/shirleynekodev/chunky-cpunativeoctree
- Owner: ShirleyNekoDev
- License: gpl-3.0
- Created: 2023-07-18T22:21:45.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-10-14T16:52:09.000Z (about 1 year ago)
- Last Synced: 2023-10-16T00:32:34.884Z (about 1 year ago)
- Topics: chunky, chunky-plugin, hacktoberfest, minecraft
- Language: Zig
- Homepage:
- Size: 40 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[Experimental] NativeOctree plugin for Chunky 2.5+
==================================Provides a new octree implementation which uses native CPU operations and OS memory management to speed up chunk loading / octree creation and rendering of Chunky scenes.
__⚠️ Disclaimer:__ This project is experimental. Do not expect interoperability, feature completeness or faster rendering with the current implementation. Especially Java-native interoperability is a bottleneck and will change in the future.
## Project Goals
Different octree implementations optimized for different user needs with optimizations for different stages in the scene creation process:
- Octree optimized for insertion / building (faster octree creation)
- Octree optimized for memory efficiency (loading huge worlds)
- Octree optimized for access speed (fast rendering)_(Personal goals: learn Zig, efficient memory management, optimizations for modern platforms)_
## Requirements
- Chunky 2.5.0-snapshot builds
- Java 21 with [_JEP 442: Foreign Function & Memory API (Third Preview)_](https://openjdk.org/jeps/442)
- ⚠️ _this requires preview features to be enabled - see installation below_### Builds / Releases
Releases are compiled for **x86_64** (64-bit) systems targeting Windows, Linux and MacOS and packed into a single cross-platform `.jar`.
__⚠️ Disclaimer:__ Only Windows is tested at the moment.
### Build Requirements
- JDK 21+
- Zig 0.11.0+## Installation
1. Download the newest version from the releases
2. Put the downloaded `.jar`-file in `.chunky/plugins/`
3. Start the Chunky launcher and ensure that you have the newest release installed (2.5-SNAPSHOT or higher)
4. Enable the plugin in the plugin manager
5. Make sure that you are using an installation of Java __19__ (or a subversion 19.x, but not a lower or higher version)
6. Append `--enable-preview --enable-native-access=ALL-UNNAMED` to the Java options
7. Start Chunky and switch the octree implementation to `NATIVE_ZIGv1` in the `Advanced` tab
8. (If you have the debug console enabled, you should now see some messages about created octrees)