Russian Qt Forum
Ноябрь 23, 2024, 04:01 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Задание атрибутов  (Прочитано 2389 раз)
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« : Март 27, 2015, 14:10 »

Привет, друзья!
Была задача вывести центр геометрии.
Код
C++ (Qt)
void GLWidget::drawCenter()
{
   glClear(GL_DEPTH_BUFFER_BIT);
   glDisable(GL_DEPTH_TEST);
 
   float center[] =
   {
       mesh->center.x(),
       mesh->center.y(),
       mesh->center.z()
   };
 
   glPointSize(5.0f);
   flatWraper.bind();
   flatProgram.setUniformValue(flatProgramRefs.mvp, mvp);
   flatProgram.setAttributeArray(flatProgramRefs.vertex, GL_FLOAT, center, 3, 0);
 
   flatProgram.setUniformValue(flatProgramRefs.color, QColor(Qt::white));
   glDrawArrays(GL_POINTS, 0, 1);
 
   glPointSize(3.0f);
   flatProgram.setUniformValue(flatProgramRefs.color, QColor(Qt::black));
   glDrawArrays(GL_POINTS, 0, 1);
   glEnable(GL_DEPTH_TEST);
 
}
 

Данный код выводил мне точку не в центре.
стоило мне сделать
Код
C++ (Qt)
   float center[] =
   {
       mesh->center.x(),
       mesh->center.y(),
       mesh->center.z(),
       1
   };
 
и
Код
C++ (Qt)
flatProgram.setAttributeArray(flatProgramRefs.vertex, GL_FLOAT, center, 4, 0);
тогда всё заработало.
А вот буферы прикручиваю по 3 координаты - ничего не смещается.
Новый код запустил на убунту. Центр вообще не отрисовался.
Тогда я решил передавать атрибут в виде одного QVector4D и при этом делал disableAttributeArray
Не понимаю, почему в первом и втором случаях я получил проблемы
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #1 : Март 28, 2015, 07:41 »

Возможно потому что GLSL ожидает vec4 (ну это всего лишь мое предположение)

[/off]Вы так активно учите "матчасть" что собственно "содержательная часть" давно потерялась и забыта Улыбающийся Может неукротимую мощь железки применить для какой-то полезной (или интересной) задачи? А то все точки рисуем  Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.111 секунд. Запросов: 22.