Graphics Simulator


C++ / OpenGL / RealSense
Graphics Simulator – With the subject of 'Graphics Simulator', I have visualized the Pipeline, Lighting, and Texture Mapping which are the core of OpenGL, and implemented them to be used directly by the user. Using C++, an object-oriented language, each rendering process can be used as an independent library. This step-by-step process can be gradually expected to expand the range of practical use.
Project goals
  • Implement a program that can directly experience the step-by-step pipeline and lighting effects by applying a variety of textures and shaders.
  • Apply the effects using Vertex Shader, Tessellation Shader, Geometry Shader and Fragment Shader of the graphics pipeline.
  • Apply normal vector and explosion effect.
  • Represent the surface of the Solar System planet using Mesh and Texture.
  • Perform vector and matrix operation using the GLM library.
  • Adjust the camera viewpoint through matrix conversion.
  • Display an object by reading the *.obj files as standard 3D format.
  • Common functions are classified and objectified.
System Architecture System Architecture
Graphics Simulator
Light + Explode + Normal + Polygon + Tessellation
Normal + Tessellation + Explode + Shading

▶ View more Videos

Graphics Simulator - Pipeline
A. Vertex Shader (VS)
  • 2D texture coordinates, normal vector, and calculation of vertex position
  • Vertex coordinate system transformation (also in tessellation and geometry)
B. Tessellation Control Shader (TCS)
  • Triangle tessellation level (inner/outer)
C. Tessellation Evaluation Shader (TES)
  • Flat Shading (One side reflects the same light)
  • Smooth Shading (Reflect only the portion receiving light)
  • PN Triangles Tessellation (The normal is recalculated to disperse in various directions by dividing each surface into nine sides.)
D. Geometry Shader (GS)
  • Explode effect
  • Normal view (plus explode effect)
E. Fragment Shader (FS)
  • Phong Shading (Ambient + Diffuse + Specular)
  • Multi Shading (Applying several lighting effects)
  • Rim Shading (Backlight, Light from the back to the outline)
▼ Click Images
Phong Light
Multi Light
Rim Light
Object
Object Explode
Object Explode
Normal View
Normal View + Explode
Normal View + Explode
Normal + Tessellation 1
Normal + Tessellation 2
Normal + Tessellation 3
Polygon
Tessellation Inner 1
Tessellation Inner 2
Polygon
Tessellation Outer 1
Tessellation Outer 2
Smooth Shading
Flat Shading
Flat + PN Triangles Tessellation
×
Texture Mapping
Phong Shading
Ambient + Diffuse + Specular
Multi Shading
Direction Light and the four lights (RGB, White) are applied
Rim Shading
Mixing with Phong-Shading and Multi-Shading
Universe Scene
This is a scene that is describing the solar system by putting the texture in accordance with the characteristics of each planet and typing the revolution and rotation cycle
This example shows additional light source effect by adjusting three lights in light UI.
Before applying additional light
After applying additional light
Venus
Earth
Jupiter
3D Scan - Real Sense
3D Scan (Real Sense) -> Blender -> Object Load
Development-Environment
  • OS : Windows 10 (64bit)
  • IDE : Visual Studio 2015
  • Language : C++
  • Library : OpenGL 4.5 / GLFW 3.2.1 / GLEW 2.0.0 / GLM 0.9.8.4
  • 3D Camera : Intel RealSense SR300
YoungEun Lee, MinSeok Kang, HanSang Lee, HyunWoo Choi