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.
- 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 ArchitectureGraphics Simulator
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)
3D Scan - Real Sense
- 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