diff --git a/code/nel/src/3d/driver/opengl3/driver_opengl_uniform_buffer.cpp b/code/nel/src/3d/driver/opengl3/driver_opengl_uniform_buffer.cpp
new file mode 100644
index 000000000..dc6a28b9b
--- /dev/null
+++ b/code/nel/src/3d/driver/opengl3/driver_opengl_uniform_buffer.cpp
@@ -0,0 +1,38 @@
+// NeL - MMORPG Framework
+// Copyright (C) 2014 by authors
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+#include "driver_opengl.h"
+#include "driver_opengl_uniform_buffer.h"
+
+#include
+
+namespace NL3D {
+namespace NLDRIVERGL3 {
+
+const char *GLSLHeaderUniformBuffer =
+ "#define NL_BUILTIN_CAMERA_BIND " NL_MACRO_TO_STR(NL_BUILTIN_CAMERA_BIND) "\n"
+ "#define NL_BUILTIN_MODEL_BIND " NL_MACRO_TO_STR(NL_BUILTIN_MODEL_BIND) "\n"
+ "#define NL_BUILTIN_MATERIAL_BIND " NL_MACRO_TO_STR(NL_BUILTIN_MATERIAL_BIND) "\n"
+ "#define NL_USER_ENV_BIND " NL_MACRO_TO_STR(NL_USER_ENV_BIND) "\n"
+ "#define NL_USER_VERTEX_PROGRAM_BIND " NL_MACRO_TO_STR(NL_USER_VERTEX_PROGRAM_BIND) "\n"
+ "#define NL_USER_GEOMETRY_PROGRAM_BIND " NL_MACRO_TO_STR(NL_USER_GEOMETRY_PROGRAM_BIND) "\n"
+ "#define NL_USER_PIXEL_PROGRAM_BIND " NL_MACRO_TO_STR(NL_USER_PIXEL_PROGRAM_BIND) "\n"
+ "#define NL_USER_MATERIAL_BIND " NL_MACRO_TO_STR(NL_USER_MATERIAL_BIND) "\n";
+
+} // NLDRIVERGL3
+} // NL3D
+
+/* end of file */
diff --git a/code/nel/src/3d/driver/opengl3/driver_opengl_uniform_buffer.h b/code/nel/src/3d/driver/opengl3/driver_opengl_uniform_buffer.h
new file mode 100644
index 000000000..e7f3e25eb
--- /dev/null
+++ b/code/nel/src/3d/driver/opengl3/driver_opengl_uniform_buffer.h
@@ -0,0 +1,43 @@
+// NeL - MMORPG Framework
+// Copyright (C) 2014 by authors
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+#ifndef NL_DRIVER_OPENGL_UNIFORM_BUFFER_H
+#define NL_DRIVER_OPENGL_UNIFORM_BUFFER_H
+
+#include "nel/misc/types_nl.h"
+
+namespace NL3D {
+namespace NLDRIVERGL3 {
+
+// NOTE: It is completely safe to reorder these indices.
+// Always use the defines.
+#define NL_BUILTIN_CAMERA_BIND 0 // Builtin uniform buffer bound by driver, set by camera transformation
+#define NL_BUILTIN_MODEL_BIND 1 // Builtin uniform buffer bound by driver, set by model transformation
+#define NL_BUILTIN_MATERIAL_BIND 2 // Builtin uniform buffer bound by material
+#define NL_USER_ENV_BIND 3 // User-specified uniform buffer bound by user
+#define NL_USER_VERTEX_PROGRAM_BIND 4 // User-specified uniform buffer bound by vertex program
+#define NL_USER_GEOMETRY_PROGRAM_BIND 5 // User-specified uniform buffer bound by geometry program
+#define NL_USER_PIXEL_PROGRAM_BIND 6 // User-specified uniform buffer bound by pixel program
+#define NL_USER_MATERIAL_BIND 7 // User-specified uniform buffer bound by material
+
+extern const char *GLSLHeaderUniformBuffer;
+
+} // NLDRIVERGL3
+} // NL3D
+
+#endif // NL_DRIVER_OPENGL_UNIFORM_BUFFER_H
+
+/* end of file */