|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.05.2011, 20:22 | #1 |
Участник клуба
Регистрация: 30.07.2009
Сообщений: 1,601
|
3D куб. OpenGL
Добрый вечер. В разделе "помощь студентам" мне так никто и не помог. Поэтому решил написать здесь. В общем, я рисую куб, т. е. 6 граней. Но выходит у меня не то, что нужно. Когда добавляю glTranslate, я получаю черный экран. Не понимаю почему. Двумерные рисунки получаются отлично. Добавил в код glPolygonMode (GL_FRONT_AND_BACK, GL_LINE); и получил полный бред. Я уже "головой об стену бьюсь". Не знаю, что мне делать. Надеюсь на вашу помощь. Прикрепил исходник.
P.S .Хочу нарисовать (это моя цель) свою комнату, хотя знаю, что сложно, да вот никак не получается куб |
20.05.2011, 22:29 | #2 |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
Добавьте
Код:
//Я OpenGL знаю поверхностно, не обессудьте. |
21.05.2011, 08:12 | #3 |
Форумчанин
Регистрация: 11.04.2010
Сообщений: 143
|
Вот держи. Там где изменил код поставил комменты.
|
21.05.2011, 08:20 | #4 |
Участник клуба
Регистрация: 30.07.2009
Сообщений: 1,601
|
Спасибо.
А что ваш код делает? И все же в уроках нет данной процедуры. Они просто берут и рисуют квадраты. Хотелось бы узнать, как у них это работает? Вынес я glRotatef в Create. Это мне ничего не дало. Еще я хочу поворачивать куб при каждом событии таймера. Вот здесь как-то без махинаций получается же сделать. У кого есть возможность, дайте свой исходник куба без лишних строк. Заранее благодарю. --Add RomiKon, сейчас посмотрю ваш пост. Вы опубликовали сообщение во время моего письма, поэтому я не заметил. Извиняюсь. |
21.05.2011, 08:31 | #5 |
Участник клуба
Регистрация: 30.07.2009
Сообщений: 1,601
|
RomiKon, Спасибо вам. Прейду после похода и изучу полностью ваши изменения. Пока возник только один вопрос: Почему, заменив -3 на -1 в строке glTranslatef(0, 0, -3);, получатся не то, что хотелось бы. Я думаю, что в этом виновата glFrustum. Так ли это?
Последний раз редактировалось _PROGRAMM_; 21.05.2011 в 08:33. |
21.05.2011, 11:46 | #6 |
Форумчанин
Регистрация: 11.04.2010
Сообщений: 143
|
Понимаешь вся сцена отсекается пирамидой видимости. Стандартно пирамида видимости очень маленькая. Поэтому нужно заново задать плоскости ограничивающие основания пирамиды, это делается в процедуре glFrustum(есть ещё несколько процедур устанавливающих отсечение, но вам пока рано знать о них), последние два параметра этой функции и задают растояние до ближней и дальней плоскости отсечение. Всё что вы рисуете перед ближнее или за дальней плоскостью отсечения неотрисовывается, поэтому при изменении значений параметров glTranslatef вы видите куб не полностью=)
|
21.05.2011, 14:45 | #7 |
Участник клуба
Регистрация: 30.07.2009
Сообщений: 1,601
|
Спасибо. Еще вопрос. Думаю он будет в тему. Почему при изменении строки с glFrustum(-3, 3, -3, 3, 1, 10); на ,допустим, glFrustum(-3, 3, -3, 3,5 , 10);
, не сдвигая ось координат (glTranslatef()), рисунка не видно? |
21.05.2011, 19:41 | #8 |
Форумчанин
Регистрация: 11.04.2010
Сообщений: 143
|
Я уже говорил что предпоследний параметр функции glFrustum задаёт расстояние до ближней плоскости отсечения, тогда всё что нарисуется ближе чем этот параметр видно не будет. Да кстати если интересно то прочитай книжку Краснов OpenGL в Delphi. Отличная вещь ориентированная прежде всего на практику. Тебе будет очень полезно.
|
22.05.2011, 09:23 | #9 | ||
Участник клуба
Регистрация: 30.07.2009
Сообщений: 1,601
|
Цитата:
Цитата:
Последний раз редактировалось _PROGRAMM_; 22.05.2011 в 09:25. |
||
09.06.2011, 20:53 | #10 | |
Новичок
Джуниор
Регистрация: 09.06.2011
Сообщений: 1
|
Цитата:
У меня вообщем быстро моргает белым цветом. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
куб в дельфи | Руслан05 | Помощь студентам | 2 | 01.04.2011 16:08 |
Куб в 3D | Dixmix20120 | Помощь студентам | 1 | 19.12.2010 11:37 |
Куб в OPENGL | maxflint | Мультимедиа в Delphi | 10 | 19.04.2010 15:19 |
OpenGL в delphi. Как перемещать куб с помощью мыши | Xawk | Мультимедиа в Delphi | 2 | 08.12.2009 12:20 |
магический куб | Diller | Помощь студентам | 3 | 09.09.2007 11:35 |