Отрисовка экземпляра Webgl2 с использованием ошибки делителя TWGL.js
Я использую библиотеку Twgl.js для использования webgl2
У меня был массив, как показано ниже, и я делал из него буферы с createBufferInfoFromArrays
и использовать drawObjectList
с VAO, чтобы нарисовать его, но после того, как я изменил свой массив для использования некоторых значений без знака байтов вместо float, я попал в беду, какой хром делает эту ошибку
GL ERROR :GL_INVALID_OPERATION : glDrawArrays: attempt to draw with all attributes having non-zero divisors
Массивы перед изменением:
EdgeArrays = {
pos:{
numComponents: 2,
data: [-1,.01, -1,-.01 , 1,.01 , 1,-.01]
},
center: {
numComponents: 2,
data: new Float32Array( Lines.CenterBuffer ),
divisor: 1,
},
size: {
numComponents: 2,
data: new Float32Array( Lines.SizeBuffer ),
divisor: 1,
},
rotate: {
numComponents: 4,
data: new Float32Array( Lines.RotateBuffer ),
divisor: 1,
},
appear: {
numComponents: 1,
data: new Float32Array( Lines.AppearBuffer ),
divisor: 1,
},
Active: {
numComponents: 1,
data: new Float32Array( Lines.ActiveBuffer ),
divisor: 1,
},
};
массивы после изменения
let Arrays = {
Pos:{
numComponents: 2,
data: [-1,.01, -1,-.01 , 1,.01 , 1,-.01]
},
Center: {
numComponents: 2,
data: new Float32Array( Buffers.Center ),
divisor: 1,
},
Size: {
numComponents: 2,
data: new Float32Array( Buffers.Size ),
divisor: 1,
},
Rotate: {
numComponents: 4,
data: new Float32Array( Buffers.Rotate ),
divisor: 1,
},
Appear: {
numComponents: 1,
data: new Uint8Array( Buffers.Appear ),
type: gl.UNSIGNED_BYTE ,
normalize: false,
divisor: 1,
},
Active: {
numComponents: 1,
data: new Uint8Array( Buffers.Active ),
type: gl.UNSIGNED_BYTE ,
normalize: false,
divisor: 1,
},
InstInfo:{
numComponents: 2,
data: new Uint8Array( Buffers.InstInfo ),
type: gl.UNSIGNED_BYTE ,
normalize: false,
divisor: 1,
}
};
ошибка говорит о том, что нет буфера без делителя, но у первого (pos-буфера) нет делителя! в чем я не прав?
заранее спасибо