![]() |
|
Модераторы: Rickert, Alexeis, BorisVorontsov |
![]()
|
|
| Ares |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 14.3.2005 Репутация: нет Всего: нет |
Помогите пожалуйста!
Что означает следубщая строчка: gluQuadricTexture(quadObj, GL_TRUE)? P.S. Разрешаем текстуру куда, как, зачем? |
|||
|
||||
| p0s0l |
|
||||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 2 Всего: 112 |
Добавлено @ 21:28
-------------------- С уважением, г-н Посол. |
||||
|
|||||
| Ares |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 14.3.2005 Репутация: нет Всего: нет |
![quote] Включает генерацию текстурных координат для объекта quadObj...
А зачем включает? Если можно задать вершину в ручную, а генерация занимает много ресурса, но ее же используют, то с какой же целью она нужна? |
|||
|
||||
| Ares |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 14.3.2005 Репутация: нет Всего: нет |
Кто-нибудь может объяснить для чего эта функция?
|
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 2 Всего: 112 |
Пример:
В этом примере, цилиндр текстурируется. Координаты вершин генерятся с помощью gluCylinder, нигде сам не задаешь координаты вручную... -------------------- С уважением, г-н Посол. |
|||
|
||||
| Ares |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 14.3.2005 Репутация: нет Всего: нет |
[quote]Наложение текстур
Наложение текстур осуществляется много проще. Все, что нужно сделать, это выбрать текущую текстуру: glBindTexture (GL_TEXTURE_2D, Texture [0]); Но прежде, обязательно нужно включить наложение текстур: glEnable (GL_TEXTURE_2D); После этого, при рисовании вершин, нужно указывать координаты текстуры. Координата задается двумя переменными: x и y. При этом для вершин с коорди-натами текстуры 0,0 будет располагаться левый верхний угол текстуры, а в вер-шине с координатами 1,1 будет располагаться правый нижний угол. В начале установите режим, благодаря которому при использовании коор-динат меньше 0 и больше 1 текстура будет размножаться. Это выполняется с помощью функции glTexCoord2f (GLfloat x, GLfloat y); Разумеется, при использовании текстур можно полностью отказаться от ис-пользования цветов, убрав все вызовы glColor* Вуаля, все что нужно уже выполнено. В результате у вас должно получиться код похожий на такой. А у некоторых, в силу некоторой лености, абсолютно та-кой. Ведь что может быть проще чем скопировать и вставить готовый код :о) Добавлено @ 19:59 [После этого, при рисовании вершин, нужно указывать координаты текстуры. Координата задается двумя переменными: x и y.] Координаты текстуры указываютя в ручную! А зачем автоматически их находить с помощью gluQuadricTexture(quadObj, GL_TRUE) |
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 2 Всего: 112 |
Положим тебе нужно нарисовать сферу... Можно рассмотреть 2 способа...
1 способ: Вычисляешь вручную координаты всех вершин сферы, у каждой вершины вычисляешь текстурные координаты, вобщем будет примерно так, как ты написал в своём последнем посту:
В этом случае использовать gluQuadricTexture не надо, она ни на что влиять не будет! 2 способ: Использовать gluSphere - пример я уже приводил. Сферу от начала до конца строить тебе уже не надо, рассчитывать тоже ничего не надо... Указываешь радиус, количество делений - и сфера готова! Координаты вершин рассчитываются автоматически, и если включена генерация текстурных координат для этого объекта, то они тоже будут генериться автоматически - для сферы одним способом, для цилиндра - другим и т.д. В этом случае использовать gluQuadricTexture можно! Разница понятна ? Вообщем, если ты не используешь gluQuadric-объекты, т.е. сам вручную рисуешь объекты, то использовать, конечно же, функцию gluQuadricTexture не надо... -------------------- С уважением, г-н Посол. |
|||
|
||||
| Ares |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 14.3.2005 Репутация: нет Всего: нет |
Понятно!
А вот зачем использовать эту gluQuadricTexture, она же много ресурсов ест! Если дапустим мы будем накладывать текстуру на крылол птицы! Там только один такт будет занимать около 0.25 сек. Но она же все таки нужна, есть одна какя-то причина по чему мы используем gluQuadricTexture, а вот какая она я не знаю! Подскажи, а то меня преподаватель этим валит и валит! |
|||
|
||||
| p0s0l |
|
||||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 2 Всего: 112 |
Если рисуешь крыло птицы - тогда использовать gluQuadricTexture не надо!... Покажи код, где ты рисуешь крыло птицы и умудряешься всунуть туда gluQuadricTexture...
Если только ты не собрался рисовать крыло птицы цилиндрами и дисками
Скажи преподу, что при рисовании крыла птицы эта функция не используется, поэтому она никак и ничего тормозить не будет... -------------------- С уважением, г-н Посол. |
||||
|
|||||
| Ares |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 14.3.2005 Репутация: нет Всего: нет |
Спасибо, огромное!
Хорошо так и передам |
|||
|
||||
| atavinta |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 31.1.2008 Где: Москва Репутация: нет Всего: нет |
Я пользуюсь DirectXом. В нём я не знаю аналога и все текстурные координаты задаю вручную. Но в принципе это большое удобство. Если же тебя интересует не удобство, а экономия, то делай сам все, что можешь сдлать лучше, чем уже зделано и грузи в готовом виде все, что сам сдлать не можешь или делаешь хуже. Если мне потребуется подобное удобство, то функцию генерации я напишу сам, а полученные текстурные координаты буду сохранять в файл. Потом эти текстурные координаты будут просто загружаться готовые. Загрузка и хранение занимают меньше ресурсов, чем генерация по запросу, в тоже время автогенерация удобнее полностью ручного режима. Один раз я уже написал такую функцию под конкретный объект, но сохранил в самом проекте. Функция вызывается при каждом запуске самой программы, но только по одному разу. Это позволяет считать автогенерацию просто частью подготовительного этапа наравне с загрузкой прилады и созданием окна. Но для более сложных объектов я с целью сокращения времени подготовительного этапа буду пользоваться файлами.
|
|||
|
||||
![]()
|
| Вы можете найти полезным что... | |
|
|
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |