Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

определение цвета пикселя.

9.9K
24 августа 2008 года
maxFM
77 / / 18.04.2007
люди подскажите пожалуйста как в openGl определять цвет пикселя.??
я вот по всем справочникам посмотрел и делал вот так

void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{drawpix=0;
GLint viewport[4]; // параметры viewport-a.
GLdouble projection[16]; // матрица проекции.
GLdouble modelview[16]; // видовая матрица.
GLdouble vx,vy,vz; // координаты курсора мыши в системе координат viewport-a.
GLbyte wrk[2];
glGetIntegerv(GL_VIEWPORT,viewport); // узнаём параметры viewport-a.
glGetDoublev(GL_PROJECTION_MATRIX,projection); // узнаём матрицу проекции.
glGetDoublev(GL_MODELVIEW_MATRIX,modelview); // узнаём видовую матрицу.

vx = X-pKx;
vy =Height-Y-pKy; // где height - текущая высота окна.

wrk[0]=0;
wrk[1]=0;
wrk[2]=0;
glReadPixels(vx, vy, 1, 1, GL_RGB, GL_FLOAT, &wrk);\\цвет пикселя

вот только он у меня только первый раз вроде получается а вот дальше чтото все херится.
как это дело исправить?!!!
заранее спасибо!!!!

________________________________
[COLOR="Red"]Для выделения листинга есть специальные теги. Но за год с лишним тебе, разумеется, не хватило времени об этом узнать. Либо читай и исправляй, либо пойдешь "под статью".
Модератор[/COLOR]
341
26 августа 2008 года
Der Meister
874 / / 21.12.2007
Даже при беглом просмотре кода, бросается в глаза, что ты объявляешь в стеке массив из двух элементов
 
Код:
GLbyte wrk[2];

затем инициализируешь его как массив трёх элементов
 
Код:
wrk[0]=0;
wrk[1]=0;
wrk[2]=0;

а затем передаёшь в glReadPixels() адрес, по которому содержится адрес первого элемента массива
 
Код:
glReadPixels(vx, vy, 1, 1, GL_RGB, GL_FLOAT, &wrk);

то есть, указатель на указатель. glReadPixels() же принимает последним параметром void *
9.9K
26 августа 2008 года
maxFM
77 / / 18.04.2007
GLbyte wrk[3];
vx = X-pKx;
vy =Height-Y-pKy; // где height - текущая высота окна.
glReadPixels(vx, vy, 1, 1, GL_RGB, GL_UNSIGNED_BYTE, &wrk);

делал по примеру.вот только он чтото не всегда реагирует. и я так не понял- эта функция считывает цвет пикселя с текстуры(например жвакаю на объект на который нанесена текстура,одна сторона-один цвет- по цвету определяю цвет стороны)? можно так или эта функция на текстуру не реагирует?
9
27 августа 2008 года
Lerkin
3.0K / / 25.03.2003
Значит так. maxFM поздравляю с первым "пряником" по вопросу оформления кода в постах. Еще один пост с неверным оформлением - растоплю баню. Никто за тебя форматированием заниматься не будет.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог