La función ambientMaterial() en p5.js se usa para crear un material ambiental para una geometría con el color dado. El material ambiental se utiliza para definir el color que refleja el objeto bajo cualquier luz. Si el material ambiental está configurado para reflejar solo el rojo y las luces reflejan solo el azul, entonces el objeto no reflejará ninguna luz.
Sintaxis:
ambientMaterial( v1, [v2], [v3] )
O
ambientMaterial( color )
Parámetros: esta función acepta cuatro parámetros, como se mencionó anteriormente y se describe a continuación:
- v1: Es un número que determina el valor de gris, o el valor de rojo o matiz relativo a la gama de colores actual.
- v2: Es un número que determina el valor de verde o de saturación relativo a la gama de colores actual. Es un parámetro opcional.
- v3: Es un número que determina el valor de azul o brillo relativo a la gama de colores actual. Es un parámetro opcional.
- color: Es un p5.Color o string de color que define el color del material ambiental.
Los siguientes ejemplos ilustran la función ambientMaterial() en p5.js:
Ejemplo 1:
let newFont; let currentLightColor = "red"; let currentAmbientColor = "red"; function preload() { newFont = loadFont('fonts/Montserrat.otf'); } function setup() { createCanvas(600, 300, WEBGL); textFont(newFont, 16); // Create a selector for selecting // the ambient material color materialColorSel = createSelect(); materialColorSel.position(30, 70); materialColorSel.option('red'); materialColorSel.option('green'); materialColorSel.option('blue'); materialColorSel.changed(() => { currentLightColor = materialColorSel.value(); }); // Create a selector for selecting // the directional light color lightColorSel = createSelect(); lightColorSel.position(30, 120); lightColorSel.option('red'); lightColorSel.option('green'); lightColorSel.option('blue'); lightColorSel.changed(() => { currentAmbientColor = lightColorSel.value(); }); } function draw() { background('white'); fill('black'); text("Select an option below to set the light " + "and ambient material color", -285, -125); text("Select directional light color", -285, -100); text("Select ambient material color", -285, -50); shininess(10); noStroke(); // Set the ambient material to the selected color ambientMaterial(currentAmbientColor); // Set the directional to the selected color directionalLight(color(currentLightColor), height / 2, width / 2, -250); // Draw the sphere translate(100, 0, 0); sphere(100); translate(-100, 0, 0); }
Producción:
Ejemplo 2:
let newFont; let currentLightColor = "yellow"; let hasRed = false; let hasGreen = false; let hasBlue = false; function preload() { newFont = loadFont('fonts/Montserrat.otf'); } function setup() { createCanvas(600, 300, WEBGL); textFont(newFont, 16); // Create 3 checkboxes for mixing 3 colors redCheckbox = createCheckbox('Red', false); redCheckbox.position(30, 70); redCheckbox.changed(() => hasRed = !hasRed); greenCheckbox = createCheckbox('Green', false); greenCheckbox.position(90, 70); greenCheckbox.changed(() => hasGreen = !hasGreen); blueCheckbox = createCheckbox('Blue', false); blueCheckbox.position(170, 70); blueCheckbox.changed(() => hasBlue = !hasBlue); // Create a selector for selecting // the directional light color lightColorSel = createSelect(); lightColorSel.position(30, 120); lightColorSel.option('yellow'); lightColorSel.option('magenta'); lightColorSel.option('cyan'); lightColorSel.changed(() => { currentLightColor = lightColorSel.value(); }); } function draw() { background('white'); fill('black'); text("Select an option below to set the light " + "and ambient material color", -285, -125); text("Select directional light color", -285, -100); text("Select ambient material color", -285, -50); shininess(10); noStroke(); // Define the color based on the checkboxes let currentAmbientColor = color(hasRed ? 255 : 0, hasGreen ? 255 : 0, hasBlue ? 255 : 0); // Set the ambient material to the defined color ambientMaterial(currentAmbientColor); // Set the directional to the selected color directionalLight(color(currentLightColor), height / 2, width / 2, -250); // Draw the sphere translate(100, 0, 0); sphere(100); translate(-100, 0, 0); }
Producción:
Editor en línea: https://editor.p5js.org/
Configuración del entorno: https://www.geeksforgeeks.org/p5-js-soundfile-object-installation-and-methods/
Referencia: https://p5js.org/reference/#/p5/ambientMaterial
Publicación traducida automáticamente
Artículo escrito por sayantanm19 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA