![]() |
|
Модераторы: Rickert, Alexeis, BorisVorontsov |
![]()
|
|
| Salatovec |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 9.1.2008 Репутация: нет Всего: -1 |
Помогите люди добрые, значитс есть такой код:
Здесь разноцветный кубик крутится вокруг осей Х и Y. и Все бы хорошо, но некоторые грани не видны, как я понимаю из-за того, что координаты их совпадают с другими гранями и эти грань налезает на грань, вообще кубик похож не на кубик, а на кубик с несколькими прозрачными гранями, которых якобы и в помине нет. Помогите люди пожалуйса, второй час голову ломаю. |
|||
|
||||
| Baton2007 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 117 Регистрация: 29.11.2007 Репутация: нет Всего: нет |
А зачем использовать две функции glRotatef();
Если я не ошибаюсь одна функция справится с поворотом по всем 3 осям! И еще избавься от goto и поставь функции таймера! Это сообщение отредактировал(а) Baton2007 - 7.11.2008, 09:43 |
|||
|
||||
| Salatovec |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 9.1.2008 Репутация: нет Всего: -1 |
2 функции использую, чтобы скорости поворота были разные. Так а по моей проблеме ответ будет?)
|
|||
|
||||
| Salatovec |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 9.1.2008 Репутация: нет Всего: -1 |
Неужели никто не поможет, очень хочу понять решение?(
|
|||
|
||||
| Salatovec |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 9.1.2008 Репутация: нет Всего: -1 |
|
|||
|
||||
| Salatovec |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 9.1.2008 Репутация: нет Всего: -1 |
Да какие же вы после этого профессионалы (
|
|||
|
||||
| Salatovec |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 9.1.2008 Репутация: нет Всего: -1 |
|
|||
|
||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 2 Всего: 52 |
Смотрим что такое gluLookAt() - 0
Что значит "Case 1: ", в начале функции "Display"? - 1 Учимся инициализировать не через glut - чтобы понять как работать с OpenGL, а не пытаться построить камаз, научившись резьбе по дереву. -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
| Salatovec |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 9.1.2008 Репутация: нет Всего: -1 |
Ура откликнулись добрые люди, спасибо) Дак учиться то я и хочу, просто уроки, которые я нашел в инете чето как то туманно учат, я во многое не втыкаю(
А case - я сделал как метку, чтобы все время угол поворота прибавлялся и функция заного начиналась. Чтобы кубик крутился короче =\ |
|||
|
||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 2 Всего: 52 |
Будут вам уроки
0) Забываем про метки - это плохой стиль программирования. Выбросьте книгу, которая вам о них поведала. Возьмите книгу Дейтлов или Страуструпа. 1) Идём в ya.ru -> "Уроки Nehe" - учимся инициализировать OpenGL и делать какой-то минимум действий. 2) Если понадобиться - создайте тему что-то типа "Вопросы человека, учащего OpenGL" - и там задавайте появляющиеся вопросы. Думаю, если их накопится много, то модератор даже закрепит эту тему. Я обещая во всём помогать вам и освещать непонятные вопросы, попутно осыпая ссылками -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
| Salatovec |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 9.1.2008 Репутация: нет Всего: -1 |
Rickert, Я как раз и учился по урокам нехе, вот там 1 урок, инициализация в виндовс он уже непонятен) Куча, куча - ну просто куча кода, а мне то нужно лишь чтобы окошко создавалось и в нем кубик пока нарисовать, чтобы вертелся и правильно отображался. Про создание кубика и вообще работу с рисованием полигонов, линий и т.д. я понял, а от непосредственно инициализацию опенгл нет( Я нашел вот такие уроки http://www.firststeps.ru/mfc/opengl/r.php?1 , как считаете, подойдут? Или все таки лучше в нехе втыкать?
Это сообщение отредактировал(а) Salatovec - 10.11.2008, 17:39 |
|||
|
||||
| Salatovec |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 9.1.2008 Репутация: нет Всего: -1 |
Если не трудно, сделай мне такую, а я попробую в ней разобраться и спрошу, что непонятно. Если не трудно, пожалуйста.
|
|||
|
||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 2 Всего: 52 |
Нет, друг мой, извините, делать за вас никто ничего не будет. Я вам повторяю - "Уроки NeHе" - первый из них посвящён созданию окна и инициализации OpenGL.
Надо инициализировать именно так как там указано, а не через коротенькие, готовые функции glut'а, неудивительно что вы не понимаете как всё это работает: просто пытаетесь сделать работу быстрее. -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
| Salatovec |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 9.1.2008 Репутация: нет Всего: -1 |
Просто инициализация и вправду уж больно жесткая =\ Ладно, возникнут вопросы - напишу)
|
|||
|
||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 2 Всего: 52 |
Salatovec, это вам кажется. Поверьте: дальше - больше
-------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
| Salatovec |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 9.1.2008 Репутация: нет Всего: -1 |
Rickert, Вот вопросы возникли) Рисовать полигонами коробочки, сферки, цилиндры - это все конечно хорошо, а вот если более сложная модель? Я хорошо работаю в 3ds maxe, но не знаю как из макса экспортировать в с++. И вот 2 вопроса - собственно как экспортировать и чтоже все таки лучше - рисовать с++ или максом?
|
|||
|
||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 2 Всего: 52 |
Salatovec, Конечно же все ресурсы создаются в отдельных проргаммах, а потом импортируются в свой проект. Как это делать? Есть разные способы.
Допустим вам надо загрузить модель из Макса в ваш проект: сохраняем её (или экспортируем) в Obj формат (wavefront OBJ), затем в своём проекте пишем функцию по загрузке этого файла и рисуем, все дела. -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
| Salatovec |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 9.1.2008 Репутация: нет Всего: -1 |
Rickert, Спасибо тебе огромнейшее, мне бы только функцию узнать "по загрузке этого файла"
|
|||
|
||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 2 Всего: 52 |
Salatovec, сначала сделай OBJ файл, потом открой его в блокноте и сам всё поймёшь, как его надо читать.
-------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
| Salatovec |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 9.1.2008 Репутация: нет Всего: -1 |
Честно открыл и честно не понял =(
|
|||
|
||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 2 Всего: 52 |
Тогда иди на wotsit.org и в поиске вводи "OBJ", среди результатов ищи OBJ wavefront - это и будет описание файла.
Повторяю: никто за тебя ничего не напишет. Понять - помогу, но ты сам должен учиться это делать. -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
| Salatovec |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 9.1.2008 Репутация: нет Всего: -1 |
Да я и не прошу за меня всё делать -_- но понять код длинной с байкало амурскую магистраль чето как то не але =\ не могли в пару строк чтоль придумать (
|
|||
|
||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 2 Всего: 52 |
Salatovec, Иркутянин чтоли?
-------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
| Salatovec |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 9.1.2008 Репутация: нет Всего: -1 |
Нет, Москвич) если ты об этом
|
|||
|
||||
| TDM |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 1.2.2006 Где: SPB Репутация: нет Всего: нет |
Salatovec,
Если некоторые грани не видны то наверно неправильные координаты вершин. |
|||
|
||||
| Salatovec |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 9.1.2008 Репутация: нет Всего: -1 |
Нет координаты были верны, дело было в инициализации окна опенджл) но спасибо за ответ) |
|||
|
||||
| Salatovec |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 9.1.2008 Репутация: нет Всего: -1 |
Так, Rickert, вот такой вопрос, вот отрывок кода:
Здесь я рисую усеченный конус, без низа и верха с центром 0, 0 по осям x и y и удаленного на z от наблюдателя, а здесь:
я рисую тор, который находится внутри конуса на самом верху. Тор и конус связанны друг с другом, это должна быть единая модель, но если я начинаю их вращать, то они вращаются каждый вокруг своей оси. Как мне сделать, чтобы закрепить тор на верхних координатах конуса и он вращался правильно? Это сообщение отредактировал(а) Salatovec - 16.11.2008, 14:52 |
||||
|
|||||
| TDM |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 1.2.2006 Где: SPB Репутация: нет Всего: нет |
Salatovec,
Сперва поворачиваешь а потом перемещаешь ёмаё) |
|||
|
||||
| Gongex |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 1.1.2008 Репутация: -1 Всего: 0 |
Салатовек,я решал такие проблемы,и знаю как отладить чтоб тор вращался нормально.
использовать надо glPushMatrix(); чтобы сохранить вращения и glPopMatrix(); чтобы сбросить все вращения.
Добавлено @ 00:23 я сам искал исходник загрузки из 3Дсмакс,и все тупили как жлобы,в итоге я сам нашел код,и он работает.Там формат надо сохранять не в .max а в .3DS.Давай почту кину этот исходник. Добавлено @ 00:32 Я скомпилил твой код и все зависло.Casel-лишнее.Там уже встроена функция бесконечного рисования Это вот она по моему glLoadIdentity(); Добавлено @ 00:33 посмотри чего я достиг,в рисовании опенгл::http://unlater.narod.ru/OpenGl.html с сентября занимаюсь Это сообщение отредактировал(а) Alexeis - 24.3.2009, 12:38 |
|||
|
||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 2 Всего: 52 |
glLoadIdentity(); - Во второй части кода лишнее. Попробуйте без неё.
glPopMatrix() не сбрасывает вращения, а восстанавливает ту матрицу преобразования, которая была сохранена через glPushMatrix(); Это функция сброса матрицы преобразований в первоначальную. -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
| Gongex |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 1.1.2008 Репутация: -1 Всего: 0 |
Rickert,
Мне не нужны преподаватели.Я сам все знаю. Я обобщил научные термины к "простому"....Стирает и сохраняет вращения. |
|||
|
||||
![]()
|
| Вы можете найти полезным что... | |
|
|
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |