ПроектыФорумУтилиты

LODka 3D - наш ответ MilkShape'у ! ( редактор низкополигонных моделей ) (35 стр)

Страницы: 134 35 36 3740 Следующая »
#510
18:44, 12 июня 2010

Я так понимаю, к сожалению, по ЛОДке можно забыть((

#511
19:21, 30 окт 2010

Привет!
Программой почти не занимался всё это время, просто времени стало мало, а когда появляется, то тянет потратить его на что-то другое.

В общем слегка обновил ЛОДку, загрузчик и демки.

ЛОДка: http://lodka3d.narod.ru/lodka3d-setup.exe
Демки: http://lodka3d.narod.ru/lodka3d-demos-setup.exe

GLScene изменилась и загрузчик с демками из-за этого перестали работать, теперь опять работают. Добавил ещё демку с вершинной анимацией, где можно независимо друг от друга проигрывать анимации рук, ног, и прочие. Я её делал ещё тогда, но вроде так и не выложил.

ЛОДку тоже пришлось довольно сильно переделывать под новую GLScene. Если что-то из функций слетело, стало работать не правильно, или выдаёт ошибки - пишите, скорее всего это связано с переездом и не так сложно поправить. Плагины временно отключил по этой же причине. Вообще их надо бы как-то переделать, подружить с C++. Но не знаю как.

Изменился внешний вид. Теперь под XP-манифест.
Был такой:
http://lodka3d.narod.ru/lodka3d-scr4.gif
http://lodka3d.narod.ru/lodka3d-scr5.gif

Стал такой:
http://lodka3d.narod.ru/lodka3d-scr8.gif
http://lodka3d.narod.ru/lodka3d-scr9.gif

Поставил опцию ограничения FPS ( Set Max FPS ). Чтобы видеокарты не шумели выдавая предельные значения числа кадров в секунду. Плавность вращений регулируется через Smooth Camera.

Добавил галочку Tx на закладке Mouse, если её включить, то при сдвиге вершины треугольника, текстурные координаты пересчитаются на её новое положение. Без этой опции, при сдвиге вершины, текстура либо сомнётся, либо растянется, и придётся переотекстуривать, а с этой опцией, текстура как бы сдвинется без сжатий и растягиваний. Но, к сожалению, перерасчёт происходит не очень качественно, поэтому сдвигать точки лучше по одной, и в плоскости треугольника. В крайнем случае, если возникают несоответствия, можно нажать на Undo, и сдвинуть ещё раз.


DDMZ
> Капитан, прикрути к лодке скриптовый язык какой-нибудь, чтобы хоть была
> возможность расширения : )
> Чего-то ты надолго пропал... в армию наверное?

Чур меня. :)
Скриптовый язык можно прикрутить к плагину, то есть написать плагин, который бы запускал скрипты, которые бы модифицировали модель. Но это не так просто.

> Последняя версия редактора неможет загрузить эту:
> http://www.gamedev.ru/download/?id=8620

Модели по ссылке нет. Наверное из-за давности.

#512
21:24, 1 ноя 2010

2 Капитан
2 Года, забивания и не посещения форума, как не стыдно ? :)
В следующий раз если решишь проект забросить, сделай его опенсорсным, ок? ;)

Есть планы по портированию на другие ос, например линух/убунту ?
Под эти ос есть компиляторы паскаля(делфи).

>Скриптовый язык можно прикрутить к плагину, то есть написать плагин, который бы запускал скрипты, которые бы модифицировали модель.
Я имел ввиду более глубокое внедрение. Если можешь сделать поддержку скриптовых плагинов, через плагин реализующий это, то тоже думаю будет неплохо.
Самое простое с чего можешь попробовать - это прикрутить скриптам, возможность экспорта/импорта из других форматов.
Скриптовых движков хороших много, паскаль версий конечно меньше. Но можно взять скомпилированную DLL скриптового движка и к нему файлы заголовков или как они там в паскале зовутся. Хорошие движки например:AngelScript, LUA, Squerell, simion gs9.
Вот пример результата гугла: http://www.spreendigital.de/blog/2009/09/28/lua-5-1-for-delphi-2010/

#513
12:48, 4 ноя 2010

Капитан
Приветствую!
А я уж был уверен, что уже никогда не увижу новую версию "Лодки".
Я занимаюсь моддингом DOOM 1-2, работаю с портами, которые поддерживают модели. Так вот, ваш редактор - единственный на данный момент, через который можно легко и просто, без чтения сотен страниц мануалов, редактировать .md2 и .md3 модели с фреймовой анимацией (а именно эти два типа моделей понимает лучший из портов Doom1-2 - GzDoom).

Но вот в чём проблема. Редактировать можно сколько угодно. А вот с сохранением возникают проблемы. Модели формата .md2 после сохранения не читает, кроме Лодки, не один редактор, равно как и не понимает GzDoom. А при сохранении в формате .md3 - сбиваются координаты наложенных текстур, если в модели больше 10 полигонов =(

Я так до сих пор и не понял - это проблема моих кривых рук (мейби, где-то флажок не поставил?) или редактора?
Заранее спасибо за ответ!

#514
23:08, 8 ноя 2010

DDMZ
> 2 Капитан
> 2 Года, забивания и не посещения форума, как не стыдно ? :)
> В следующий раз если решишь проект забросить, сделай его опенсорсным, ок? ;)

Если захочется, то конечно. ;)

> Есть планы по портированию на другие ос, например линух/убунту ?

Нету.

> Я имел ввиду более глубокое внедрение. Если можешь сделать поддержку скриптовых
> плагинов, через плагин реализующий это, то тоже думаю будет неплохо.
> Самое простое с чего можешь попробовать - это прикрутить скриптам, возможность
> экспорта/импорта из других форматов.
> Скриптовых движков хороших много, паскаль версий конечно меньше. Но можно взять
> скомпилированную DLL скриптового движка и к нему файлы заголовков или как они
> там в паскале зовутся. Хорошие движки например:AngelScript, LUA, Squerell,
> simion gs9.
> Вот пример результата гугла:
> http://www.spreendigital.de/blog/2009/09/28/lua-5-1-for-delphi-2010/

Это я не знаю, и потом у меня Дельфи 7, а там Дельфи 2010.

Знаю DelphiWebScript ими я пытался сделать создание примитивов, но наткнулся на подводный камень, что там проблемы с передачей массивов переменной длинны. Думаю такие же подводные камни есть во многих движках, просто заранее о них не знаешь, а узнаёшь только тога когда уже потратил на них много сил и времени, и вот в конце пути возникает какая-то непреодолимая стена.

И потом, кто будет писать? Так вообще программисту всегда удобнее писать на том языке, который он знает, нежели выучить новый язык. Если бы у кого-то из знающих Дельфи было желание, можно было давно на основе плагина DemoShowInfoWithForm, написать экспорт чего-нибудь. Там в нём одна большая структура TPlugDataA, в которой все данные которые использует ЛОДка, в виде массивов и простых данных, то есть без классов, объектов и всего того где есть код и в чём нужно сидеть и разбираться. Просто структура данных, с мешами, материалами, текстурами и прочим. Далее там в плагине строчками "TreeView1.Items.AddChild(" записываются в дерево данные из этой структуры и выводятся на экран для информации. Можно выводить их не на экран, а в файл, в формате какой-нибудь игры. Так, что если бы у кого-то было желание, то давно можно было бы написать какой-нибудь экспорт. То есть дело в желании.

И в количестве программистов. Такое ощущение, что с ходом времени их становится всё меньше и меньше. Та же GLScene. Вроде мэйнстрим сейчас - это шейдеры. Во всех играх они. А в GLScene как два-три года назад bump-шейдеры полноценно не поддерживались, так и сейчас не поддерживаются. Начал прикручивать их к ЛОДке, так со скелетной анимацией не работают, с вершинной не работают источник света только один поддерживается. Ну и что теперь делать? Стирать их что-ли?


-=2002=-
> Капитан
> Приветствую!

Приветствую!

> Но вот в чём проблема. Редактировать можно сколько угодно. А вот с сохранением
> возникают проблемы. Модели формата .md2 после сохранения не читает, кроме
> Лодки, не один редактор, равно как и не понимает GzDoom. А при сохранении в
> формате .md3 - сбиваются координаты наложенных текстур, если в модели больше 10
> полигонов =(

Посмотрел md3, вроде там, если загрузить, сохранить и опять загрузить, то текстура переворачивается вверх-ногами. Если выделить все треугольники и переключиться в редактор текстуры F4, то это видно. Вроде исправил это. По-крайней мере попытался. Если не получилось, или ещё что-то не так, могу ещё посмотреть.

Про md2 - что пишут программы в которых не удаётся модели загрузить?

md2, вообще - это формат с чёрным ящиком. То есть с блоком неких данных, которые неизвестно что означают. В принципе по-моему большинство форматов - это форматы с чёрными ящиками. В md2 такими данными были некие данные OpenGL, о которых тогда никто ничего не знал, поэтому я просто записывал их в виде текста в File->LODfile info. Если загрузить модель в md2, а потом туда зайти. то там будут эти данные. Там же их можно отредактировать или заменить, если известно что они означают. При сохранении ЛОДка спрашивает сохранять эти данные или нет. Но сохраняет она именно то, что находится в File->LODfile info , то есть, если их самому там не отредактировать, то в неизменном виде, что было - то и осталось. Подозреваю, что дело именно в этих данных. Может быть в чём-то другом, но надо знать в чём именно.


--------------------------------------------
Сделал новую версию.

LODka3D 2010-11-01

Добавил Bump. Который работает только с первым источником освещения, не работает в скелетных и вершинных анимациях, и возможно сам шейдер бампа не самый удачный. Но это всё из GLScene. Когда они сделают поддержку, тогда и в ЛОДке можно будет доделать.

Выглядит модель с бампом и без него вот так:
Простенький Bump из GLScene | LODka 3D - наш ответ MilkShape'у ! ( редактор низкополигонных моделей )
http://lodka3d.narod.ru/lodka3d-logo-bump.jpg

Текстура на плоском кубике. Возможно это не самый удачный пример, просто на скорую руку. У бампа три текстуры - основная, с картинкой; текстура нормалей, создаётся в Фотошопе плагином Normal Map filter ( http://developer.nvidia.com/object/photoshop_dds_plugins.html ) и текстура блеска, на ней, где белое - там блестит, где чёрное - там нет. Три текстуры соединяются воедино и получается такой эффект.


Вынес настройки на отдельную форму, открывающуюся по F11. Так просто удобнее подстраивать сетку там, или размеры чего-нибудь, чтобы не надо было каждый раз лезть в меню, а можно было просто крутить ролик мыши туда-сюда и смотреть результат.

Dent
> предлагаю реализовать возможность ставить рисунок на бэкграунд в режиме 4-х
> видов(как это делается в 3d max или zanoza), иначе приходится готовить виды, не
> очень приятно.
>
> Хорошо бы еще если бы не требовался plane, т.е. тыкаю на рисунок который
> прикрепил к виду X/Y и точка появилась в плоскости (0,0,1,0)

Нашёл таки этот постинг от 24 июля 2008 года.

Да! Я сделал это! Все эти годы, мы не покладая рук работали над Вашим заданием ... ;)

Вот так вот это выглядит: http://lodka3d.narod.ru/lodka3d-backgroundImage.gif

Для каждого вида можно загрузить свою картинку. Задать ей позицию, масштаб и повёрнутость. Кликать можно прямо по "воздуху". Точки будут ставиться на нулевую плоскость.


Нарисовал ещё картинку, как пользоваться опцией Tx, а то она не очевидная:
http://lodka3d.narod.ru/lodka3d-tx-options.gif

Все картинки поместил в раздел новостей на сайте ( http://lodka3d.narod.ru/#News ), там они по-умолчанию не загружены, чтоб не тормозили, а чтоб появились нужно навести на ссылки мышь.

#515
13:59, 9 ноя 2010

2 Капитан
>Это я не знаю, и потом у меня Дельфи 7, а там Дельфи 2010.
насколько я знаю касательно приведённого примера, там не столь важна версия паскаля :)
И это был приведен один из результатов гугла, гугол выдает множество разных статей и примеров, в томчисле и с упоминанием делфи 7.
Вот например ещё несколько врапперов: Lua4Delphi, luadc1, luawrap, thlua_5.0
>проблемы с передачей массивов переменной длинны
В примерах, показано в том числе и как работать с таблицами/массивами.

>И потом, кто будет писать?
Тот кто знает тот скриптовый двиг который ты используешь :)
>Так вообще программисту всегда удобнее писать на том языке, который он знает, нежели выучить новый язык.
LUA довольно прост, чем-то похож на басик.
А насчёт удобнее писать, это момент спорный, писать то может и удобно, а отлаживать и уж тем более модифицировать плагин гороаздо удобнее в виде скрипта который хранится в обычном текстовом файле.
И особенно повседневный утрированный пример: я сделал плугин который создает куб. 1. Вариант плугин скомпилирован в dll. У стороннего юзера он почем-то вылетает (например ты модифицировал интерфейс с модулями или что-нибудь ещё). Юзер пишет фидбак мне и ждёт решения проблемы. 2. Плугин в текстовом виде (для защиты можно и байт код сделать) - прога не будет вылетать, а скрипт не будет выполнятся сообщая об ошибке в лог. Что может сделать юзер? исправить ошибку сам.
А вот другой вариант: Юзеру нужен не куб, а прямоугольник! в случае с DLL ему нужно будет разбиратся как писать плугины, или просто забить. В случае текстового файла - открыл поменял несколько строчек и готово. Плагины экспорта/импорта можно будет клепать массово.

>Если бы у кого-то из знающих Дельфи было желание, можно было давно на основе плагина DemoShowInfoWithForm, написать экспорт чего-нибудь.
1. Не у всех есть делфи, и не все его знают.
2. В случае компилированных плагинов в DLL, Ты сам должен позаботится об инструментах и SDK. В том числе и для языков отличных от делфи.
3. Что касается плугинов, то у тебя ничего не документировано.

Исключения бывают когда твой SDK портирует кто-то дургой - кто знает помимо своего языка программирования ещё и делфи.
В случае применения скриптов, документация по забинденым функциям всё-же потребуется.


>Такое ощущение, что с ходом времени их становится всё меньше и меньше.
они просто становятся ленивее :) и хотят упрощения разработки и отладки.

>Та же GLScene.
эту штуку я не знаю и далёк от неё, но просматривая внутренности, я заметил что это всего лишь обертка над опенгл функциями(т.е. содержит внутри то что может написать сам программист используя функции опенгл), неужели использовать эти функции в делфи самостоятельно без обертки в виде глсцене нельзя?
Я просто не знаю жизнеспособен ли в делфи огл, отдельно от глцена или нет :)


--- Добавлено ---
Сам отвечу на последний вопрос.
Посмотрел уроки нехе с кодом для делфи. Там никакой привязки к глсцене нет, можно использовать чистый опенгл и делать всё что тебе надо, полная свобода не ограниченная рамками глсцены.

#516
1:18, 13 ноя 2010

DDMZ
> 3. Что касается плугинов, то у тебя ничего не документировано.

Формат lod-файла документирован более-менее полно. Однако интересующихся тоже не очень много.

Плагины я отключил потому, что хочу переделать их на формат lod, чтобы данные плагинам и от них передавались именно в этом формате. Чтоб не было разницы сохранять данные на диск или посылать плагину; или загружать их с диска и получать от плагина. Правда это не так просто, формат требуется дополнить, например, сохранением картинок, и немного переделать некоторые части.

Хотя вообще не очень уверен, хорошая ли это идея и получится ли её хорошо реализовать. Надо подумать.


> > а же GLScene.
> эту штуку я не знаю и далёк от неё, но просматривая внутренности, я заметил что
> это всего лишь обертка над опенгл функциями(т.е. содержит внутри то что может
> написать сам программист используя функции опенгл), неужели использовать эти
> функции в делфи самостоятельно без обертки в виде глсцене нельзя?
> Я просто не знаю жизнеспособен ли в делфи огл, отдельно от глцена или нет :)

Жизнеспособен, ведь GLScene написана на Дельфи.

GLScene - это не только функции, но в первую очередь удобные компоненты и классы. Функции там в основном простые в модуле VectorGeometry ( http://glscene.svn.sourceforge.net/viewvc/glscene/trunk/Source/Ba… p;view=markup ), нужные для работы с векторами, матрицами и тому подобное. Можно обойтись и без них ... если написать свои такие же. Но зачем?


Можно ли обойтись без классов и компонентов GLScene? Можно. Давай эксперимент проведём, вот, скажем скелетная анимация. Напиши на чистом OpenGL проигрывание скелетной анимации Тринити. Интересно сколько это займёт.
В GLScene, см. мою демку SkeletonAnimation, там одной строкой модель грузится

  GLActor1.LoadFromFile('TRINITYrage.lod');

Другой запускается анимация:

  GLActor1.SwitchToAnimation('walk');

Всё.

В это время какой-нибудь писатель на чистом OpenGL ломал бы голову как правильно нарисовать кубик и угробил бы раз в сто больше времени.

В С++ даже не знаю, есть ли что-нибудь сравнимое по популярности и удобству с GLScene.


Насчёт скриптов, хочешь напиши сам плагин который бы поддерживал скрипты. Ну, чтобы он грузил lod-файл, применял к нему скрипты и сохранял на диск. А я подумаю, как сделать, чтобы ЛОДка посылала ему данные в виде lod-файла, и забирала их обратно.

#517
7:08, 19 ноя 2010

DDMZ

Кстати, если нужно написать плагин который создаёт кубик, или что-то такое, что влияет только на меши, то разбирать на структуры те блоки lod-файла, которые не с мешами - не обязательно. Можно просто прочитать их в виде массива байтов, а потом эти массивы байтов записать обратно в файл. Таким образом можно даже не в вникать в то, что в них записано.

-=2002=-

Если с md3 проблема не разрешилась, то говорите, я ещё посмотрю что там.

#518
11:02, 19 ноя 2010

2Капитан
Вы зарегестрированы на GLScene.ru ? если да, то под каким ником?

Когда они сделают поддержку, тогда и в ЛОДке можно будет доделать

Проблема не в бамп-шейдере, а в просчете касательных для любого типа геометрии. Этой задачей врядли кто будет заниматься, кроме действительно заинтересованых.

#519
6:11, 20 ноя 2010

YarUnderoaker

Привет, разработчикам GLScene! Если это конечно не совпадение ников.

> Вы зарегестрированы на GLScene.ru ? если да, то под каким ником?

Уже плохо помню. Меня там заббанили много лет назад с формулировкой "за то, что рекламировал ЛОДку", хотя я лишь отвечал на вопросы по ней. А потом я подумал, что в общем ничего плохого в этом нет, потому, что удобнее, когда всё в одном месте и не надо отвечать на одни и те же вопросы в разных местах. Да и времени как-то не очень много последнее время.

> Проблема не в бамп-шейдере, а в просчете касательных для любого типа геометрии.
> Этой задачей врядли кто будет заниматься, кроме действительно заинтересованых.

А в чём заключается проблема пересчёта касательных? Ведь в GLScene в файле GLVectorFileObjects есть функция BuildTangentSpace, которая рассчитывает нормали и касательные. Что мешает вызывать её перед отрисовкой каждого кадра анимации?

В принципе подружить скелетную анимацию с бампом можно и без правки GLScene, своими силами. Можно анимацию в TGLActor запустить невидимой, постоянно считывать из него положения вершин, перегружать их в какой-нибудь специальный TGLFreeForm в виде статичной модели, делать ему BuildTangentSpace для расчёта нормалей и касательных, и выводить на экран как обычную статичную модель. Если это делать с высоким FPS, то будет аналог анимированного TGLActor, только с работающим бампом. Это совсем не оптимально, будет тормозить, но как вариант думаю возможно.

Но тут встаёт другой вопрос, если это будет только в ЛОДке, но не будет в GLScene, то как людям этим будет воспользоваться?

#520
1:01, 19 дек 2010

Было бы неплохо добавить возможность сдвига и поворота на точное расстояние(угол), а не "на глаз". Так же, как это реализовано в графе создания примитивов

#521
1:11, 19 дек 2010

я например, максист, эта прога не для меня?+)

#522
1:22, 19 дек 2010

Unter(gotik)
не автора спрашивай, а себя.

#523
2:04, 19 дек 2010

BenGAMEn
я просто залез и ужаснулся+)
вот с испугу не то ляпнул

#524
13:32, 19 дек 2010

Я детально не разбирался, но вроде BuildTangentSpace не работает для всех типов загружаемых файлов, потому что классы-контейнеры геометрии разные.
Вообще в GLVectorFileObjects и в векторных файлах сам черт ногу сломит - нагромождение кода разных авторов за несколько лет разработки,
я пробовал разделить рендер и загрузку - не асилил. Поэтому делаю все заново, с другим подходом к задаче.
Самый простой способ обойти проблему - рисовать модель с геометрическим шейдером, который на лету расчитывает касательные.

Страницы: 134 35 36 3740 Следующая »
ПроектыФорумУтилиты

Тема в архиве.