Skip to content

alaanvv/3Dinator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

3Dinator

A 3D engine made completely from scratch using OpenGL, cglm and now introducing miniaudio


Setup

Preparing /inc

  • Adding glfw and cglm (miniaudio is optional)
mkdir inc
cd inc
git clone https://github.com/recp/cglm
git clone https://github.com/glfw/glfw
git clone https://github.com/mackron/miniaudio
  • Adding glad
    • Generate files through webservice
    • Put them on inc/glad
    • Also add a CMakeLists.txt:
cmake_minimum_required(VERSION 3.16)
project(glad)

add_library(glad)
target_sources(glad PRIVATE src/glad.c)
target_include_directories(glad PUBLIC include)

Those meshes were made manually, so this bottle
is more amazing than the whole code

Since I'm using .obj files now, I'll let the bottle live here

Mesh bottle = {
  // Bottom
  -0.5, -3, -1, 0, 0, 0, /* */ +0.5, -3, -1, 0, 0, 0, /* */ +0, -3, +0, 0, 0, 0,
  +0.5, -3, -1, 0, 0, 0, /* */ +1, -3, -0.5, 0, 0, 0, /* */ +0, -3, +0, 0, 0, 0,
  +1, -3, -0.5, 0, 0, 0, /* */ +1, -3, +0.5, 0, 0, 0, /* */ +0, -3, +0, 0, 0, 0,
  +1, -3, +0.5, 0, 0, 0, /* */ +0.5, -3, +1, 0, 0, 0, /* */ +0, -3, +0, 0, 0, 0,
  +0.5, -3, +1, 0, 0, 0, /* */ -0.5, -3, +1, 0, 0, 0, /* */ +0, -3, +0, 0, 0, 0,
  -0.5, -3, +1, 0, 0, 0, /* */ -1, -3, +0.5, 0, 0, 0, /* */ +0, -3, +0, 0, 0, 0,
  -1, -3, +0.5, 0, 0, 0, /* */ -1, -3, -0.5, 0, 0, 0, /* */ +0, -3, +0, 0, 0, 0,
  -1, -3, -0.5, 0, 0, 0, /* */ -0.5, -3, -1, 0, 0, 0, /* */ +0, -3, +0, 0, 0, 0,
  // Faces
  -0.5, -3, -1, 0, 0, 0, /* */ -0.5, +1, -1, 0, 0, 0, /* */ +0.5, -3, -1, 0, 0, 0,
  -0.5, +1, -1, 0, 0, 0, /* */ +0.5, +1, -1, 0, 0, 0, /* */ +0.5, -3, -1, 0, 0, 0,
  +0.5, -3, -1, 0, 0, 0, /* */ +0.5, +1, -1, 0, 0, 0, /* */ +1, -3, -0.5, 0, 0, 0,
  +0.5, +1, -1, 0, 0, 0, /* */ +1, +1, -0.5, 0, 0, 0, /* */ +1, -3, -0.5, 0, 0, 0,
  +1, -3, -0.5, 0, 0, 0, /* */ +1, +1, -0.5, 0, 0, 0, /* */ +1, -3, +0.5, 0, 0, 0,
  +1, +1, -0.5, 0, 0, 0, /* */ +1, +1, +0.5, 0, 0, 0, /* */ +1, -3, +0.5, 0, 0, 0,
  +1, -3, +0.5, 0, 0, 0, /* */ +1, +1, +0.5, 0, 0, 0, /* */ +0.5, -3, +1, 0, 0, 0,
  +1, +1, +0.5, 0, 0, 0, /* */ +0.5, +1, +1, 0, 0, 0, /* */ +0.5, -3, +1, 0, 0, 0,
  +0.5, -3, +1, 0, 0, 0, /* */ +0.5, +1, +1, 0, 0, 0, /* */ -0.5, -3, +1, 0, 0, 0,
  +0.5, +1, +1, 0, 0, 0, /* */ -0.5, +1, +1, 0, 0, 0, /* */ -0.5, -3, +1, 0, 0, 0,
  -0.5, -3, +1, 0, 0, 0, /* */ -0.5, +1, +1, 0, 0, 0, /* */ -1, -3, +0.5, 0, 0, 0,
  -0.5, +1, +1, 0, 0, 0, /* */ -1, +1, +0.5, 0, 0, 0, /* */ -1, -3, +0.5, 0, 0, 0,
  -1, -3, +0.5, 0, 0, 0, /* */ -1, +1, +0.5, 0, 0, 0, /* */ -1, -3, -0.5, 0, 0, 0,
  -1, +1, +0.5, 0, 0, 0, /* */ -1, +1, -0.5, 0, 0, 0, /* */ -1, -3, -0.5, 0, 0, 0,
  -1, -3, -0.5, 0, 0, 0, /* */ -1, +1, -0.5, 0, 0, 0, /* */ -0.5, -3, -1, 0, 0, 0,
  -1, +1, -0.5, 0, 0, 0, /* */ -0.5, +1, -1, 0, 0, 0, /* */ -0.5, -3, -1, 0, 0, 0,
  // Curve
  -0.5, +1, -1, 0, 0, 0, /* */ +0.1, 2, -0.2, 0, 0, 0, /* */ +0.5, +1, -1, 0, 0, 0,
  -0.5, +1, -1, 0, 0, 0, /* */ -0.1, 2, -0.2, 0, 0, 0, /* */ +0.1, 2, -0.2, 0, 0, 0,
  +0.5, +1, -1, 0, 0, 0, /* */ +0.2, 2, -0.1, 0, 0, 0, /* */ +1, +1, -0.5, 0, 0, 0,
  +0.5, +1, -1, 0, 0, 0, /* */ +0.1, 2, -0.2, 0, 0, 0, /* */ +0.2, 2, -0.1, 0, 0, 0,
  +1, +1, -0.5, 0, 0, 0, /* */ +0.2, 2, +0.1, 0, 0, 0, /* */ +1, +1, +0.5, 0, 0, 0,
  +1, +1, -0.5, 0, 0, 0, /* */ +0.2, 2, -0.1, 0, 0, 0, /* */ +0.2, 2, +0.1, 0, 0, 0,
  +1, +1, +0.5, 0, 0, 0, /* */ +0.1, 2, +0.2, 0, 0, 0, /* */ +0.5, +1, +1, 0, 0, 0,
  +1, +1, +0.5, 0, 0, 0, /* */ +0.2, 2, +0.1, 0, 0, 0, /* */ +0.1, 2, +0.2, 0, 0, 0,
  +0.5, +1, +1, 0, 0, 0, /* */ -0.1, 2, +0.2, 0, 0, 0, /* */ -0.5, +1, +1, 0, 0, 0,
  +0.5, +1, +1, 0, 0, 0, /* */ +0.1, 2, +0.2, 0, 0, 0, /* */ -0.1, 2, +0.2, 0, 0, 0,
  -0.5, +1, +1, 0, 0, 0, /* */ -0.2, 2, +0.1, 0, 0, 0, /* */ -1, +1, +0.5, 0, 0, 0,
  -0.5, +1, +1, 0, 0, 0, /* */ -0.1, 2, +0.2, 0, 0, 0, /* */ -0.2, 2, +0.1, 0, 0, 0,
  -1, +1, +0.5, 0, 0, 0, /* */ -0.2, 2, -0.1, 0, 0, 0, /* */ -1, +1, -0.5, 0, 0, 0,
  -1, +1, +0.5, 0, 0, 0, /* */ -0.2, 2, +0.1, 0, 0, 0, /* */ -0.2, 2, -0.1, 0, 0, 0,
  -1, +1, -0.5, 0, 0, 0, /* */ -0.1, 2, -0.2, 0, 0, 0, /* */ -0.5, +1, -1, 0, 0, 0,
  -1, +1, -0.5, 0, 0, 0, /* */ -0.2, 2, -0.1, 0, 0, 0, /* */ -0.1, 2, -0.2, 0, 0, 0,
  // Neck
  -0.1, +3, -0.2, 0, 0, 0, /* */ +0.1, 2, -0.2, 0, 0, 0, /* */ -0.1, 2, -0.2, 0, 0, 0,
  -0.1, +3, -0.2, 0, 0, 0, /* */ -0.1, 2, -0.2, 0, 0, 0, /* */ -0.2, +3, -0.1, 0, 0, 0,
  +0.1, +3, -0.2, 0, 0, 0, /* */ +0.2, 2, -0.1, 0, 0, 0, /* */ +0.1, 2, -0.2, 0, 0, 0,
  +0.1, +3, -0.2, 0, 0, 0, /* */ +0.1, 2, -0.2, 0, 0, 0, /* */ -0.1, +3, -0.2, 0, 0, 0,
  +0.2, +3, -0.1, 0, 0, 0, /* */ +0.2, 2, +0.1, 0, 0, 0, /* */ +0.2, 2, -0.1, 0, 0, 0,
  +0.2, +3, -0.1, 0, 0, 0, /* */ +0.2, 2, -0.1, 0, 0, 0, /* */ +0.1, +3, -0.2, 0, 0, 0,
  +0.2, +3, +0.1, 0, 0, 0, /* */ +0.1, 2, +0.2, 0, 0, 0, /* */ +0.2, 2, +0.1, 0, 0, 0,
  +0.2, +3, +0.1, 0, 0, 0, /* */ +0.2, 2, +0.1, 0, 0, 0, /* */ +0.2, +3, -0.1, 0, 0, 0,
  +0.1, +3, +0.2, 0, 0, 0, /* */ -0.1, 2, +0.2, 0, 0, 0, /* */ +0.1, 2, +0.2, 0, 0, 0,
  +0.1, +3, +0.2, 0, 0, 0, /* */ +0.1, 2, +0.2, 0, 0, 0, /* */ +0.2, +3, +0.1, 0, 0, 0,
  -0.1, +3, +0.2, 0, 0, 0, /* */ -0.2, 2, +0.1, 0, 0, 0, /* */ -0.1, 2, +0.2, 0, 0, 0,
  -0.1, +3, +0.2, 0, 0, 0, /* */ -0.1, 2, +0.2, 0, 0, 0, /* */ +0.1, +3, +0.2, 0, 0, 0,
  -0.2, +3, +0.1, 0, 0, 0, /* */ -0.2, 2, -0.1, 0, 0, 0, /* */ -0.2, 2, +0.1, 0, 0, 0,
  -0.2, +3, +0.1, 0, 0, 0, /* */ -0.2, 2, +0.1, 0, 0, 0, /* */ -0.1, +3, +0.2, 0, 0, 0,
  -0.2, +3, -0.1, 0, 0, 0, /* */ -0.1, 2, -0.2, 0, 0, 0, /* */ -0.2, 2, -0.1, 0, 0, 0,
  -0.2, +3, -0.1, 0, 0, 0, /* */ -0.2, 2, -0.1, 0, 0, 0, /* */ -0.2, +3, +0.1, 0, 0, 0,
  // Top
  -0.1, +3, -0.2, 0, 0, 0, /* */ +0, +3, +0, 0, 0, 0, /* */ +0.1, +3, -0.2, 0, 0, 0,
  +0.1, +3, -0.2, 0, 0, 0, /* */ +0, +3, +0, 0, 0, 0, /* */ +0.2, +3, -0.1, 0, 0, 0,
  +0.2, +3, -0.1, 0, 0, 0, /* */ +0, +3, +0, 0, 0, 0, /* */ +0.2, +3, +0.1, 0, 0, 0,
  +0.2, +3, +0.1, 0, 0, 0, /* */ +0, +3, +0, 0, 0, 0, /* */ +0.1, +3, +0.2, 0, 0, 0,
  +0.1, +3, +0.2, 0, 0, 0, /* */ +0, +3, +0, 0, 0, 0, /* */ -0.1, +3, +0.2, 0, 0, 0,
  -0.1, +3, +0.2, 0, 0, 0, /* */ +0, +3, +0, 0, 0, 0, /* */ -0.2, +3, +0.1, 0, 0, 0,
  -0.2, +3, +0.1, 0, 0, 0, /* */ +0, +3, +0, 0, 0, 0, /* */ -0.2, +3, -0.1, 0, 0, 0,
  -0.2, +3, -0.1, 0, 0, 0, /* */ +0, +3, +0, 0, 0, 0, /* */ -0.1, +3, -0.2, 0, 0, 0
};

About

3D Engine from scratch

Topics

Resources

Stars

Watchers

Forks

Contributors