![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Движение в GLScene [Delphi, GLScene, Windows]
X-Disa © (2005-10-09 14:01:00)Поставил GLScene,сравнил с DelphiX, и понял, что лучше второе.
Вопрос такой: есть GLSphere, и нужно, чтоб по ее поверхности двигался объект (управление кнопками), а камера двигалась за ним, тоже по поверхности. Подскажите плиз!
Da Stranger (2005-10-11 17:14:00) [1]
> Еще один вопрос, ламерский наверно. Для чего нужен DummyCube?
Ответ на него есть даже в FAQ по GLScene. А так DeadMeat всё правильно рассписал. Добавить могу лишь то, что если объекты создаются динамически, то как контейнер можно использовать GLBaseSceneObject: он родитель многих классов в GLScene.
DeadMeat (2005-10-11 16:28:00) [2]Это контейнер.
В него удобно что-либо помещать для работы. А потом обращаться к его чилдренам. Сам он не видим (пока не выставить свойство VisibleAtRunTime) и не рендериться. Это просто коробка, куда можно складывать другие объекты.
Повернул его - повернул и всех, кто внутри.
X-Disa (2005-10-11 16:06:00) [3]Еще один вопрос, ламерский наверно. Для чего нужен DummyCube?
DeadMeat (2005-10-11 13:40:00) [4]Использовать не 50х50 а что нить, что является степенью двойки.
32х32
64х64
и т.п.
Но одна такая текстура в одном месте не может так сильно тормозить...
X-Disa (2005-10-11 13:18:00) [5]Тестура - 50x50, а FPS - 7 ! Как ускорить?
X-Disa (2005-10-11 13:11:00) [6]А, уже нашел - Normal Direction - ndInside
X-Disa (2005-10-11 13:10:00) [7]А как это сделать? :(
DeadMeat (2005-10-11 12:44:00) [8]Отключи куллинг и инвертируй нормали (или одно из двух... я щас не помню)
X-Disa (2005-10-11 12:04:00) [9]Есть еще один вопрос, вот когда камера снаружи сферы и смотрит на нее - все ок, но когда камеравнутри - сферы как бы и нет. Как отобразить ее внутреннюю поверхность?
DeadMeat (2005-10-11 11:52:00) [10]
> Вопрос еще такой, как лучше организовать звездное небо?
> SkyBox даже с самой простенькой текстуркой жутко тормозит
> :(
На сферу натяни и сферу присобачь к камере.
Или тоже самое с кубом. На темном небе не будет видно ни стыков ни полосочек.. Если правильно сделать.
X-Disa (2005-10-11 11:05:00) [11]Вообще-то общая идея игры такая: Есть космическое пространство (сфера), в центре находится звезда.
Вокруг летают планеты, астероиды, корабли, и остатки всего этого. Но корабли летают не свободно, а по поверхностям уровней (типа вложенных невидимых сфер), и могут подниматся и опускатся на нужный уровень.
Уже сделал маленький свободно летающий кораблик :)
Вопрос еще такой, как лучше организовать звездное небо? SkyBox даже с самой простенькой текстуркой жутко тормозит :(
Кефир87 (2005-10-10 20:38:00) [12]В глаза это ГЛСцен не видел. Сразу с ОГЛ АПИ начал... Сложно конечно... Ну вот уже полгода изучаю... Не оч. далеко ушел 8)
!Trinix (2005-10-10 11:33:00) [13]Смешно даже!
Ведь GLScene - надстройка над OGL, а не какой-то супер сам-по-себе движок. Там даже есть спец. графа для письма в OGL.
Fosgen (2005-10-10 09:34:00) [14]Никто не спорит, "чистый" OGL гораздо пластичнее, мощнее, производительнее. Но начинать я бы посоветовал с GLScene. DelphiX - скорее просто баловство, из общения с ним мало чего полезного вынести можно. А ГЛСцена позволяет понять основные принципы построения игры, хранения данных, организации тех или иных объектов, их свойств. Если еще копаться в исходниках - можно вообще много чего узнать. Например - применение класов, наследование и т.д. Так что на первых порах - это поучительно. А когда начинаешь писать что-нить серьезное, то постепенно утыкаешься в основные ограничения ГЛСцены - низкая производительность, универсальность за счет скорости, тогда начинаешь постепенно писать что-то свое. То один модуль заменяешь на свой, то другой. В результате - получаешь движок, заточенный и оптимизированный под конкретный проект.
И дальше уже ползуешься своими наработками. Вроде все довольны?
DeadMeat (2005-10-10 00:40:00) [15]А вообще само сравнение весьма оригинально..
Я конечно понимаю, если сравнивались возможности ТОЛЬКО в 2Д.. но об этом ничего не сказано..
---
...Death Is Only The Begining...
Кефир87 (2005-10-09 21:18:00) [16]А вообще надо с этим вам всем завязывать. Все равно у API возможностей и гибкости куда больше 8)
Fosgen (2005-10-09 21:13:00) [17]Ерунда задача.
Создаешь в центре сферы DummyCube, к нему потомком создаешь целевой объект. Позиция потомка - равна радиусу сферы.
По нажатию клавиш - вращаешь на требуемый угол DummyCube. Потомок сам будет по поверхности двигаться. Если надо, чтобы потомок сохранял положение к поверхности сферы - пользуешься либо нормалью этой самой поверхности, либо вычисляешь компенсирующий угол, к повороту DC. А вообще - при предложенном вариане - объект будет всегда скользить по поверхности сферы одной стороной.
Камера - потомком либо к целевому объекту (но он сам - ее цель), либо - к DummyCube (это уже смотри по особенностям задачи).
Всех делов - обрабатывать нажатие кнопок и вычислять угол, на который повернуть DC.
А delphiX, уж слишком примитивная вещь. Я конечно понимаю, разобраться с GLScene не каждый потянет... :) Но возможностей, гораздо больше.
!Trinix (2005-10-09 17:25:00) [18]Это очень легко, делай так:
Создай DummyCube(DC), в него засунь объект и камеру. При нажатии клавиши двигай DC. А если хочешь двигать по сфере, то это тебе уже физика нужна, или я неккоректно понял вопрос?