cari

Rumah  >  Soal Jawab  >  teks badan

WebGL tidak menyokong lukisan indeks menggunakan indeks 255

<p>Ini ialah program ujian WebGL yang paling mudah, yang mencipta penimbal indeks dengan hanya satu nilai uint8 255. Ia sepatutnya melukis segi empat sama merah bersaiz 64px, tetapi tidak (nilai indeks tidak penting untuk lukisan). </p> <p>Entah bagaimana WebGL mengabaikan elemen pada indeks 255 walaupun ia berada dalam julat bait yang tidak ditandatangani. Menggunakan 254 atau nilai lain, segi empat sama merah muncul seperti yang dijangkakan. </p> <p>Adakah ini pepijat dalam WebGL atau tingkah laku yang dijangkakan? Saya tidak dapat mencari sebarang maklumat yang berkaitan. </p> <pre class="brush:php;toolbar:false;"><canvas width="800" height="600"></canvas> <script type="modul"> biarkan kanvas = document.querySelector("kanvas"); biarkan gl = canvas.getContext("webgl2", {antialias: false}); biarkan vert = gl.createShader(gl.VERTEX_SHADER); biarkan frag = gl.createShader(gl.FRAGMENT_SHADER); biarkan prog = gl.createProgram(); biarkan index_buf = gl.createBuffer(); gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, index_buf); gl.bufferData( gl.ELEMENT_ARRAY_BUFFER, Uint8Array([255]), gl.STATIC_DRAW ); gl.shaderSource(vert, `#versi 300 es batal utama() { gl_Position = vec4(pos, 1); gl_PointSize = 64.0; } `); gl.shaderSource(frag, `#versi 300 es terapung tinggi ketepatan; keluar warna vec4; batal utama() { warna = vec4(1,0,0,1); } `); gl.compileShader(vert); gl.compileShader(frag); gl.attachShader(prog, vert); gl.attachShader(prog, frag); gl.linkProgram(prog); gl.clearColor(0, 0, 0, 1); gl.clear(gl.COLOR_BUFFER_BIT); gl.useProgram(prog); gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, index_buf); gl.drawElements(gl.POINTS, 1, gl.UNSIGNED_BYTE, 0); </script></pre> <p><br /></p>
P粉265724930P粉265724930470 hari yang lalu463

membalas semua(1)saya akan balas

  • P粉476883986

    P粉4768839862023-08-18 00:14:57

    Lihat Spesifikasi WebGL 2.0 - PRIMITIVE_RESTART_FIXED_INDEX sentiasa didayakan :

    Jadi jika jenis indeks ialah UNSIGNED_BYTE, indeks 255 ialah indeks mula semula mentah dan tidak boleh digunakan untuk mengindeks bucu.

    balas
    0
  • Batalbalas