Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Silentfog
0 / 0 / 0
Регистрация: 21.10.2016
Сообщений: 2
1

Что-то не так с OpenGL или головой, ошибка в один пиксель

04.05.2017, 07:40. Просмотров 175. Ответов 2
Метки нет (Все метки)

Отрисовываю точку и прямоугольник в старой версии OpenGL через GLFW - прямоугольник получается ниже на пиксель. Вот код:

В начале , я координаты opengl перевёл таким способом в координаты пикселей .
C++
1
2
 PX_WIDTH = (float)2/window_w;
 PX_HEIGHT = (float)2/window_h;
При размере окна 700x800 , высота пикселя равна 0.0025 в координатах opengl

и теперь отрисовывая по этим координатам - точка отрисовывается как положено , а GL_QUADS на пиксель ниже:

C++
1
2
3
4
5
6
7
8
9
10
11
 glColor3f(0.0 , 0.0 , 0.0);
        glBegin(GL_POINTS);
        glVertex2f(0.09 , 0.65);
        glEnd();
 
        glBegin(GL_QUADS);
        glVertex2f(0.1 , 0.65);
        glVertex2f(0.1 , 0.55);
        glVertex2f(0.2 , 0.55);
        glVertex2f(0.2 , 0.65);
        glEnd();
как же так?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.05.2017, 07:40
Ответы с готовыми решениями:

Ошибка линкера или что не так с libcurl
Привет всем! Установил libcurl по этому мануалу. Но при компиляции следующая ошибка: ...

OpenGL что не так в коде? вроде все нормально
Собственно вот код, я сижу под убунтой 9.10 и он ругаеться пишет #include<GL/glut.h> int N = 3;...

Как сделать так, что бы после начала игры, активным было OpenGL-окно, а не консольное?
Всем привет, у Меня тут такая проблемка, даже не знаю как искать ее решение в гугле, вот и решил...

Что-то не то с Майкрсофт визуал студио 2010 или я что-то не так делаю
Дело в том что при запуске вот этой программы: #include <iostream> using namespace std; int main...

Есть ли смысл изучать 2-3 языка параллельно или же лучше погрузиться с головой в какой-то один
Доброго времени суток всем и каждому. Я начинающий программист и занимаюсь изучением всемогущего...

2
MrGluck
Модератор
Эксперт CЭксперт С++
8086 / 4939 / 1431
Регистрация: 29.11.2010
Сообщений: 13,395
04.05.2017, 11:21 2
Попробуйте для хранения использовать не float, а long double.
1
Silentfog
0 / 0 / 0
Регистрация: 21.10.2016
Сообщений: 2
04.05.2017, 11:40  [ТС] 3
Благодарю за отклик!

Похоже это не поможет . Видимо это какое-то непредсказуемое поведение openGL , возможно как-то с центрами пикселей связано, но всё равно непонятно , почему из одной координаты 0,75 два разных результата выходит в POINTS и QUADS . Также и в GL_TRIANGLES рисуется на пиксель ниже точки. Интересно , при значении точки 0,7499 - она уже на пиксель ниже рисуется.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.05.2017, 11:40

Создание дочернего окна OpenGL или что же могло пойти не так!?
Всем суп! Для отображения некоторой информации создаётся дочернее окно Геля. Используется просто:...

Битый пиксель или что?
Всем привет, Купил монитор AOC i2360Phu, все хорошо, но сбоку нашел нечто, похожее то ли на...

Нужно ввести в элементы массива 0, если пиксель белый, или 1 ,если пиксель чёрный
Есть чёрно белая картинка 3x5. Нужно ввести в элементы массива 0, если пиксель белый, или 1 ,если...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru