3D C/C++ tutorials - Home
3D C/C++ tutorials -> Home
Use for personal or educational purposes only. Commercial and other profit uses strictly prohibited. Exploitation of content on a website or in a publication prohibited.
To compile and run this tutorials some or all of this libraries are required: FreeImage 3.16.0, GLEW 1.11.0, GLUT 3.7.6 / GLUT for Dev-C++, GLM 0.9.5.4
Latest news
February 28, 2015, 08:05 PM

Updated tutorials:


New features in the scene editor:

  • game mode (F7)
  • walking up the stairs
  • gravity
  • jump
  • collisions detection (functional, but not completed for all cases)
  • a scene with stairs included
February 20, 2015, 08:02 PM

The normal matrix (transpose of the inverse of the upper left 3x3 submatrix of the model matrix) can not be used to transform the tangent and bitangent vectors from object space to world space, because the normal matrix doesn't preserve directions of the tangent and bitangent vectors. The tangent and bitangent vectors can be transformed from object space to world space by the upper left 3x3 submatrix of the model matrix.

Updated tutorials:


December 24, 2014, 10:23 AM

Updated tutorial:


New features:

  • loading terrain from a height map texture
  • displaying terrain map
  • faster water rendering
  • wireframe disabling
  • one 256 x 256, one 512 x 512 and one 1024 x 1024 height map textures included

Be cautious with that 1024 x 1024 height map, without octree and level of detail the performance is poor even on GTX 780 Ti - 25 / 50 FPS with / without wireframe!
December 22, 2014, 10:08 AM

Updated tutorial:


Added support for:

  • OpenGL matrices
  • blending
  • texturing and multitexturing
  • vertex and element arrays
  • vertex and element buffer objects
  • GL_ARB_texture_float, GL_ARB_texture_non_power_of_two
  • GL_EXT_framebuffer_object, GL_EXT_texture_array, GL_EXT_texture_filter_anisotropic
  • short, int, float and double arrays to byte array conversions
December 13, 2014, 10:45 AM

We tested all tutorials on the AMD Radeon HD 5750 GPU with Omega 14.12 drivers installed and we found out that the AMD's GLSL compiler doesn't support the mat2x2(vec4) constructor.

Updated tutorials:

September 14, 2014, 10:51 AM

Updated tutorials:


New features:

  • 9x9 SSAO blur filter with edge detection, so pixels on edges in final SSAO image are not blurred anymore
  • antialiasing method consisting of an edge detection algorithm and a simple blur filter based on the "GPU Gems 3 - Chapter 19. Deferred Shading in Tabula Rasa" article
August 24, 2014, 01:12 PM

All tutorials are recompiled with the latest versions of the required libraries.

We are working on a new tutorial.

We are looking for new members to our team.

If you're interested in improving your C/C++ and OpenGL programming skills, choose a tutorial, analyze it and write a documentation or just a simple explanation.

Download the 3D C/C++ tutorials HTML template, rewrite the content of the .html file and send it to our email address. Don't forget to include all needed images.
3D C/C++ tutorials index
Resources and 3D math

>> CString - String operations <<
>> GLMath - Vector and matrix operations <<
>> OpenGL perspective projection <<
OpenGL 1.5

>> Win32 OpenGL Window <<
>> MFC OpenGL Window <<
>> Cube rendering, rotating and lighting <<
>> Texturing <<
>> Vertex array <<
>> Multisample antialiasing <<
>> Vertex buffer object (VBO) <<
OpenGL 2.1

>> OpenGL, Win32, GLEW, FreeImage, GLM <<
>> Loading GLSL shaders <<
>> Camera <<
>> GLSL 1.2 vertex shader and fragment shader <<
>> OpenGL 2.1 tutorials Win32 framework <<
>> God rays <<
>> GLSL cube mapping <<
>> GLSL normal mapping <<
>> GLSL shadow mapping <<
>> Fast realistic soft penumbra shadows <<
>> Sun rays, lens flare, halo <<
>> Atmospheric light scattering <<
>> Planet Earth from space <<
>> Terrain <<
>> Interactive water surface, light reflection and refraction, caustic <<
>> Water waves GPU algorithm <<
>> Loading, picking and moving objects <<
>> GLSL shadow cube mapping <<
>> High dynamic range, bloom <<
>> Screen space ambient occlusion <<
>> Screen space ambient occlusion plus <<
OpenGL 2.1 - Deferred rendering

>> Deferred rendering - Point lights <<
>> Deferred rendering - Antialiasing <<
>> Deferred rendering - Screen space ambient occlusion <<
>> Deferred rendering - Shadow cube mapping <<
OpenGL 3.3

>> OpenGL 3.3 tutorials Win32 framework <<
>> Shader, vertex array object (VAO) <<
>> Skybox, GLSL cube mapping <<
>> Flying camera, collision detection <<
OpenGL ES 2.0

>> OpenGL ES 2.0 on Android <<
Projects

>> OpenGL 2.1 game engine <<
>> 3D game editor <<
>> Java OpenGL Native Interface <<
Software rendering

>> Software renderer - Multithreading, SSE2 <<
>> Software shadow mapping - Multithreading, SSE2 <<
Ray tracing

>> CPU ray tracer 00 - Color buffer, rays <<
>> CPU ray tracer 01 - Ray triangle intersection <<
>> CPU ray tracer 02 - Uniform grid <<

>> CPU ray tracer <<
© 2010 - 2015 Bc. Michal Belanec, michalbelanec@centrum.sk
Last updated at February 28, 2015
OpenGL® is a registered trademark of Silicon Graphics Inc.