Vire is a C++ voxel rendering engine. It is written in C++14 and uses OpenGL for graphics.

Related tags

Graphics vkt
Overview

Vire

Vire is a C++ voxel rendering engine. It is written in C++14 and uses OpenGL for graphics.


Downloads

If you'd just like to just download and try, there are precompiled binaries available for Windows and Linux which you can download here:

Windows

Linux

Default controls

All controls are re-bindable using the config files.

  • Look Around: Move Mouse
  • Move: WASD
  • Jump: Space
  • switchmov?: Left Shift
  • Toggle GUI: F1
  • Toggle Spin Mode: F2
  • Toggle Fullscreen: F11
  • toggle_coll?: Keypad 0
  • Toggle Fullbright: Keypad 1
  • Toggle Cursor: `
  • Place Block: RClick
  • Destroy Block: LClick
  • Pick Block: Side Mouse Button

MacOS Support

Though MacOS is currently unsupported, there are plans to support it in the future. This is due to the fact that Apple has deprecated OpenGL with the later versions of MacOS, limiting the use of the library to version 4.1.0. Currently, Vire uses 4.4.0, so once we can downgrade to a lower OpenGL version, MacOS support will be added!

Compiling

⚠️ You might not need to compile: you only need to compile from the source if you want to set up a dev environment, or if something isn't working right. The precompiled binaries are automatic, and always up to date with the main branch, so unless you need it for some reason (such as contributing to the repo), you don't really have to compile from source

Linux

To compile the project, you will need the following dependencies:

name package debian based package arch based package fedora based
g++ g++ gcc gcc-c++
libGL libgl-dev libglvnd mesa-libGL-devel
libGLEW libglew-dev glew glew-devel
libglfw libglfw3-dev glfw-wayland / glfw-x11 glfw-devel
libglm libglm-dev glm glm-devel
libX11 libx11-dev libx11 libX11-1.7.3.1-1.fc36
libXxf86vm libxxf86vm-dev libxxf86vm libXxf86vm-devel
libXrandr libxrandr-dev libxrandr libXrandr-devel
libpthread libpthread-stubs0-dev glibcs libpthread-stubs-devel
libXi libxi-dev libxi libXi-devel
libdl libc6-dev glibc glibc-devel
libXinerama libxinerama-dev libxinerama libXinerama
libXcursor libxcursor-dev libxcursor libXcursor
libm libc6-dev glibc glibc-devel

Ubuntu

sudo apt-get -y install g++ libgl-dev libglew-dev libglfw3-dev libglm-dev libx11-dev libxxf86vm-dev libxrandr-dev libpthread-stubs0-dev libxi-dev libc6-dev libxinerama-dev libxcursor-dev libc6-dev

Then git clone this repository or download and extract the zip
Finally, you should be able to cd into the repo and run make buildlinux

The program can be started using the file in the new bin/linux folder, or through the command make run

Windows

To compile on Windows, you'll need to follow these steps:

  1. Download MSYS2 from https://www.msys2.org/ and follow steps 1-7 on the main page
  2. Run this command in the MSYS2 shell: pacman -S mingw-w64-x86_64-glfw mingw-w64-x86_64-glew mingw-w64-x86_64-glm
  3. Add the folder msys64/mingw64/bin to PATH
  4. Either git clone this repository or download and extract the zip
  5. In the MinGW shell, cd to the repository and run make buildwin_msys

The program can be started using the .exe in the new bin/windows folder, or through the command make run

Contributing

To contribute to the project, submit a pull request.

You might also like...
Brand new engine with new and QoL features. Grafex is Psych engine with some additions and Better graphics

Friday Night Funkin' - Graphex Engine Credits: Grafex Mod aka Psych Graphic Rework: Xale - Lead Coding, Artist PurpleSnake - Second Coder Psych Engine

NVRHI (NVIDIA Rendering Hardware Interface) is a library that implements a common abstraction layer over multiple graphics APIs

NVRHI Introduction NVRHI (NVIDIA Rendering Hardware Interface) is a library that implements a common abstraction layer over multiple graphics APIs (GA

A terminal-based graphics library for both 2D and 3D graphics.
A terminal-based graphics library for both 2D and 3D graphics.

TermGL A terminal-based graphics library for both 2D and 3D graphics. Written in C, created for terminals supporting ANSI escape codes. Table of Conte

kaun is a replacement for löve's built-in love.graphics module intended for 3D graphics

kaun kaun is a replacement for löve's built-in love.graphics module intended for 3D graphics. It is a Lua module you can require from a shared library

This repo contains the DirectX Graphics samples that demonstrate how to build graphics intensive applications on Windows.
This repo contains the DirectX Graphics samples that demonstrate how to build graphics intensive applications on Windows.

DirectX-Graphics-Samples This repo contains the DirectX 12 Graphics samples that demonstrate how to build graphics intensive applications for Windows

A realtime Vulkan voxel path tracer.
A realtime Vulkan voxel path tracer.

brickmap-vulkan A realtime Vulkan voxel path tracer. This is a work in progress! This system is a Vulkan/SPIRV implementation of the BrickMap by stijn

A multi-platform library for OpenGL, OpenGL ES, Vulkan, window and input

GLFW Introduction GLFW is an Open Source, multi-platform library for OpenGL, OpenGL ES and Vulkan application development. It provides a simple, platf

My attempt at OpenGL graphics

Graphics My attempt at OpenGL graphics. I have no idea what this will end up as, but it's a bit of fun and something to do. Formerly subject to a C-on

Comments
  • Created modular texture system

    Created modular texture system

    WARNING: I use Windows and updated the Makefile (-lstdc++fs for Windows flags) in order to build. Linux builds might need to have an updated Makefile, but I don't have Linux so someone else will need to check. Inside gamedata/textures, the numbering system is only for semantic use; it does not directly relate to in-game texture numbers. (i.e. naming a texture 245.png won't make that the 245th texture) There are 256 available texture slots. Attempting to include additional textures may result in an error. If there are fewer than 256 textures, the remaining ones will be filled in black (except for texture 6)

    opened by basilicon 2
  • Removed UTF-8 BOM from shaders.

    Removed UTF-8 BOM from shaders.

    Removing the BOM Character in the shaders, which is not supported by the GL Shader Language resulting in the error: preprocessing error: syntax error, unexpected HASH_TOKEN

    opened by TheNogl 0
  • Lua bindings

    Lua bindings

    adds Lua support and a few bindings. main.lua contains a simple script to destroy blocks quickly and refuel the torch, it also prints out the player's position

    opened by RNU4 6
  • [under the hood shenanigans] Terminology for development

    [under the hood shenanigans] Terminology for development

    I feel that it would help to separate things like the player and the character being controlled by the player. This has me thinking, should there be some terminology defined like this to help keep things organized?

    opened by g307m 3
Owner
null
Legion Low Level Rendering Interface provides a graphics API agnostic rendering interface with minimal CPU overhead and low level access to verbose GPU operations.

Legion-LLRI Legion-LLRI, or “Legion Low Level Rendering Interface” is a rendering API that aims to provide a graphics API agnostic approach to graphic

Rythe Interactive 25 Dec 6, 2022
Low Level Graphics Library (LLGL) is a thin abstraction layer for the modern graphics APIs OpenGL, Direct3D, Vulkan, and Metal

Low Level Graphics Library (LLGL) Documentation NOTE: This repository receives bug fixes only, but no major updates. Pull requests may still be accept

Lukas Hermanns 1.5k Jan 8, 2023
OpenGL®-Starter is a template for your upcoming OpenGL Projects which has been compiled to run the most basic Hello World OpenGL Program from LearnOpenGL.com.

OpenGL®-Starter OpenGL®-Starter is a template for your upcoming OpenGL Projects which has been compiled to run the most basic Hello World OpenGL Progr

Kushagra 9 Sep 7, 2022
Horde3D is a small 3D rendering and animation engine. It is written in an effort to create an engine being as lightweight and conceptually clean as possible.

Horde3D Horde3D is a 3D rendering engine written in C++ with an effort being as lightweight and conceptually clean as possible. Horde3D requires a ful

Volker Vogelhuber 1.3k Dec 31, 2022
Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.

bgfx - Cross-platform rendering library GitHub Discussions Discord Chat What is it? Cross-platform, graphics API agnostic, "Bring Your Own Engine/Fram

Бранимир Караџић 12.6k Jan 8, 2023
Yet another Chip-8 interpreter, this time written in C++ using GLFW and OpenGL as its graphics library 💻

Yet another Chip-8 interpreter, but this time with a beautiful interface ??

Akshit Garg 30 Dec 14, 2022
Voxelight is a simple voxel engine/sandbox

Voxelight is a learning project, I have no prior experience with OpenGL or any other graphics API for that matter.

null 0 Jul 14, 2022
3D engine from scratch (without OpenGL or any other 3D graphics library)

Simple 3d engine based on SFML library. I tried to make this engine powerful and easy to understand.

Vectozavr 64 Dec 10, 2022
A legacy OpenGL simulator for OpenGL 4.4, written in C++.

the-ancient-tri A legacy OpenGL simulator for OpenGL 4.4, written in C++. Why? My Uni forces us to use legacy OpenGL (eww!), and I didn't want to lear

Mohammad Issawi 4 Feb 10, 2022
A modern cross-platform low-level graphics library and rendering framework

Diligent Engine A Modern Cross-Platform Low-Level 3D Graphics Library Diligent Engine is a lightweight cross-platform graphics API abstraction library

Diligent Graphics 2.6k Dec 30, 2022