Compiling the WDAS BRDF Explorer

After quite a struggle, I managed to compile the Walt Disney Animation Studios BRDF Explorer (released during SIGGRAPH) myself. Only to find out that a binary has been available for 2 days.

I’ll post some quick info on it anyway, for those interested in compiling (future versions) themselves. Thanks go to Mark Lee, Stephen Hill and Yuriy O’Donnell, kind CG twitterfolk who have tweeted hints and tips during their compile journey.

A GLEW <-> QtOpenGL conflict held me from compiling it on Linux, although people have been reporting that it can be fixed by including either <QtOpenGL> or glew.h (but not both) in the source files can remedy things. It’s a known bug in the latest QT version.

On Windows 7, 64-bit, and using Visual Studio 2010, I installed the following:

  • The latest Nokia QT SDK: http://qt-project.org/
    The SDK is version 1.2, but the important stuff are the QT Libraries, which are at version 4.8.1 at the moment. During installation, pay attention to which default options are checked: you can do without the QT creator IDE, the Symbian toolkit, … As long as you got C:/QtSDK/Desktop/Qt/4.8.1, you’re set to go. Make sure to add C:/QtSDK/Desktop/Qt/4.8.1/msvc2010/bin to your PATH as well, so you can run qmake – I found an excellent tool to manage Windows Environment Variables in Rapid EE.
  • The OpenGL Extension Wrangler Library (GLEW) : http://glew.sourceforge.net/
    The Windows 32 binaries up for version 1.9.0 gave me linking errors, so I suggest downloading the source and compiling them yourself. You can find a Visual Studio project file in glew/build/vc10.  Put the glew32.dll in Windows/SysWoW64. If that strikes you as odd, and you planned on putting it in System32, go read this.
  • The OpenGL Utility Toolkit (GLUT): http://www.opengl.org/resources/libraries/glut/
    Mind you: not freeglut. I thought these were pretty interchangeable by now, and I’m used to freeglut, but appearently they’re not. Use the 3.7.6 archive from Nate Robins’ OpenGL page. I like to keep my libraries in a seperate folder on my drive (c:/libs), so I had to create a GL folder inside the GLUT folder and move the header file in it. Again, glut32.dll goes in Windows/SysWoW64.
  • ZLib compression library (ZLIB): http://www.winimage.com/zLibDll/index.html
    Straightforward downloading of the 1.2.5 source.
The following Github repository contains the wdas-brdf code and a bunch of fixes for Windows32 compiling with VS2010: https://github.com/kayru/brdf – I suggest downloading the code from there.
As per instructions, navigate to the source folder, and run:
qmake -r -tp vc prefix=foo

to generate the Visual Studio Solution file. Open it, then edit the project properties so the compiler can find all headers to include and all libraries to link. The QT Libraries should be found fine by qmake, but you probably want to double check the GLEW/GLUT/zlib paths. I also had to change the referred GLEW library from GLEW.lib to glew32.lib, the one I compiled myself. The library was also listed twice.
My final dependency line reads like this:

glu32.lib;opengl32.lib;gdi32.lib;user32.lib;c:\QtSDK\Desktop\Qt\4.8.1\msvc2010\lib\qtmaind.lib;glew32.lib;c:\QtSDK\Desktop\Qt\4.8.1\msvc2010\lib\QtOpenGLd4.lib;c:\QtSDK\Desktop\Qt\4.8.1\msvc2010\lib\QtGuid4.lib;c:\QtSDK\Desktop\Qt\4.8.1\msvc2010\lib\QtCored4.lib;%(AdditionalDependencies)

If the application compiles, but crashes on QTVector/other QT-related errors, it’s because your system cannot find the right QT libraries. You can remedy this by copying over QtCore4.dll, QtGui4.dll and QtGuid4.dll from C:/QtSDK/Desktop/Qt/4.8.1/msvc2010/bin to your executable directory.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>