Я пытаюсь реализовать 3D-сцену с помощью WebGL и Javascript. В финальной сцене предполагается показать кубоид с меньшими кубоидами, пирамидами и сферами со всех сторон. Меньшие сферы должны вращаться вместе с большим кубоидом. Я реализовал Phong Shading, все работает нормально. Теперь я хочу изменить значения shininess
, lightPos
и lightIntensity
с помощью трех ползунков справа от моего холста, который отображает сцену. Ползунок для блеска, по-видимому, не работает, и я еще больше борюсь с двумя другими ползунками, поскольку lightPos
и lightIntensity
являются vec3
элементами, которые являются константами. Код для трех переменных выглядит так:
const vec3 lightPos = vec3(1.0,-1.0,1.0);
float shininess = 16.0;
const vec3 lightIntensity = vec3(1.0, 1.0, 1.0);
На данный момент ползунок для блеска выглядит так:
<input id="shininess" type="range" min="1" max="50"></input>
var shininessElement = document.getElementById("shininess");
shininessElement.onchange = function(){
shininess = shininessElement.value;
window.requestAnimationFrame(animate);
Я почти уверен, что сделал что-то ужасно неправильно, но исследование не привело ни к какому результату, и я не знаю, что делать дальше, поэтому буду очень признателен за вашу помощь. Если вам нужен полный код, дайте мне знать.