Parcourir la Source

fix initial rendering

Lucas Stadler 10 ans auparavant
Parent
commit
119a765eef
2 fichiers modifiés avec 10 ajouts et 2 suppressions
  1. 2 2
      glsl/raymarching.js
  2. 8 0
      glsl/sliders.js

+ 2 - 2
glsl/raymarching.js

@ -243,8 +243,6 @@ void main() {
243 243
    gl.uniform2f(iResolution, w, h);
244 244
    render();
245 245
  };
246
  
247
  render();
248 246
249 247
  var sidebarEl = document.createElement("div");
250 248
  sidebarEl.style = `
@ -267,6 +265,8 @@ void main() {
267 265
  });
268 266
  
269 267
  addSliders(sidebarEl, sliders);
268
  
269
  render();
270 270
} catch (e) {
271 271
  window.error = e;
272 272
  var msg = document.createElement("pre");

+ 8 - 0
glsl/sliders.js

@ -76,6 +76,7 @@ function initSliders(gl, program, sliders, onChange) {
76 76
    switch (slider.type) {
77 77
      case "float":
78 78
        slider.uniform = gl.getUniformLocation(program, slider.name);
79
        gl.uniform1f(slider.uniform, slider.range[1]);
79 80
        
80 81
        slider.onChange = function(ev) {
81 82
          gl.uniform1f(slider.uniform, parseFloat(ev.target.value));
@ -91,6 +92,13 @@ function initSliders(gl, program, sliders, onChange) {
91 92
      case "vec3":
92 93
        slider.values = slider.range.map((r) => r[1]);
93 94
        slider.uniform = gl.getUniformLocation(program, slider.name);
95
        if (slider.type == "vec2") {
96
          gl.uniform2f(slider.uniform, slider.values[0], slider.values[1]);
97
        } else if (slider.type == "vec3") {
98
          gl.uniform3f(slider.uniform, slider.values[0], slider.values[1], slider.values[2]);
99
        } else {
100
          throw new Error("unknown slider type " + slider.type);
101
        }
94 102
        
95 103
        slider.onChange = function(ev, i) {
96 104
          slider.values[0] = parseFloat(ev.target.value);