Skip to content

Kikoman90/scop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SCOP

Scop is a projet related to computer graphics, and part of my formation at school 42. It is a good introduction to OpenGL and 3D graphics more generally, as it requires a solid understanding of several notions such as draw calls, openGL buffer and array objects, and vector maths. We also had to write our own "math" library, in which I implemented some useful methods to manipulate vectors, matrices, and quaternions.
As a bonus, I added multisample anti-aliasing and object picking by using renderbuffers, basic lighting/shading, and object manipulation via 3D handles (translation, rotation, scaling).

preview



install and launch

git clone https://github.com/Kikoman90/scop ~/scop
cd ~/scop && make

Launch the program with one or more parameters: the name of the .obj files you would like to open. The format of these files is wavefront obj. These files define a 3D model composed of vertices, linked together to create faces. They can also contain vertex normals and texture coordinates. Also, those files can reference one or multiple .mtl files, the latter which define material properties for shading.

Example : ⇣

./scop models/42_uv.obj

input

Description  Key(s) 
exit program  esc 
orbit camera  right-click 
pan camera  shift  +  right-click 
zoom camera  ctrl  +  right-click 
select object (hold  shift  for multi-selection)  left-click 
translation handle  W 
rotation handle  E 
scale handle  R 
activate/deactivate auto-rotate  Z 
switch handles space (world/local)  X 
switch face gradient (grayscale/RGB)  C 
smooth shader transition  space 
switch skybox  S 
switch model texture  T 

Contact & contribute

If you want to contact me, or help improve this project, send me a mail at fsidler@student.42.fr

About

introduction to OpenGL

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published