Coder Social home page Coder Social logo

thekiesling / spacetravel Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 845 KB

Space Travel is a 3D rendering project that simulates a space exploration experience. This project utilizes advanced rendering techniques and real-time 3D graphics to create a dynamic space environment. The rendering includes rendering of planets, a spacecraft, and celestial bodies. Users can navigate through this environment

CMake 0.43% Batchfile 0.08% C++ 98.92% C 0.56%
cpp glm sdl2 space-travel flat-shading rendering shaders

spacetravel's Introduction

Space Travel 3D Rendering Project

space-travel.mp4

Table of Contents

Overview

Space Travel is a 3D rendering project that simulates a space exploration experience. This project utilizes advanced rendering techniques and real-time 3D graphics to create a dynamic space environment. The rendering includes rendering of planets, a spacecraft, and celestial bodies. Users can navigate through this environment, and the project features dynamic camera movement, realistic shading, and interactive controls.

Planets

image image
image image

Spacecraft

image

Getting Started

To get started with the Space Travel project, follow these steps:

  1. Clone this repository to your local machine.
  2. Set up your C++ development environment. Make sure you have the required libraries, including SDL2 and glm.
  3. Build and run the project using your preferred C++ development tools or the command line.

Prerequisites

Before running this project, ensure you have the following prerequisites in place:

  • C++ Development Environment: You should have a C++ development environment set up on your machine.

Features

The Space Travel project includes the following features:

  • Real-time 3D rendering of celestial bodies, including planets, the sun, and spacecraft.
  • Dynamic camera movements for a user-controlled space exploration experience.
  • Advanced shading techniques, including Phong shading and texture mapping.
  • Interactivity, allowing users to control the spacecraft's movement within the rendered environment.
  • Realistic representation of the solar system with orbital paths.
  • Beautiful visual effects and realistic texturing.

Project Structure

The project is structured as follows:

  • main.cpp: The main entry point of the program.
  • camera.h: Contains the Camera structure for defining the viewpoint.
  • color.h: Defines the Color structure for color handling.
  • face.h: Contains the Face structure for storing face data.
  • fragment.h: Defines the Fragment structure representing a fragment in rendering.
  • line.h: Contains the line drawing algorithm and related functions.
  • loadOBJ.h: Handles loading 3D models in the OBJ format.
  • point.h: Contains functions for drawing points in rendering.
  • shaders.h: Contains the vertex and fragment shaders.
  • triangle.h: Contains functions for triangle rasterization.
  • uniforms.h: Defines the Uniforms structure for shader inputs.
  • vertex.h: Defines the Vertex structure for 3D vertex data.

Usage

  • Run the project to load the 3D model of the spacecraft and render the space environment.
  • You can control the spacecraft's movement using keyboard inputs.
  • Explore the rendered space environment and enjoy the realistic visual effects.

Contributing

Contributions to the Space Travel project are welcome. Here's how you can contribute:

  1. Fork the project.
  2. Create a feature branch: git checkout -b feature/your-feature-name.
  3. Commit your changes: git commit -m 'Add some feature'.
  4. Push to the branch: git push origin feature/your-feature-name.
  5. Open a pull request.

License

This project is licensed under the MIT License. For details, see the LICENSE file.


Feel free to customize and extend this README to provide more detailed information about your specific project. If you need additional sections or specific details to be included, please let me know!

spacetravel's People

Contributors

thekiesling avatar

Stargazers

 avatar

Watchers

 avatar

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.