diff --git a/README.md b/README.md index 725ecf8..c7e80d0 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,12 @@ # TerraVisor -TerraVisor is a 3D visualization tool designed for rendering and exploring terrain data. It leverages OpenGL for high-performance rendering and provides users with interactive features to manipulate and visualize complex terrain models. +TerraVisor is a 3D visualization tool designed for rendering and exploring terrain data. It provides users with interactive features to manipulate and visualize complex terrain models from real height data. ## Features -- **Real-Time Rendering**: Utilize the power of OpenGL for fast, real-time terrain visualization. -- **Interactive Tools**: Rotate, zoom, and pan the terrain model for detailed exploration. -- **Custom Shaders**: Supports custom GLSL shaders for advanced rendering effects. +- **Real Height Data**: Render height data from online services like NASA Earthdata, USGS National Map, or OpenTopography. +- **Real-Time Tessellation**: Dynamically tessellate the height data based on terrain slopes and proximity to the camera. +- **Export Tessellated Terrain**: Use the tessellated terrain in your own projects by exporting the tessellated mesh. ## Installation @@ -15,10 +15,17 @@ TerraVisor is a 3D visualization tool designed for rendering and exploring terra Before building TerraVisor, ensure that you have the following prerequisites installed on your system: - **Git**: Used for cloning the repository and managing source code. + - **CMake**: Build system generator used to configure the project. -- **Ninja**: Fast build system used to compile the project. + +- **Build System**: Needed by **CMake** to build and configure the project. This can be **Ninja**, **Make**, or any other build system you prefer. + +- **C++ Compiler**: Required for compiling the project. You can use compilers like **GCC** on Windows or Linux, or **MSVC** on Windows. + - **vcpkg**: Package manager for acquiring C++ libraries. + - **Windows Users**: Ensure you have either the **Visual Studio Build Tools** or **Visual Studio** with the C++ desktop development installed on your machine. + ### Installation Steps 1. **Clone the Repository**: @@ -29,41 +36,37 @@ Before building TerraVisor, ensure that you have the following prerequisites ins cd terravisor ``` -2. **Install vcpkg**: +2. **Install Dependencies**: - If you haven’t installed `vcpkg` yet, follow these steps to set it up: + Use `vcpkg` to install dependencies. From the vcpkg directory call: ```bash - git clone https://github.com/microsoft/vcpkg.git - cd vcpkg - ./bootstrap-vcpkg.sh # Use .\bootstrap-vcpkg.bat on Windows - ``` - Optionally, integrate `vcpkg` with your system: - ```bash - ./vcpkg integrate install + ./vcpkg install glm glew glfw3 assimp freeimage ``` -3. **Install Dependencies**: \ - Use `vcpkg` to install dependencies: +3. **Configure the Project**: + + Navigate back to the project root directory and configure the project using CMake and your build system of choice. For this example, we'll use Ninja: ```bash - ./vcpkg install glm glew glfw3 assimp + cmake -B build -S . -G Ninja --preset release ``` + If necessary, specify `VCPKG_ROOT` before configuring the project: + - On Linux/macOS: + ```bash + export VCPKG_ROOT=/path/to/vcpkg + ``` + - On Windows: + ```bash + set VCPKG_ROOT=C:/path/to/vcpkg # If in powershell use $Env:VCPKG_ROOT = "C:/path/to/vcpkg" + ``` -4. **Configure the Project**: - - Navigate back to the project root directory and configure the project using CMake and Ninja. Be sure to specify the `vcpkg` toolchain file: - ```bash - cd .. - cmake -B build -S . -G Ninja -DCMAKE_TOOLCHAIN_FILE=./vcpkg/scripts/buildsystems/vcpkg.cmake - ``` - -5. **Build the Project**: +4. **Build the Project**: Build the project using Ninja: ```bash cmake --build build ``` -6. **Run the Application**: +5. **Run the Application**: Once the build process is complete, you can run the TerraVisor application: ```bash @@ -76,7 +79,8 @@ GLEW - OpenGL Extension Wrangler Library \ GLFW - OpenGL Framework \ GLM - OpenGL Mathematics \ ASSIMP - Open Asset Import Library \ -Dear ImGui +FreeImage - Graphics Import Library \ +Dear ImGui - GUI framework ## Contact For questions or support, please reach out to Jack Christensen at \ No newline at end of file