Giter Club home page Giter Club logo

vosslandscape's Introduction

Introduction

Procedural heightmap generator and renderer with isometric view based on the program LANDVOSS for DOS-like systems from the early 1990's. As for now there is only a console utility that generates PNG images.

The heightmap algorithm is based on the paper by Voss and Clarke, 1978 and utilizes pink noise.

Screenshot of landscape generated by Voss pink noise

Montage of generated images

Contents

  • VossImage - console utility that produces images with a specified seed and coordinates.
  • VossLandscape - interactive version with GUI.

Usage options

VossImage [options] <output file name>
  • -h,--help - Show help message.
  • -r,--resolution WxH - Output image resolution. Default is 1024x768. The algorithm is ported from DOS and it is best suited for VGA/SVGA resolutions such as 640x480, 800x600 and 1024x768.
  • -w,--worldpos X,Y - Heightmap X and Y coords in the global procedural world. Default coordinates are 10,10.

Environment Setup

Debian-based Systems

The following instructions apply to:

  • Ubuntu 24.04, 22.04, 20.04
  • Debian 12, 11
sudo apt-get install -y \
    build-essential \
    cmake \
    xorg-dev \
    libgl1-mesa-dev \
    libfreetype6-dev

RedHat-based Systems

The following instructions apply to:

  • Fedora 22 and higher
sudo dnf install -y \
    gcc gcc-c++ make \
    cmake \
    mesa-libGL-devel \
    libXrandr-devel \
    libXinerama-devel \
    libXcursor-devel \
    libXi-devel \
    freetype-devel
  • CentOS 7 and higher
sudo yum install -y \
    gcc gcc-c++ make \
    cmake \
    mesa-libGL-devel \
    libXrandr-devel \
    libXinerama-devel \
    libXcursor-devel \
    libXi-devel \
    freetype-devel

Cloning Repository

Cloning the repository requires passing the --recursive flag to load dependencies

git clone --recursive https://github.com/Postrediori/VossLandscape.git
cd VossLandscape

Building Project on Linux

The program is built with the commands below. CMake requires the directory with the main project's CMakeLists.txt file as an argument. Then the CMake creates the build files for the GNU make which build an executable.

mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make
make install

Building Project on macOS

Generate build files and build sources on macOS with the following commands:

mkdir build && cd build
cmake .. -DCMAKE_OSX_ARCHITECTURES=x86_64 -DCMAKE_BUILD_TYPE=Release
make
make install

Running Project

After the successful build the binary VossLandscape will end up in bundle/ directory.

cd bundle
./VossLandscape

Links

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.