Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/spikedpaladin/vessel
3D engine build with Vala
https://github.com/spikedpaladin/vessel
3d 3d-engine 3d-graphics computer-graphics glsl gtk opengl vala
Last synced: 14 days ago
JSON representation
3D engine build with Vala
- Host: GitHub
- URL: https://github.com/spikedpaladin/vessel
- Owner: SpikedPaladin
- License: mit
- Created: 2024-01-16T15:24:21.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2024-03-27T12:29:00.000Z (7 months ago)
- Last Synced: 2024-10-04T21:59:54.658Z (about 1 month ago)
- Topics: 3d, 3d-engine, 3d-graphics, computer-graphics, glsl, gtk, opengl, vala
- Language: Vala
- Homepage:
- Size: 749 KB
- Stars: 6
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Vessel
> [!WARNING]
> This project in early developmentSimple 3D Engine made with Vala
_Compatible with Gtk.GLArea_![Screenshot showing a example GTK application with Vessel.Viewport in Gtk.GLArea.](screenshot.png)
## Usage
### Basic
1. Create `Vessel.Viewport` in GL context
```vala
var viewport = new Vessel.Viewport();
```
2. Add nodes to `Vessel.Node` for example `Vessel.Mesh3D`
```vala
renderer.current_scene.add_child(new Mesh3D() { mesh = new BoxMesh(1) });
```
3. Call `render` method from `Vessel.Viewport` in GL context
```vala
renderer.render();
```
4. Call `resize` method from `Vessel.Viewport` on each resize event from your GL context owner
```vala
renderer.resize(width, height);
```## Example
Example of `Gtk.GLArea` as GL context owner are located in `example` folder## Building
### Gnome Builder
1. Clone
2. Open in Gnome Builder
3. Click `Run Project (Shift+Ctrl+Space)`### Manually
$ meson setup --prefix=/usr build
$ ninja -C build install## Contributing
1. Fork it ( https://github.com/SpikedPaladin/Vessel/fork )
2. Create your feature branch (git checkout -b my-new-feature)
3. Commit your changes (git commit -am 'Add some feature')
4. Push to the branch (git push origin my-new-feature)
5. Create a new Pull Request