scg3
0.6
|
Version 0.6
Developed 2006-2019
(previous names: vascg, vascg2, vascg3)
Volker Ahlers
Hochschule Hannover
University of Applied Sciences and Arts
Dept. of Computer Science
Hannover, Germany
volke r.ah lers@ hs-h annov er.d e
Copyright 2014-2019 Volker Ahlers
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
This scene graph library is based on OpenGL 3.2/GLSL 1.5 Core Profile and C++11. It is primarily intended for educational use in the lectures Computer Graphics and Interaction (MIN-CGI, M.Sc.) and Computergrafik 1 (BIN-CG1, B.Sc.) as well as the accompanying exercises at University of Applied Sciences and Arts Hannover.
Cf. lecture notes MIN-CGI, chapter 4 (Scene Graphs) or BIN-CG1, chapter 6 (Szenengraphen).
The central classes are scg::Viewer, scg::Renderer, scg::Traverser, scg::Node, and scg::Core as well as its sub-classes. The rendering is controlled by Viewer::startMainLoop() and performed by Renderer::render(), Node::render(), Core::render() as well as the render() methods of the appropriate sub-classes.
The Names of vertex attributes and uniform variables are defined in the class OGLConstants (file ) and in the GLSL structs Light and Material (file shaders/blinn_phong_lighting.glsl ). They can also be found as in attributes and uniform variables in the supplied shaders (folder shaders).
Models, shaders, and textures are provided for test applications. Real applications should use their own folders independent of the scg3 source directory.
Prerequisites: OpenGL 3.2 (or higher), GLFW 3.2.0 (or higher) C++ Compiler: GCC 4.6 (or higher), Clang 3.1 (or higher), Visual C++ 11.0 (Visual Studio 2012, or higher)
Build of library scg3: Project files for Eclipse (Linux, MacOS and Windows/MinGW), Visual Studio 2012 (Windows), and CMake files (Linux) are provided.
Build of application under Linux:
g++ -g -c -std=c++11 -I../scg3 my_prog.cpp g++ -L../scg3/DebugLinux -o my_prog my_prog.o -lscg3 -lglfw3 -lGL -lX11 -lXxf86vm -lXrandr -lpthread -lXi -lrt -ldl -lXinerama -lXcursor
Build of application under macOS:
g++ -g -c -std=c++11 -I../scg3 my_prog.cpp g++ -L../scg3/DebugMacOS -L/usr/local/lib -o my_prog my_prog.o -lscg3 -lglfw -framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo
Build of application under Windows/MinGW:
g++ -g -c -std=c++11 -I../scg3 my_prog.cpp g++ -L../scg3/DebugWindows -o my_prog.exe my_prog.o -lscg3 -lglfw3 -lopengl32 -lgdi32
Cf. lecture notes MIN-CGI, chapter 4 (Scene Graphs) or BIN-CG1, chapter 6 (Szenengraphen).
See also the more advanced example scg3_table_scene_example.cpp (folder doc) and the supplied shaders (folder shaders).
This scene graph implementation utilizes ideas and contributions of Prof. Dr. Henrik Tramberend, Prof. Dr. Frauke Sprengel, Jan Gericke, Bastian Hellmann, Benedikt Köhler, Alexander Schulz, and Marcus Wichelmann.
It is further influenced by the open-source scene graph libraries OpenSceneGraph and OpenSG.
http://www.openscenegraph.org/
The open-source libraries GLEW 2.1.0, GLFW 3.2.0, GLM 0.9.9.3, and stb_image 2.21 are used. GLEW, GLM, and stb_image are included as source code in folder extern. GLFW 3.2.0 (or newer) has to be installed by the user (cf. http://www.glfw.org/).
https://github.com/nothings/stb
Version 0.6 (March 2019)
Version 0.5 (March 2014)
Version 0.4 (January 2014)
Version 0.3 (October 2013):
Version 0.2 (February 2013):
Version 0.1 (October 2012):
Version 0.0 (March 2012):