Skip to content

voldien/OpenGL-Samples

Repository files navigation

Linux Build License: MIT

OpenGL Sample Repository - Work In Progress

github_opengl_thumbnail

A collection of OpenGL Samples, work in progress, for personal educational purposes.

CLI - Command Line Options

Usage:
  OpenGL Sample: GLSample [OPTION...]

 GLSample options:
  -h, --help                helper information.
  -d, --debug               Enable Debug View. (default: true)
  -t, --time arg            How long to run sample (default: 0)
  -f, --fullscreen          Run in FullScreen Mode
  -v, --vsync               Vertical Blank Sync
  -g, --opengl-version arg  OpenGL Version (default: -1)
  -F, --filesystem arg      FileSystem (default: .)
  -r, --renderdoc           Enable RenderDoc
  -G, --gamma-correction    Enable Gamma Correction
  -W, --width arg           Set Window Width (default: -1)
  -H, --height arg          Set Window Height (default: -1)
  -D, --display arg         Display (default: -1)
  -m, --multi-sample arg    Set MSAA (default: 0)
  -p, --use-postprocessing  Use Post Processing (default: true)
  -s, --glsl-version arg    Override glsl version from system 

Graphic Based Samples

Triangle

Texture Texture

PointLights

SkyboxPanoramic

SkyboxPanoramic

Fog

Instance

Subsurface Scattering Subsurface Scattering

Normal

PhongBlinn PhongBlinn

Terrain

FrustumCulling

BasicShadowMapp

BasicShadowMap PCF BasicShadowMap PCF

PointLightShadow

ProjectedShadow

Shadow Volume

MipMapVisual

AmbientOcclusion

AmbientOcclusion AmbientOcclusion AmbientOcclusion AmbientOcclusion

Physical Based Rendering

Panoramic Panoramic

SimpleOcean

Compute Shader Base Examples

GameOfLife

MandelBrot

VectorField2D

ComputeGroup

MarchingCube

RigidBody

PostProcessing Effects

  • Chromatic Aberration

  • Sobel Edge Detection

  • Screen Space Ambient Occlusion

  • Gaussian/Box Blur

  • Mist Fog

  • Volumetric Scattering

Volumetric

  • ColorSpace

  • Pixelate

  • Grain

  • Bloom

  • Contact Shadow

Required Packages

apt-get install pkg-config libsdl2-dev libfreeimage-dev libfmt-dev libglm-dev libgtest-dev googletest mesa-common-dev mesa-utils libopenal-dev libalut-dev
apt-get install glslang-tools libassimp-dev libavcodec-dev libavformat-dev libswscale-dev libavutil-dev binutils-dev libeigen3-dev libglu1-mesa-dev libbz2-dev \
libzip-dev libogg-dev libopus-dev libvorbis-dev

Build Instruction

git submodule update --init --recursive
mkdir build && cd build
cmake ..
make
make DownloadAsset

License

This project is licensed under the GPL+3 License - see the LICENSE file for details

Models downloaded from Morgan McGuire's Computer Graphics Archive

Misc Notes

Force NVIDIA Usage

Force the system to try to use the NVIDIA GPU. This is very useful when using a system with multiple GPUs.

__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia program arguments

Releases

No releases published

Packages

No packages published