Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Разбиение поверхности сферы на GL_TRIANGLE_STRIP, glDrawElements завершается сегфолтом 
:(
    Опции темы
zaytsewa
Дата 9.2.2011, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 9.4.2009

Репутация: нет
Всего: нет



Всем привет!
Такая проблема. Есть сфера. Надо разбить её на полоски треугольников GL_TRIANGLE_STRIP и отрисовать их.
glDrawElements завершается сегфолтом
Видимо что-то не так с индексным массивом

вот код:
Код


 int n = 360 / _i_step;
int m = 360 / _j_step;
IndexArray = new GLuint[2 *(n)*(m-1)];

void Sphere::getVertexArray() // определить массив вершин
{
  int n = 0;
  for (int j = -180; j < 180; j += _j_step) // по гринвичу
    for (int i = 0; i < 360; i += _i_step) // по экватору
    {
      VertexArray[n][0] = _x0 + _r * sin(k * i) * cos(k * j);//x
      VertexArray[n][1] = _y0 + _r * sin(k * i) * sin(k * j);//y
      VertexArray[n][2] = _z0 + _r * cos(k * i);//z    
      ++n;
    }
  _vertex_count = n;
  fclose(f);
}

void Sphere::getIndexArray()  // определить массив индексов вершин
{
  int n = 0;
   
   for (int j = 0; j < (360 / _j_step) - 1; ++j)
   {
     for (int i = 0; i < (360 / _i_step); ++i)
    {
      IndexArray[n] = j * (360 / _i_step) + i; // 0
       ++n;
      IndexArray[n] = (j + 1 )* (360 / _i_step) + i; 
     ++n;
    }
   }
   _triangles_count = n;
   fclose(f); 
}


отрисовка:
Код

glDrawElements(GL_TRIANGLE_STRIP,sphere->getTrianglesCount(), GL_UNSIGNED_INT,sphere->IndexArray); 

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0899 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.