Elite Games - Свобода среди звезд!
.
ВНИМАНИЕ!
Наша конференция посвящена космической тематике и компьютерным играм.
Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!

  » Блок Л для семерки | страница 1
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 1 из 7
На страницу: 1, 2, 3, 4, 5, 6, 7  След. | Все страницы
Поиск в этой теме:
Канал Orbiter: «Блок Л для семерки»
igel
 100 EGP


Рейтинг канала: 4(86)
Репутация: 14
Сообщения: 755

Зарегистрирован: 12.06.2006
Я начинаю думать в сторону блока Л для семерки. Пока о срокахо говорить рано, так что если кто успеет раньше - милости прошу. Но вообще я планирую оператично докладывать о прогрессе, так что можно будет вносить идеи и варианты по ходу.

А пока - первый вопрос, про поворотные камеры. Поскажите, кто может. Я в первый раз сделал аппарат с поворотной камерой (один маленький персональный проектик, надеюсь за месяц закончить). Но вот что мне непонятно. Управляю направлением тягой я функцией SetThrusterDir. Она использует только направление, значит, я должен при создании движка указывать точку его подвески - вокруг которой движок будет вертеться. ОК, указал. чтобы движок отслеживал тягу визуально - верчу его анимацией вокруг той же точки. ОК, сделано. Но дальше я хочу, чтобы вертелся и факел! Однако, вилы: чтобы факел вертелся, я должен НЕ указывать его пространственное положение в явном виде, только тогда он "привяжется" к тяге. Но если я НЕ указываю его положение, он начинается прямо в точке подвески, а не на срезе сопла, где мне надо! Идеи? Может, я что-то не заметил?
    Добавлено: 22:21 15-02-2007   
Kulch
 105 EGP


Рейтинг канала: 2(21)
Репутация: 29
Сообщения: 604
Откуда: Россия, Санкт-Петербург
Зарегистрирован: 24.08.2004
Да, Андрей, не заметил Улыбка
Посмотри прототипы метода AddExhaust (файл vesselapi.h)
Так вот их не 2 варианта, как документировано, а три. Третий вариант позволяет указать смещение текстуры выхлопа относительно точки подвески, вот он:

UINT AddExhaust (THRUSTER_HANDLE th, double lscale, double wscale, double lofs, SURFHANDLE tex = 0) const;

Обрати внимание на параметр lofs - это и есть смещение. Положительные значения - это вдоль по направлению выхлопа. Я у себя, на "Энергии" и в пректе Space Tugs использую именно этот вариант. Направление не задано, задана только привязка к thruster, соответственно, текстура будет поворачиваться вслед за двигателем. А смещение lofs надо указать таким, чтобы текстура начиналась на срезе сопла.

Вообще, надо просматривать заголовочные файлы - Мартин много чего забыл задокументировать.
_________________
Юрий Кульчицкий aka Kulch
    Добавлено: 17:24 16-02-2007   
igel
 100 EGP


Рейтинг канала: 4(86)
Репутация: 14
Сообщения: 755

Зарегистрирован: 12.06.2006
Вот спасибо! Я, конечно, знаю, что не все функции документированы, и заглядываю иногда в заголовочные файлы, но редко и нерегулярно. Я ж минималист, у меня любой проект использует дай бог 3% всей функциональности API. Так что заметить функцию, да еще сообразить, что она отличается... фактически, для этого нужно с самого начала сильно подозревать, что она там должна быть Улыбка Ну или помнить API, как ты его должен помнить: Энергия наверняка напрягает его сильно больше чем на 3%, плюс работаешь ты с Орбитером регулярно, а не набегами, как я.

А тут еще совершенно новое дело для меня было, качающаяся основная камера. До этого не делал таких - ну и проблемы не возникало Улыбка. А у блока Л она как раз тоже качаться будет.
    Добавлено: 19:11 16-02-2007   
Kulch
 105 EGP


Рейтинг канала: 2(21)
Репутация: 29
Сообщения: 604
Откуда: Россия, Санкт-Петербург
Зарегистрирован: 24.08.2004
igel :
Так что заметить функцию, да еще сообразить, что она отличается...

Просто она была мне очень нужна, искал целенаправленно Улыбка
igel :
работаешь ты с Орбитером регулярно

уже нет, увы
igel :
А тут еще совершенно новое дело для меня было, качающаяся основная камера.

Хочешь, свои исходники пришлю с этими делами?
_________________
Юрий Кульчицкий aka Kulch
    Добавлено: 13:08 17-02-2007   
astronavt
 86 EGP


Рейтинг канала: 1(3)
Репутация: 35
Сообщения: 403
Откуда: Новочеркасск
Зарегистрирован: 11.01.2006
igel :
Я начинаю думать в сторону блока Л для семерки.

Несказанно рад, что разработчики ориентируются на этот аддон. Спасибо за доверие.
Kulch :
UINT AddExhaust (THRUSTER_HANDLE th, double lscale, double wscale, double lofs, SURFHANDLE tex = 0) const;

Хм, интересно... Ведь у меня факелы тоже из точки крепления рулевиков выходят!

Удачи проекту! Буду ждать с нетерпением.
_________________
Я бы изменил этот мир, но Бог не дает мне исходников...
    Добавлено: 14:08 17-02-2007   
igel
 100 EGP


Рейтинг канала: 4(86)
Репутация: 14
Сообщения: 755

Зарегистрирован: 12.06.2006
Хе-хе! Доверие доверием (семерка и впрямь крутая!) - но вообще-то я хочу (попробовать) сделать блок Л максимально независимым изделием (аддоном). Чтобы его можно было с чем угодно применять. Хоть с любой семеркой, хоть с любой другой ракетой Улыбка

Я еще не работал с аттачментами, но, насколько я помню, при аттачменте нагрузка создается в сценарии прямо с самого начала, из файла сценария. И можно ей передать все нужные параметры из сценария. Тогда основная ракета должна просто реализовывать прицепление "чего угодно" через аттачмент, и отделять это "что-то" после выведения. А как я понимаю, большинство носителей в Орбитере сейчас так и делаются.

Верные допущения, или где-то есть незамечаемые грабли?
    Добавлено: 20:05 17-02-2007   
astronavt
 86 EGP


Рейтинг канала: 1(3)
Репутация: 35
Сообщения: 403
Откуда: Новочеркасск
Зарегистрирован: 11.01.2006
igel :
но вообще-то я хочу (попробовать) сделать блок Л максимально независимым изделием (аддоном).

Ну, это понятно. Кроме того, сделать это не так и сложно.
igel :
Я еще не работал с аттачментами, но, насколько я помню, при аттачменте нагрузка создается в сценарии прямо с самого начала, из файла сценария.

Можно и так. Сточки зрения универсальности, так лучше и делать. Но возможно и программное приаттачивание, птем динамичекого создания точек крепления и вызова соответствующего метода.
igel :
И можно ей передать все нужные параметры из сценария. Тогда основная ракета должна просто реализовывать прицепление "чего угодно" через аттачмент, и отделять это "что-то" после выведения.

Именно так моя "семерка" и делает. Просто в сценарии прописывается имя прикрепляемого объекта, параметры точки крепления, которая будет создана ракетой (или ступень) на нем, даже если на ПН нет ни одной тчки крепления.

При таком подходе, правда, нужно обеспечить, чтобы ПН сама реагировала на оделение. А для этого нужно работать с указателями точек крепления, что создает трудности при восстановлении состояния аддона после загрузки из сохранения.
igel :
Верные допущения, или где-то есть незамечаемые грабли?

Целое поле граблей при работе с указателями на точки крепления. Механизм гибкий и мощный, но требующий внимания при отслеживании пустых указателей.
igel :
А как я понимаю, большинство носителей в Орбитере сейчас так и делаются.

Вот этого не знаю. Точно знаю, что так делают Юрий Кульчицкий, Роман Васильев (aka Bloodest) и я, пошедший по их стопам Улыбка.
_________________
Я бы изменил этот мир, но Бог не дает мне исходников...
    Добавлено: 21:10 17-02-2007   
igel
 100 EGP


Рейтинг канала: 4(86)
Репутация: 14
Сообщения: 755

Зарегистрирован: 12.06.2006
Спасибо за подсказки, сразу буду знать, где соломку стелить. И потом, если окажется, что универсальность слишком сложна и не стоит выделки - всегда можно пойти по пути наименьшего сопротивления и сделать только под конкретную семерку. И вот тогда точно нет сомнения, под чью именно Улыбка
    Добавлено: 21:32 17-02-2007   
Kulch
 105 EGP


Рейтинг канала: 2(21)
Репутация: 29
Сообщения: 604
Откуда: Россия, Санкт-Петербург
Зарегистрирован: 24.08.2004
astronavt :
Целое поле граблей при работе с указателями на точки крепления. Механизм гибкий и мощный, но требующий внимания при отслеживании пустых указателей.

а зачем с ними работать вообще?
astronavt :
При таком подходе, правда, нужно обеспечить, чтобы ПН сама реагировала на оделение. А для этого нужно работать с указателями точек крепления, что создает трудности при восстановлении состояния аддона после загрузки из сохранения.

непонятно. мне непонятно, зачем указатели? неужели не хватает штатных методов и функций API? то ли я не понимаю о чем речь...
_________________
Юрий Кульчицкий aka Kulch
    Добавлено: 21:44 17-02-2007   
astronavt
 86 EGP


Рейтинг канала: 1(3)
Репутация: 35
Сообщения: 403
Откуда: Новочеркасск
Зарегистрирован: 11.01.2006
Kulch :
а зачем с ними работать вообще?

Kulch :
непонятно. мне непонятно, зачем указатели? неужели не хватает штатных методов и функций API? то ли я не понимаю о чем речь...


Указатели я использую, чтобы, например третья ступень читала параметры второй ступени, но не те, что входят в структуру класса VESSEL2, а добавленные лично мной. Для этого необходим указатель на корабль, а его я получаю через точку крепления. Сделано так, чтобы не зависеть от имен объектов, чтобы можно было спокойно переименовывать их в файлах сценария (например, делая несколько столов/ракет в сценари).

Может я конечно изобретаю велосипед Улыбка. Такое бывает Хы....
_________________
Я бы изменил этот мир, но Бог не дает мне исходников...
    Добавлено: 22:40 17-02-2007   
Kulch
 105 EGP


Рейтинг канала: 2(21)
Репутация: 29
Сообщения: 604
Откуда: Россия, Санкт-Петербург
Зарегистрирован: 24.08.2004
ясно. ну я в работе с указателями не силен, но вот такие вещи делаю постоянно:

это функция, которая посылает управляющие сигналы с РН на башню (об отводе ферм, например):

void EnergyC::SendMessageToTower(int signal){
if(tower == NULL)
return;
VESSEL *towerV = oapiGetVesselInterface(tower);
OverShip *tow = (OverShip*)towerV;
tow->SendSignal(signal);
}


здесь tower - это OBJHANDLE, а OverShip - базовый класс, от которого наследуются и башня и ступени ракеты. Таким образом, через виртуальный метод SendSignal базового класса OverShip я могу управлять другими кораблями.
_________________
Юрий Кульчицкий aka Kulch
    Добавлено: 18:13 18-02-2007   
igel
 100 EGP


Рейтинг канала: 4(86)
Репутация: 14
Сообщения: 755

Зарегистрирован: 12.06.2006
Вопрос-уточнение по размерности блока Л, для мешей и ОСОБЕННО для точного сопряжения с блоком И (и с выводимыми нагрузками). Точной цифири достать не могу, да и картинок не очень, хотя есть кое-что. Промеры очень приблизительные, с крупномасштабных разрезов всей семерки. Посему если у кого-то есть уточнения цифр - буду рад! Также, прошу прощения за несколько криворучный эскиз (кульманов, циркулей, транспортиров не держим).

http://members.shaw.ca/atil11/singles/LDraft.gif
    Добавлено: 06:24 22-02-2007   
Bloodest
 155 EGP


Рейтинг канала: 3(40)
Репутация: 18
Сообщения: 944
Откуда: Питерские мы
Зарегистрирован: 07.10.2004
На счет циркулей. MS Visio рулит.
Берешь фотку ( много фоток)). Для начала одну. Брешь в визио лист - изменяешь масштаб под обект. Вставляешь фотку в лист. Обводишь линиями, кругами и проч фотку. Фотку удаляешь. Конвертишь-сохраняешь полученный набросок в кад-формат.
Кад форматку вставляешь в макс.
Получается нечто вроде пластины на которой выступы - вмятины - дырки = барельеф объекта (хаос - импрессонизмус - ужо само по себе произведение исскуства). Залезаешь в свойства барельефа - назаначаешь не отображать серым во фризе. Фризишь и просто ваяешь по нему как по шаблону.
Получается - супер!
Второй метод - быстрее но гоморней. Делаешь материал с текстурой - фоткой, в его свойствах ставишь - отображать текстуру на виде. На виде - делаешь пластинку размером в фотку - на нее кладешь этот мат и ставишь на виде 3D отображение . Вуаля - мона рисовать по фотке.
Минусы - качество отображения фотки на виде желает лудшего - прямо скажу полное г. Наровит отображать ваяемые объекты тож в 3D - перекрывают\скрываются (за) картинку. Зафризишь пластинку - пропадет текстура - чуть зацепишь - сдвинется - гомор одним словом.
Плюс - мона прямо ваять объект который сфоткан под углом - пластинку надоть развернуть под этот угол (хотя ни что не мешает поступить так с барельефом)...
    Добавлено: 14:31 22-02-2007   
Kulch
 105 EGP


Рейтинг канала: 2(21)
Репутация: 29
Сообщения: 604
Откуда: Россия, Санкт-Петербург
Зарегистрирован: 24.08.2004
Роман, можно поподробней про размещение фона на виде в Максе? Я таким способом пытаюсь сделать байконуровский УКСС со всеми причиндалами. Так вот при попытке подложить фон bmp 6000 на 6000, макс безбожно огрубляет имидж (словно уменьшает его) и он, имидж, становится непотребным. Есть здесь какой-нибудь выход?
_________________
Юрий Кульчицкий aka Kulch
    Добавлено: 15:01 22-02-2007   
astronavt
 86 EGP


Рейтинг канала: 1(3)
Репутация: 35
Сообщения: 403
Откуда: Новочеркасск
Зарегистрирован: 11.01.2006
Kulch :
Есть здесь какой-нибудь выход?


Есть. Настройте макс таким вот образом.
http://texband.nm.ru/pub/dimonspage/orbiter/3dsmax.JPG
_________________
Я бы изменил этот мир, но Бог не дает мне исходников...
    Добавлено: 20:08 22-02-2007   
igel
 100 EGP


Рейтинг канала: 4(86)
Репутация: 14
Сообщения: 755

Зарегистрирован: 12.06.2006
astronavt, так как насчет сопрягаемых с блоком И рамеров? Какого диаметра там опорное кольцо, с учетом площадки под обтекатель?

...А моделировать я все равно сам люблю, из примитивов. В GMax-e. И не люблю детализировать слишком уж глубоко, только то, что характерно, что бросается в глаза или важно по функции. И текстуры не люблю (потому что не умею с ними работать, а может и наоборот, не успел научиться, потому что не люблю Улыбка )
    Добавлено: 02:14 23-02-2007   
astronavt
 86 EGP


Рейтинг канала: 1(3)
Репутация: 35
Сообщения: 403
Откуда: Новочеркасск
Зарегистрирован: 11.01.2006
igel :
Какого диаметра там опорное кольцо, с учетом площадки под обтекатель?

2.8 метра внешний диаметр, 2.74 - внутренний.
igel :
И текстуры не люблю

Иногда без них не обойтись...
_________________
Я бы изменил этот мир, но Бог не дает мне исходников...
    Добавлено: 13:21 23-02-2007   
Kulch
 105 EGP


Рейтинг канала: 2(21)
Репутация: 29
Сообщения: 604
Откуда: Россия, Санкт-Петербург
Зарегистрирован: 24.08.2004
astronavt :
Есть. Настройте макс таким вот образом.
http://texband.nm.ru/pub/dimonspage/orbiter/3dsmax.JPG

Вот спасибо!
_________________
Юрий Кульчицкий aka Kulch
    Добавлено: 15:20 23-02-2007   
igel
 100 EGP


Рейтинг канала: 4(86)
Репутация: 14
Сообщения: 755

Зарегистрирован: 12.06.2006
astronavt, вы меня слегка надули Улыбка. 2.74 - это диаметр по расширеной обратной юбке Союза. А у Молнии ее не было, там весь цилиндр одного диаметра, как у Востока. Сделал я фермочку блока Л, начал примеривать в тестовом сценарии - и очень удивился Улыбка

Впрочем, это фигня. Фермочку я масштабом уменьшу "по месту", пока не влезет, для этого мне даже размер точный уже не нужен. А вот что хотелось бы - в какой-нибудь полседующей бете, как будет время, добавьте pls опцию МОЛНИЯ в конфигурацию блока И, чтобы она по ней вообще не грузила меш этого обратно-конического адаптера. Я и сам могу, но лучше, когда за код отвечает один человек, разработчик. Тем более это не срочно, у меня только ранние пробы, а для них конус не мешает.

Ну и наверное вторую половинку востоковского обтекателя без дырки под люк - он вполне должен подойти для Молнии. Или там уже есть без дырки, только я не заметил? Мне-то пока для тестов с дыркой даже прикольнее, видно, что внутри Улыбка
    Добавлено: 20:24 26-02-2007   
astronavt
 86 EGP


Рейтинг канала: 1(3)
Репутация: 35
Сообщения: 403
Откуда: Новочеркасск
Зарегистрирован: 11.01.2006
igel :
добавьте pls опцию МОЛНИЯ в конфигурацию блока И, чтобы она по ней вообще не грузила меш этого обратно-конического адаптера.

Ну это, естественно, сделаю.
igel :
Ну и наверное вторую половинку востоковского обтекателя без дырки под люк - он вполне должен подойти для Молнии. Или там уже есть без дырки, только я не заметил?

Конечно есть и без дырки. А в сценарии можно настроить обтекатель так, что будет грузиться меш без дырки
Половинка обтекателя:
Код:
Fairing01:fairingProgress
 STATUS Landed Earth
 POS 63.33 45.92
 HEADING 0
 NAVFREQ 94 481
 FTYPE 1
 MESHNAME r7_fairing_vostok_01
 APOINT 0.02 0.0 -1.45
 ATTACHED 0:0,Stage3
END

Параметр MESHNAME опрделяет что будет грузиться в качестве меша. И вообще, пользователь волен перекрашивать и переделывать меши как заблагорассудится, созраняя только положение центра масс. Я вот толькоа не помню что без дырки r7_fairing_vostok_01.msh или r7_fairing_vostok_02.msh. Ну это нетрудно посмотреть методом тыка Улыбка

P.S.: Ну, собственно, проверил. Меш без отверстия - r7_fairing_vostok_02.msh
Пишем в сценарии:
Код:

Fairing01:fairingProgress
 STATUS Landed Earth
 POS 63.33 45.92
 HEADING 0
 NAVFREQ 94 481
 FTYPE 1
 MESHNAME r7_fairing_vostok_02
 APOINT 0.02 0.0 -1.45
 ATTACHED 0:0,Stage3
END
Fairing02:fairingProgress
 STATUS Landed Earth
 POS 63.33 45.92
 HEADING 0
 NAVFREQ 94 481
 FTYPE 0
 MESHNAME r7_fairing_vostok_02
 APOINT 0.02 0.0 -1.45
 ATTACHED 0:1,Stage3
END

И получаем

_________________
Я бы изменил этот мир, но Бог не дает мне исходников...

Последний раз редактировалось: astronavt (22:24 26-02-2007), всего редактировалось 2 раз(а)
    Добавлено: 21:27 26-02-2007   
Канал Orbiter: «Блок Л для семерки»
На страницу: 1, 2, 3, 4, 5, 6, 7  След. | Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Неизвестно чего сильнее ждали пилоты этой ночью - Нового года или 100-той страницы этой темы" (Размышляет Akira3000)

  » Блок Л для семерки | страница 1
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | X4: Foundations | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18