mirror of
https://github.com/processing/processing4.git
synced 2026-02-02 21:29:17 +01:00
49 lines
1.0 KiB
Plaintext
49 lines
1.0 KiB
Plaintext
/**
|
|
* LightsGL.
|
|
* Modified from an example by Simon Greenwold.
|
|
*
|
|
* Display a box with three different kinds of lights.
|
|
*/
|
|
|
|
|
|
import processing.opengl.*;
|
|
|
|
void setup()
|
|
{
|
|
size(1024, 768, OPENGL);
|
|
noStroke();
|
|
}
|
|
|
|
void draw()
|
|
{
|
|
defineLights();
|
|
background(0);
|
|
|
|
for (int x = 0; x <= width; x += 100) {
|
|
for (int y = 0; y <= height; y += 100) {
|
|
pushMatrix();
|
|
translate(x, y);
|
|
rotateY(map(mouseX, 0, width, 0, PI));
|
|
rotateX(map(mouseY, 0, height, 0, PI));
|
|
box(90);
|
|
popMatrix();
|
|
}
|
|
}
|
|
}
|
|
|
|
void defineLights() {
|
|
// Orange point light on the right
|
|
pointLight(150, 100, 0, // Color
|
|
200, -150, 0); // Position
|
|
|
|
// Blue directional light from the left
|
|
directionalLight(0, 102, 255, // Color
|
|
1, 0, 0); // The x-, y-, z-axis direction
|
|
|
|
// Yellow spotlight from the front
|
|
spotLight(255, 255, 109, // Color
|
|
0, 40, 200, // Position
|
|
0, -0.5, -0.5, // Direction
|
|
PI / 2, 2); // Angle, concentration
|
|
}
|