www.boolean.name

www.boolean.name (http://forum.boolean.name/index.php)
-   OpenGL (http://forum.boolean.name/forumdisplay.php?f=63)
-   -   Не рисуются полигоны (WebGL) (http://forum.boolean.name/showthread.php?t=17129)

ІГРОГРАЙКО 03.08.2012 22:11

Не рисуются полигоны (WebGL)
 
Привет.

Мне нужно построить полигональною сетку такого типа:
Вложение 17270

То есть орбитальная камера вращается кругом модели. Полигоны перерисовуются каждый раз когда камера меняет определенный диапазон кута поворота:
Код:

//if Front
gl.drawElements(gl.TRIANGLES, n, gl.UNSIGNED_SHORT, 0);
//if Top
gl.drawElements(gl.TRIANGLES, n, gl.UNSIGNED_SHORT, n);
//if Right
gl.drawElements(gl.TRIANGLES, n, gl.UNSIGNED_SHORT, n*2);
//if Left
gl.drawElements(gl.TRIANGLES, n, gl.UNSIGNED_SHORT, n*3);
//if Bottom
gl.drawElements(gl.TRIANGLES, n, gl.UNSIGNED_SHORT, n*4);
//if Back
gl.drawElements(gl.TRIANGLES, n, gl.UNSIGNED_SHORT, n*5);

Я сгенерировал массив вершин построения для фронтальных, профильных и горизонтальных плоскостей, ну и соответственно передал этот массив в буфер вершин.
Потом я хотел построить полигоны с помощью индексов:
  1. фронтальные
  2. верхние
  3. правые
  4. левые (инверсия правых)
  5. нижние (инверсия верхних)
  6. задние (инверсия фронтальных)
Но когда я прорисовал их все:
Код:

gl.drawElements(gl.TRIANGLES, n * 6, gl.UNSIGNED_SHORT, 0);
Я не увидел:
  • левые
  • нижние
  • задние
полигоны.
Тест глубины включен:
Код:

gl.enable(gl.DEPTH_TEST);
Пробовал рендерить инвертированный массив индексов - ничего не рисуется. Разве индексы не для того чтобы указать порядок построения полигонов?
Помогите мне пожалуйста, я не знаю в чем тут дело.:dontknow:

moka 03.08.2012 22:38

Ответ: Не рисуются полигоны (WebGL)
 
Лучше вот, держи: http://www.khronos.org/webgl/wiki/Tutorial
Начни с начала, нежели переделывать что имеешь. Пошёл совсем не тем путём..

ІГРОГРАЙКО 04.08.2012 23:30

Ответ: Не рисуются полигоны (WebGL)
 
Вложений: 1
Спасибо... Я все таки нашел в своем коде ошибку:
слишком большое число итераций в цикле что генерировал индексы. оригинальный массив индексов - отображает полигоны потому что для вывода указывается их количество, но если оригинальный массив индексов инвертировать - в начале его будут несуществующие вершины. Потому то и не рисуется ничего. Но теперь то все рисуется, так что мой подход верный :ok:

Вложение 17280


Часовой пояс GMT +4, время: 14:10.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
Перевод: zCarot