Я хочу сделать большую сцену (смоделированный город) с помощью WebGL, и я думаю, что occlusion culling - хороший способ оптимизировать производительность.WebGL 2.0 Occlusion Query
И я знаю, что WebGL 2.0 имеет новую функцию «Объекты запроса», чтобы получить информацию о окклюзии. Но каждый раз, когда я использую gl.getQueryParameter (запрос, gl.QUERY_RESULT), я получил тот же результат .
И я написал демо здесь, чтобы объяснить эту проблему:
var query = gl.createQuery();
gl.beginQuery(gl.ANY_SAMPLES_PASSED, query);
gl.drawArrays(gl.TRIANGLES,0,n);
gl.endQuery(gl.ANY_SAMPLES_PASSED);
var tick = function(){
if(!gl.getQueryParameter(query,gl.QUERY_RESULT_AVAILABLE)){
requestAnimationFrame(tick);
return;
}
var result = gl.getQueryParameter(query,gl.QUERY_RESULT);
console.log(Number(result));
gl.deleteQuery(query);
};
tick();
и вот моя информация, что вершина треугольника sceond затемняется первого треугольника.
var vertexData = new Float32Array([
0.0,0.5,0.0, //first triangle
-0.5,-0.5,0.0,
0.5,-0.5,0.0,
0.0,0.5,-0.5, //second triangle
-0.5,-0.5,-0.5,
0.5,-0.5,-0.5
]);
и результат всегда 1.
Что результат '1' означает?
Кроме того, как я мог сделать отключение окклюзии с помощью WebGL 2.0? Есть ли полезные образцы?
Таким образом, у вас есть * one * draw draw drawing * two * triangles, где один покрыт другим, и попросите 'ANY_SAMPLES_PASSED', который дает вам' '' '' '' '' '' '' (https: //www.khronos .org/opengles/sdk/docs/man3/html/glBeginQuery.xhtml), как и все ваши первые образцы треугольников, которые легко удовлетворяют «любой выборке». –