WebGL – Converting 3D models to JSON formatted files

The JSON format is an easy and simple way to get 3D models uploaded into a WebGL application. Lighthouse3D provides a tool (source code and visual studio project available) that uses Assim to read standard 3D model files (OBJ, Collada, 3ds, among many others) and produces a JSON formatted file containing the vertex information (positions, … Read more

Notepad++ GLSL 4.3 Syntax Highlight

Notepad++ is a great text editor and I keep using over and over. I found some GLSL syntax highlight UDL files in the site but they were not up to date and most importantly they we’re not prepared to work with dark themes. So I made two UDLs for GLSL 4.3. One for the default … Read more

Multisampling – Hacking FreeGLUT’s default sample count

Both FreeGLUT and GLUT allow us to define an OpenGL context with multisampling. However the number of samples is fixed (4) and I’ve not found a way to change it using the API.

In here we’re going to see how to hack FreeGLUT so that we can change the default number of samples. This can be achieved either by changing the default value, or by adding a new function to set this value.

Note: This hack should be used only for testing purposes, not for redistribution, as FreeGLUT has a large base of users which already have the official version installed.

Read more

Working with Core OpenGL in WX Wigets

I’ve been working for some time with wxWidgets. The only thing I’ve missed, regarding OpenGL, is the ability to define my own OpenGL context, in particular Core profile and Debug contexts.

To be able to set a context we, or the toolkit we’re using, must use the wglCreateContextAttribsARB function, as defined in the WGL_ARB_create_context extension. As it happens, wxWidgets uses wglCreateContext, hence no OpenGL context can be explicitly defined using the provided source code for the current release (2.9.4).

As OpenGL context setting is not yet in the roadmap for future releases of wxWidgets, nor is it in its Todo List, I’m sharing a solution for this issue.

The solution is for the Windows platform, but other platforms should be as easy to change as well.

Note: I make no claim regarding the quality of the solution, it worked for me, and that’s all I claim. If anyone knows of a better way of doing this comments are most welcome, as they may prove useful for other readers (and me as well 🙂 ).

Read more

Setting up Dev C++ for OpenGL

Bloodshed Dev-C++ is a full-featured Integrated Development Environment (IDE) for the C/C++ programming language. It uses Mingw port of GCC (GNU Compiler Collection) as it’s compiler. Dev-C++ can also be used in combination with Cygwin or any other GCC based compiler. Here is a short tutorial that was pointed to me to setup Dev C++ … Read more

Shader Library is the latest addition to VS*L

Shaders are the core of the rendering process. OpenGL core profile requires us to provide our own shaders, no more fixed function. Using shaders means more flexibility, but it also implies more work. This is where this lib steps in. VSShaderLib was designed to make our life easier. It allows to create programs, load shaders … Read more