Я много работал с webgl allready, но теперь его первый раз, используя дротик и ive, попал в странную ошибку. Я создаю текстуру по умолчанию, как это:mipmap текстура отображается неправильно
GlTexture() {
mTexture = gl.createTexture();
updateMemory(1, 1, new Uint8List.fromList([0x00, 0x00, 0xFF, 0xFF]));
}
где updateMemory составляет:
void updateMemory(int width, int height, Uint8List colors, [ bool genMipMaps = true ]) {
gl.bindTexture(TEXTURE_2D, mTexture);
gl.texImage2DTyped(TEXTURE_2D, 0, RGBA, width, height, 0, RGBA, UNSIGNED_BYTE, colors);
if(genMipMaps) {
gl.generateMipmap(TEXTURE_2D);
}
gl.bindTexture(TEXTURE_2D, null);
}
Эта текстура визуализируется прекрасно, как синий квадрат. Однако, если я изменить updateMemory вызов к чему-либо, кроме 1х1 текстуры результаты будут совершенно неправильно, позвольте мне показать вам пример:
GlTexture() {
mTexture = gl.createTexture();
updateMemory(2, 2, new Uint8List.fromList([0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x3F, 0x7F, 0xFF, 0xFF]), true);
gl.bindTexture(TEXTURE_2D, mTexture);
gl.texParameteri(TEXTURE_2D, TEXTURE_MIN_FILTER, LINEAR_MIPMAP_NEAREST);
gl.bindTexture(TEXTURE_2D, null);
}
И результат выглядит следующим образом:
В то время как структура 2х2 видна, остальное просто неверно. Если необходимо, я также могу предоставить шейдеры.
/EDIT: Когда я установить текстуру с содержанием изображения визуализации выглядит следующим образом:
Текстура сама по себе оказывается правильно, но MIP-уровень является своего рода неправильно.
Хотя я все еще не мог получить текстуру 2x2, вторая проблема действительно была вызвана чем-то внутренне неправильным с холстом. После некоторых изменений в CSS и моем коде ширина/высота, по-видимому, передаются правильно, и поэтому матрица проецирования в порядке. – Cromon