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

Ваш аккаунт

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

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

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

Не отображается сцена с шестерёнкой

18K
20 апреля 2007 года
#pragma
16 / / 03.03.2007
Товарищи, очень нужен help! Бьюсь дня 3 ужё - безрезультатно. В OpenGL'е не очень силён.. Короче, суть: есть прога на Дельфе - вращающаяся шестерёнка. Всё работает хорошо. Попытался перевести на C++ Бульдер - шиш, не работает! :( Кадры считает, но чёрное окно, и ничего не отображается.. Всё, вроде, как в Дельфе.. Скачал из нета тутор - вращение сферы на Бульдере, и после многочисленных экспериментов вроде получается глюк в списках glNewList. SOS!
8.2K
21 апреля 2007 года
Akela
64 / / 13.05.2005
1. При вызове функции glFrustum(...) необходимо вручную привести тип GearFrameGL->Height и GearFrameGL->Width к float, т.к. компилятор сначала выполняет деление одного на другое, а потом уже результат приводит к типу float, в результате чего функция glFrustum(...) вызывается с параметрами bottom=0, top=0.
ДОЛЖНО БЫТЬ:
glFrustum(-1.0, 1.0, -float(GearFrameGL->Height) / float(GearFrameGL->Width), float(GearFrameGL->Height) / float(GearFrameGL->Width), 5.0, 60.0);

2. При вызове функций glEndList(), glEnd() (и любых других, не имеющих параметров) ОБЯЗАТЕЛЬНО нужно писать скобки, то есть НЕ glEnd;, А glEnd()!!!

Если после исправления этих ошибок не экране не окажется того, что нужно, значит следует обратить внимание на правильность формирования видовой матрицы в функции отрисовки.
18K
22 апреля 2007 года
#pragma
16 / / 03.03.2007
Akela, ты на 100% прав!! И как можно было мне так тупо ошибиться?! В сях же в функциях обязательно должны быть ()!! И почему же компилятор только меня не обругал??
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог