Skip to content

kikonen/learnopengl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

General

This is just scatchpad app for following OpenGL tutorial at learnopengl.com.

SETUP

Sub modules

git submodule init
git submodule update --init  --recursive

Build assets

Install ruby

Ruby+Devkit 3.4.1-2 (x64) (https://rubyinstaller.org)

$ cat ~/.irbrc
IRB.conf[:USE_AUTOCOMPLETE] = false

Setup

bundle install

.rdbgrc

#
# https://github.com/ruby/debug
#

config set no_hint true
config set show_frames 0
config set use_short_path true
config set no_reline 1

.irbrc

#
# https://ruby-doc.org/3.4.1/stdlibs/irb/IRB.html#module-IRB-label-Configuration
#
# @see IRB.conf

IRB.conf[:USE_AUTOCOMPLETE] = false
#IRB.conf[:PROMPT_MODE] = :SIMPLE
#IRB.conf[:USE_PAGER] = false
#IRB.conf[:BACK_TRACE_LIMIT] = 0
#IRB.conf[:CONTEXT_MODE] = 0
#IRB.conf[:INSPECT_MODE] = false
#IRB.conf[:COMMAND_ALIASES] = {}

prepare assets

ruby script/encode_ktx.rb meta --src resources/assets/textures/Metal022_1K-PNG --dry-run false --force true

build assets

ruby script/encode_ktx.rb ktx --src resources/assets/textures/Metal022_1K-PNG --dry-run false --target-size 2048 --force true

vcpkg-registry

Clone vcpkg-registry

# into same level as learnopengl repo
cd $ROOT
git clone [email protected]:kikonen/vcpkg-registry.git

Test vcpkg-registry

# NOTE KI in *POWERSHELL** not bash
cd learnopengl
vcpkg install --feature-flags=registries,manifests

opengl GLAD setup

  1. generae package https://glad.dav1d.de
  • include
    • GL_ARB_Bindless_Texture
  1. Download

  2. Unzip into vendor/glad

Vendor modules

generator

For generating simple basic meshes https://github.com/ilmola/generator

TODO/Research

Misc techniques

OpenGL Specs

UBO/SSBO alignment

Billboard

Frustum culling

GPU frustum/occlusion culling

CPU frustum culling

Compute shader

GPU Texture Compression

ktx albedo

ktxinfo.exe Planks09_col_2048.ktx

Compress

toktx.exe --verbose --genmipmap --encode astc Planks09_col_2048.ktx Planks09_col_2048.png

Scripting

Skybox

Height map

Tessellation

G-buffer

Skeletal animation

CSM

Geometry shader

Physics

Quaternions

Audio

Misc

C++

Visual C++

SIMD

UUID

Libraries

References