$25
ICL/ITRI
Goal
◆Implement 3 types of light sources:
◆ Directional light
◆ Position light (Point light)
◆ Spot light
◆Interact and modify the light source in runtime.
◆Finish the code in main.cpp, vertex shader and fragment shader
For Mac
◆ Depend on your device
◆ -10 for those upload “x64” or “Normal Models”
For Windows Make Sure exe canrun
Lighting Attribute Reference
◆ Directional light:
◆Position: (1, 1,1)
◆Direction: always pointing at (0,0,0)
◆ Position(point) light
◆Position: (0, 2,1)
◆ Spot light
◆Position: (0, 0, 2)
◆Direction: (0, 0, -1)
◆Exponent: 50
◆Cutoff: 30 degree
Lighting Attribute Reference
◆ Diffuse intensity: (1, 1, 1)
◆ Ambient intensity: (0.15, 0.15, 0.15) ◆ Shininess: 64 ◆ Attenuation:
◆Point light:
◆ Constant: 0.01
◆ Linear: 0.8 ◆ Quadratic: 0.1 ◆Spot light:
◆ Constant: 0.05
◆ Linear: 0.3
◆ Quadratic: 0.6
◆ Please follow the spec bellow, or you would notget the score of item.
◆ You must make sure your key mapping is exactly same to ours.
◆ Z/X: switch the model
◆ T: switch to translation mode
◆ S: switch to scale mode
◆ R: switch to rotation mode
◆ L: switch between directional/point/spot light
◆ K: switch to light editing mode
◆ J: switch to shininess editing mode
◆If you switch mode by T, S, R
◆Apply change on Z axis when scroll the wheel
◆Apply change on X axis when mouse drag horizontally
◆Apply change on Y axis when mouse drag vertically
◆Only rotation should apply X axis when mouse drag vertically, and Y axis when mouse drag horizontally
◆If you switch mode by K
◆Apply change on X axis of light’s position when mouse drag horizontally
◆Apply change on Y axis of light’s position when mouse drag vertically
◆Apply change on diffuse intensity for directional or point light, cutoff angle for spot light when scroll the wheel
◆If you switch mode by J
◆Apply change on shininess when scroll the wheel
◆The shininess is applied to all models