根據論文:Physically-Based Shading at Disney
中提到的開源項目:https://github.com/wdas/brdf
進行配置,其最終的結果爲:
其中編譯的過程還是廢了一番周折的。
1.qtcreator的安裝
我安裝的是:qt-opensource-windows-x86-5.14.0.exe
qt-opensource-windows-x86-5.14.1.exe這個的居然沒有QTZlib頭文件,無語了。
2.zlib庫還需要自己的去編譯,這裏參考:https://blog.csdn.net/wodownload2/article/details/104266901
3.clone出項目之後,結構如下:
4.做一定的修改
4.1 安裝好qtcreator之後,配置環境變量:
4.2打開qtcreator之後,打開項目中的main.pro
即可打開項目。
4.3對編譯環境進行設置:
取消勾選。
4.5對brdf.pro文件進行修改,如下:
TEMPLATE = app
CONFIG += qt5 #debug
prefix = $$PWD
isEmpty(prefix) {
prefix = $$system(pf-makevar --absolute root 2>/dev/null)
}
isEmpty(prefix) {
error("$prefix is undefined. Please pass prefix=<path> to qmake")
}
DEST = $$prefix
isEmpty(LIBDIR) {
LIBDIR = $$system(pf-makevar lib 2>/dev/null)
}
isEmpty(LIBDIR) {
LIBDIR = lib
}
TARGET = brdf
target.path = $$DEST/bin
HEADERS = *.h
SOURCES = \
Quad.cpp \
Sphere.cpp \
BRDFAnalytic.cpp \
BRDFBase.cpp \
BRDFImageSlice.cpp \
BRDFMeasuredAniso.cpp \
BRDFMeasuredMERL.cpp \
ColorVarWidget.cpp \
FloatVarWidget.cpp \
DGLFrameBuffer.cpp \
DGLShader.cpp \
IBLWidget.cpp \
IBLWindow.cpp \
ImageSliceWidget.cpp \
ImageSliceWindow.cpp \
LitSphereWindow.cpp \
main.cpp \
glerror.cpp \
MainWindow.cpp \
ViewerWindow.cpp \
ParameterGroupWidget.cpp \
ParameterWindow.cpp \
SharedContextGLWidget.cpp \
ShowingDockWidget.cpp \
PlotCartesianWindow.cpp \
PlotCartesianWidget.cpp \
PlotPolarWidget.cpp \
Plot3DWidget.cpp \
LitSphereWidget.cpp \
SimpleModel.cpp \
Paths.cpp \
ptex/PtexReader.cpp \
ptex/PtexUtils.cpp \
ptex/PtexCache.cpp \
ptex/PtexHalf.cpp
QT += widgets opengl
DEFINES += PTEX_STATIC NOMINMAX
macx {
CONFIG -= app_bundle
}
brdfs.path = $$DEST/brdf/brdfs
brdfs.files = ../brdfs/*
data.path = $$DEST/brdf/data
data.files = ../data/*
images.path = $$DEST/brdf/images
images.files = ../images/*
probes.path = $$DEST/share/brdf/probes
probes.files = ../probes/*
shaderTemplates.path = $$DEST/share/brdf/shaderTemplates
shaderTemplates.files = ../shaderTemplates/*
pkgconfig.path = $$DEST/$$LIBDIR/pkgconfig
pkgconfig.files = brdf.pc
INSTALLS = target brdfs data images probes shaderTemplates pkgconfig
win32-msvc*{
INCLUDEPATH += ZLIB_DIR
DEFINES += ZLIB_WINAPI
LIBS += E:\workspace\x64\ZlibDllDebug\zlibwapi.lib
}
win32-g++*{
LIBS += -lz
}
unix*{
LIBS += -lz
}
# Windows cross compile at disney
linux-mingw32-custom{
WINDOWS_BUILD=/jobs2/soft/users/aselle/windows-build
LIBS += -static-libgcc
}
4.6編譯好的zlib,使用其中的:E:\workspace\x64\ZlibDllDebug\zlibwapi.lib
即可。
4.7找不到zlib.h文件,需要改爲:
經過這幾步的設置,基本能夠正確運行。但是可能還會報錯,是因爲opengl es3.0以上的限制,我換了個電腦配置成功了,其原因不詳,當然這整個在選擇:
時候直接崩潰,以及加載模型:
無法正確的顯示問題,還需要進一步的排查問題。
以上基本是配置原文提供的brdf的全部的過程,坑未踩完,仍需繼續,源碼閱讀也將在後續的文章中進行剖析,敬請期待。
要選擇打開brdf文件之後,纔不會報錯: