опять эти х файлы...

Работа с 2D и 3D графикой, видео, звуком.

Модератор: Mikle

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

опять эти х файлы...

Сообщение d3drm » 07.10.2004 (Чт) 11:39

я беру массив точек модели и могу ее перерисовывать как хочу, НО если в модели несколько текстур уже не получается этого.


мне нужно узнать, какую часть модели прорисовывать с одной текстурой(материалом), а сколько - сдругой, третей и т.д.

есть идеи?
ХЎ

Yurich
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 675
Зарегистрирован: 05.03.2003 (Ср) 3:43
Откуда: DONBASS/Gorlovka

Сообщение Yurich » 07.10.2004 (Чт) 19:05

Принципиально задача решабельная, но с упорами. Если внимательно смотреть мои примеры по анимации, то там видно, что меш грузится в память в порядке:

Select Case MainData.GetType()
Case "TID_D3DRMMesh"
Set ChildXMesh = New XMesh
ChildXMesh.CreateMeshFromData MainData
...
End Select

Public Sub CreateMeshFromData(ParentData As DirectXFileData)
Set Mesh = D3DX.LoadMeshFromXof(ParentData, _
D3DXMESH_MANAGED, D3DDevice, _
RetBuffer, MtrlBuffer, MaterialsCount)
InitMaterials
End Sub

Для решения задачи Sub CreateMeshFromData надо будет досконально переработать, или дополнить существующую (т.к. она грузит меш фрейма только целиком, без деталей). А до этого посмотреть х-файл в текстовом виде, например, такой кусочек:

Frame x3ds_Cylinder01 {
FrameTransformMatrix {
1.000000, 0.000000, 0.000000, 0.000000, ' тут должно быть понятно
...
}
Mesh Cylinder01 { ' непосредственно меш
43; ' колич. вертексов
0.000000; 0.000000; 0.000000;, ' кординаты вертексов
...
72; ' колич. полигонов
3;0,1,2;, ' индексы вертексов в полигонах
...
MeshMaterialList {
1; ' КОЛИЧЕСТВО материалов в меше!
72; ' колич. полигонов
0, ' ВОТ ОН, индекс материала для полигона!
...
{x3ds_mat_x2_-_Default} ' имя материала
' дальше идут номали и всяк не нужный здесь мусор
}
}
}

А теперь сам процесс загрузки. Извините за возможные ошибки, пишу сходу, без проверки:

Dim FrameName As String
Dim VertNumbers As Long
Type Vert
x As Long
y As Long
z As Long
End Type
Dim Vertices() As Long
Dim PolygonNumbers as Long
Type Polygon
VertNum As Long
Vi1 As Long
Vi2 As Long
Vi3 As Long
End Type
Dim Poly() As Polygon
Dim MaterialsCount As Long
Dim PolyMatIndex() As Long

Public Sub CreateMeshFromData(ParentData As DirectXFileData)
Dim S as Long
Dim ChildData As DirectxFileData
FrameName=ParentData.GetName()
ParentData.GetDataFromOffset "", 0, 4, VertNumbers
Redim Vertices(VertNumbers)
S= Len(Vertices(0)* VertNumbers
ParentData.GetDataFromOffset "", 4, S, Vertices(0)
S=S+4
ParentData.GetDataFromOffset "", S, 4, PolygonNumbers
Redim Poly(PolygonNumbers)
ParentData.GetDataFromOffset "", S+4, Len(Poly(0))*PolygonNumbers, Poly(0)
' Это были только полигоны и вертксы, дальше индексы материалов
do
Set ChildData = ParentData.GetNextObject()
If ChildData is Nothing Then Exit Sub
If ChildData.GetType="TID_D3DRMMeshMaterialList" Then
GetMatIndex ParentData
End If
loop
End Sub

Private Sub GetMatIndex(ParentData As DirectXFileData)
ParentData.GetDataFromOffset "", 0, 4, MaterialsCount
ReDim PolyMatIndex(MaterialsCount)
ParentData.GetDataFromOffset "", 0, 4 * MaterialsCount, PolyMatIndex(0)
End Sub

Теперь у Вас есть все, что надо, Применяйте!

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 08.10.2004 (Пт) 20:20

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

И еще : где можно найти модели *.x с анимацией костей и как их делать?
ХЎ

Yurich
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 675
Зарегистрирован: 05.03.2003 (Ср) 3:43
Откуда: DONBASS/Gorlovka

Сообщение Yurich » 09.10.2004 (Сб) 9:19

d3drm писал(а):Эх, ничего тут непонятно. Пробовал - вылетает с ошибкой


Вопросы на "засыпку":
1. Модель костяшная?
2. В каком месте вылетает? Если включен полноэкранный режим, переведи в оконный. Тогда через брекпоинты сможешь найти точку вылета.
3. Как представляешь себе вывод хар-к, если в модели туча полигонов?

d3drm писал(а):где можно найти модели *.x с анимацией костей и как их делать?


Извини, где найти не знаю. Сам делать ещё не пробовал.

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 09.10.2004 (Сб) 10:49

1. нет, модель без анимации вообще
2. так и есть, но я точно не могу сказать в чем ошибка все равно, так как код писал не совсем понимая его ))) то есть точно даже не могу сказать что такое я сделал )))
3. мне нужно только узнать сколько полигонов рисовать с той или иной текстурой и материалом, больше ничего...
ХЎ

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 12.10.2004 (Вт) 19:08

кто-нить попробуйте че-нить придумать, а???
ХЎ

Yurich
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 675
Зарегистрирован: 05.03.2003 (Ср) 3:43
Откуда: DONBASS/Gorlovka

Сообщение Yurich » 13.10.2004 (Ср) 21:56

Не нервничай, код почти готов. Пришли мейл под своим ником на aula@ghost.dn.ua с любым твоим (можно покрупнее и желательно в текстовом виде) x-файлом. Я подстрою програмку под него.
И про текстуры не забудь.
Жду...

Yurich
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 675
Зарегистрирован: 05.03.2003 (Ср) 3:43
Откуда: DONBASS/Gorlovka

Сообщение Yurich » 17.10.2004 (Вс) 4:26

Мужики, звыняйте! Универсала не получилось. Столкнулся с побочными проблемами, решение которых требует тучу времени (TransformMatrix и т.п.). Пример решения основной задачи тут.
Большой размер из-за картинок!
У вас нет доступа для просмотра вложений в этом сообщении.

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 21.10.2004 (Чт) 22:10

Не понял, а что это прога делает?
ХЎ

Yurich
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 675
Зарегистрирован: 05.03.2003 (Ср) 3:43
Откуда: DONBASS/Gorlovka

Сообщение Yurich » 21.10.2004 (Чт) 22:31

Такой вопрос могу воспринять только как камень в свой огород. Может мы чего-то не допоняли? Программа наклеивает на 3-угольный полигон модели любую текстуру, какую пожелаешь. Достаточно указать индекс полигона и выбрать для него текстуру из имеющихся в списке. Причем дополнительные текстуры изначально не имеют никакого отношения к модели. Может еще надо реализовать поддержку сведения (этим пока не занимался)? В том числе прога показывает индексы вертексов, относятсящихся к выбранному полигону и имя его тектуры.
И еще, х-модель может состоять из одного меша или нескольких. Причем каждый из мешей может иметь свою текстуру. Может ты пытаешься перерисовать недоступный меш?

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 22.10.2004 (Пт) 10:48

айайай.... столько кода и все в пустую! мне не натягивать надо, а узнать на имеющейся модели где текстура... ты перестарался )))) пасибо, буду разбирать!

не хочешь принять участие в проекте iRender?
ХЎ

Yurich
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 675
Зарегистрирован: 05.03.2003 (Ср) 3:43
Откуда: DONBASS/Gorlovka

Сообщение Yurich » 22.10.2004 (Пт) 15:23

Yurich писал(а):В том числе прога показывает индексы вертексов, относятсящихся к выбранному полигону и имя его тектуры.


Узнать по имени (индексу) текстуры индексы принадлежащих ей полигонов (то есть, где она находится) можно одним циклом. Простая обратная задача, СЭР! И почему считается, что я сам не буду использовать и улучшать этот код. Твоя идея мне изначально понравилась, потому занялся этой работой.

Насчет iRender пока не могу принять однозначного решения, у меня примеры не заработали (хотя обещалось). Но в общем-то, я не против!

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 23.10.2004 (Сб) 11:05

вот и замечательно! нужны умные люди, работящие. Скоро сайт переедет на irender3d.com, домен уже куплен )))
ХЎ

Yurich
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 675
Зарегистрирован: 05.03.2003 (Ср) 3:43
Откуда: DONBASS/Gorlovka

Сообщение Yurich » 24.10.2004 (Вс) 1:58

Ok! Как новоселье состоится и будет нужна моя помощь, сообщи.

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 24.10.2004 (Вс) 20:31

я хочу сделать свой формат модели, переведя его из *.х, но пока проблема с материалами. Как только это уладится можно будет заниматься iR v2 и уже не вдвоем, как щас, а втроем - с тобой. Хочу сразу писать движок под VB, VC++ и Net, все осуществимо, вот только вся проблема с выбором моделей для движка.
ХЎ

Yurich
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 675
Зарегистрирован: 05.03.2003 (Ср) 3:43
Откуда: DONBASS/Gorlovka

Сообщение Yurich » 25.10.2004 (Пн) 22:11

Я тоже задумывался над созданием собственного формата, и решение не будет сильно сложным при условии отсутствия текстуры в файле (даже учитывая, что х-ы могли создаваться разными средствами). Для начала попробую текстовый файл, а потом уже бинарку.
С языками понятно, но имеет ли смысл привязывать движок к конкретным моделям (если только не для примера)?

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 26.10.2004 (Вт) 22:05

Формат *.х - очень неплох, но если мы из него сделаем свой, то у нас будет множество преимуществ, например можно будет сделать редактор, в которым разным частям модели можно будет задать прозрачность, или "материал отражения" (в плане сделать для него cube mapping) и прочее, чтобы не задавать все это програмным путем пользователю. Поэтому я так и озадачен этим конвертором, хочу чтобы все текстуры сохранялись и применялись как в *.x формате.
ХЎ

Yurich
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 675
Зарегистрирован: 05.03.2003 (Ср) 3:43
Откуда: DONBASS/Gorlovka

Сообщение Yurich » 04.12.2004 (Сб) 1:25

d3drm писал(а):Формат *.х - очень неплох, но если мы из него сделаем свой, то у нас будет множество преимуществ, например можно будет сделать редактор, в которым разным частям модели можно будет задать прозрачность, или "материал отражения" (в плане сделать для него cube mapping) и прочее, чтобы не задавать все это програмным путем пользователю. Поэтому я так и озадачен этим конвертором, хочу чтобы все текстуры сохранялись и применялись как в *.x формате.


Если всё будет удачно, к концу декабря думаю завершить код виевера Х-файлов. И на его основе затем разрабатывать конвертер. Но проблем ещё много, и главная - кости. Мой виевер поддерживает кости номинально, точнее проверен только на Таньке из СДК. И больше никаких файлов с костями у меня нет. Поиск по инету закончился провалом - глухо. Работаю с 3Дмакс-4, а он экспортирует модели 3DS только с фреймовой анимацией. Поскажите, может старшие версии макса поддерживают требуемый формат анимации? У меня есть шестой, но его пока не устанавливал.

Yurich
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 675
Зарегистрирован: 05.03.2003 (Ср) 3:43
Откуда: DONBASS/Gorlovka

Сообщение Yurich » 08.12.2004 (Ср) 1:24

Столкнулся с проблемой!
При включении источников света типа "Point" на модели чётко виден градиент. Сейчас копаюсь по Мелкософтовским примерам - везде освещение "гладкое". Не могу найти, в чём дело.

Yurich
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 675
Зарегистрирован: 05.03.2003 (Ср) 3:43
Откуда: DONBASS/Gorlovka

Сообщение Yurich » 12.12.2004 (Вс) 1:20

Мля, хотел токо кинуть свой х-виевер (56 кВ в .rar), а ОН пишет "Вы превысили лимит закачек 3 МВ"?! Я чо, с вирусами сижу?

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 12.12.2004 (Вс) 15:28

Yurich
Просто нужно выкинуть из качалки что-нибудь старое.
Кстати у меня вопрос, ты не разобрался с записью в .X формат? А то я не могу заставить работать SaveToX.

Yurich
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 675
Зарегистрирован: 05.03.2003 (Ср) 3:43
Откуда: DONBASS/Gorlovka

Сообщение Yurich » 13.12.2004 (Пн) 17:52

Из-за тучи тонкостей не думал как записывать Х-сы. Даже 100% загрузки я ещё не достиг, нет достаточного количества готовых файлов.
Обещаный виевер, потестируйте, плиз! Текстуры кидайте в папку \Bitmaps
Последний раз редактировалось Yurich 13.12.2004 (Пн) 18:35, всего редактировалось 2 раз(а).

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 13.12.2004 (Пн) 18:13

джентельмены!

а как же начальная задача - определение материала для группы вертексов?

и ни у кого нет желания попробовать сделать свой редактор моделей? думаю, если получится неплохо, то все смогут его использовать в своих целях.

и еще, Майкл, Юрич!! я вам отсылал личные сообщения, ответа не будет?
ХЎ

Yurich
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 675
Зарегистрирован: 05.03.2003 (Ср) 3:43
Откуда: DONBASS/Gorlovka

Сообщение Yurich » 13.12.2004 (Пн) 18:15

Сори, не заглядывал туда.

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 13.12.2004 (Пн) 18:54

жду ответа по поводу личного сообщения и предложения создать редактор карт.
ХЎ

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 13.12.2004 (Пн) 18:56

d3drm
Сорри, конечно, за отвлечение от темы, но я тоже думал над своим редактором для моделей, и как раз одна из проблем - запись. Свой формат мудрить не хочется, ведь в D3DX уже все готово, кроме того там очень неплохо работает сжатие, что в своем формате сделать не просто. А если нужна секретность - чтобы модели не могли кто попало содрать, то готовый .X-файл можно зашифровать. В AoS у меня так и сделано - сжатый M$-ским виевером из SDK .X-файл зашифрован.
Личное сообщение от тебя получал только одно, про физ. библиотеку, на него ответил, и, судя по твоей теме в проектах (о конкурсе), ответ ты получил. Больше сообщений не было.

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 13.12.2004 (Пн) 19:49

нет, ответ я не получил... что там было написано? а если сделать редактор, можно будет использовать свой формат+экспорт в х, если придумаем как. ну так что, будет кто-нибудь этим заниматься?
ХЎ

Yurich
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 675
Зарегистрирован: 05.03.2003 (Ср) 3:43
Откуда: DONBASS/Gorlovka

Сообщение Yurich » 13.12.2004 (Пн) 21:37

d3drm писал(а):ну так что, будет кто-нибудь этим заниматься?

Мля, но я то чем, по твоему, занимаюсь? Не так все просто, как на первый взляд. С примитивами легко разобраться. А как их вертексы обрабатывать? Что самому 3Дмакс делать?

Yurich
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 675
Зарегистрирован: 05.03.2003 (Ср) 3:43
Откуда: DONBASS/Gorlovka

Сообщение Yurich » 13.12.2004 (Пн) 22:11

Рисую линии с помощью DrawPrimitiveUP.
Интересует вопрос, как можно увеличить/уменьшить толщину линии?
Из СДК нифига не понял.

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 13.12.2004 (Пн) 22:25

ну, во-первых, я никакой не "мля". во-вторых, я имел ввиду совместную работу. в-третьих я уже имел опыт в создании редакторов, так что, думаю, что-нить вроде милкшейпа сделать можно, плюс добавить все, что сможет пригодится каждому из нас. собственная скелетная анимация, прозрачность отдельных участков модели, отражения, материалы, да все, что угодно!
ХЎ

След.

Вернуться в Мультимедиа

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 38

    TopList