###Requirements to run these experiments
####A nvidia card for nvidia specific extensions
- GL_NV_shader_buffer_load
- GL_NV_vertex_buffer_unified_memory
####A video card that supports these extensions
- GL_ARB_separate_shader_objects
- GL_ARB_timer_query
- GL_ARB_debug_output
- GL_ARB_draw_indirect
- GL_ARB_base_instance
- GL_ARB_shader_atomic_counters
- GL_ARB_clear_buffer_object
- GL_ARB_buffer_storage
- GL_ARB_map_buffer_range
- GL_ARB_sync
####Dependencies
- GLEW
- GLFW
- GLM
###How to build GLEW:
Grab GLEW
- git clone [email protected]:nigels-com/glew.git
- git checkout tags/glew-2.2.0 -b ogl_experiments
Why not install glew through package manager?
####Unix:
- make extensions (to generate src/glew.c GLEW)
- make
- sudo -s
- make install
- make clean
####Windows:
- use the project file in build/vc6/
###How to build GLFW:
Grab GLFW
- git clone [email protected]:glfw/glfw.git
- git checkout tags/3.3.8 -b ogl_experiments
####Unix:
- cmake .
- make
####Windows:
- Link a new project to the make file
###Experiments
####bindless_nv
Compares bindless vbo's vrs traditional vbos
####indirect
Learning experiment on how to work with indirect rendering
####depth_buffer
Comparing traditional vs logrithmic writes to the depth buffer
####round_trip
Finding the amount of time it takes to send a texture to the gpu, write to it and then read it back
####raster_pattern
Renders GPU's rasterization pattern
####bits
Messing around with bit twiddling for the paper "Single Pass GPU Voxelization" section 6.
####scene_depth
Gets the used depth of the scene in a single draw call.
####single_pass_voxel
Implementing the paper "Single-Pass GPU Solid Voxelization for Real-Time Applications".
####glsl_derivative
A test to see if dFdx(position) and dFdy(position) are orthogonal
####wire_aa
Tests wether a proj matrix needs to be transposed for dot product ops, and finds pixel sizes at different depths.
####ogl_compute
Demo project to experiment with opengl compute shaders. Renders out a 2D fluid simulation.
####buffer_streaming
App to compare different buffer streaming techniques.