HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Проверьте 3DS Loader
Страницы (2): [1] 2 »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
fire64
Житель форума

Дата регистрации: Apr 2007
Проживает: Москва
Сообщений: 2362
Возраст: 35

Рейтинг



Проверьте 3DS Loader

Гляньте пожалуйста код загрузчика 3DS моделей, по неизвестной мне причине, он зависает при загрузке модели в 2 случаях из 3.

И такой еще вопрос. как совместить внутреннюю систему координат модели и систему координат в half-Life, что бы модель рендерилась в нужном месте.

Добавлено 10-06-2011 в 17:51:

А рисовать пытаюсь вот так:

C++ Source Code:
1
modeldata_t pModelData = Load3DSModel( "car_01.3ds" );
2
 
3
 
4
// --- draw triangle --------------------------
5
gEngfuncs.pTriAPI->RenderMode( kRenderNormal );
6
gEngfuncs.pTriAPI->CullFace( TRI_NONE );
7
gEngfuncs.pTriAPI->Color4f( 1.0, 1.0, 1.0, 120 );
8
gEngfuncs.pTriAPI->Begin( TRI_TRIANGLES );
9
 
10
for( int i = 0; i < pModelData.pTrianglesList->trianglescount; i++ )
11
{
12
 
13
  gEngfuncs.pTriAPI->TexCoord2f( pModelData.pMappingUV->u[ pModelData.pTrianglesList->pTriangles[i].v0 ], pModelData.pMappingUV->v[ pModelData.pTrianglesList->pTriangles[i].v0 ] );
14
  gEngfuncs.pTriAPI->Vertex3f( pModelData.pVertexList->pVertex[ pModelData.pTrianglesList->pTriangles[i].v0 ].x, pModelData.pVertexList->pVertex[ pModelData.pTrianglesList->pTriangles[i].v0 ].y, pModelData.pVertexList->pVertex[ pModelData.pTrianglesList->pTriangles[i].v0 ].z );
15
 
16
  gEngfuncs.pTriAPI->TexCoord2f( pModelData.pMappingUV->u[ pModelData.pTrianglesList->pTriangles[i].v1 ], pModelData.pMappingUV->v[ pModelData.pTrianglesList->pTriangles[i].v1 ] );
17
  gEngfuncs.pTriAPI->Vertex3f( pModelData.pVertexList->pVertex[ pModelData.pTrianglesList->pTriangles[i].v1 ].x, pModelData.pVertexList->pVertex[ pModelData.pTrianglesList->pTriangles[i].v1 ].y, pModelData.pVertexList->pVertex[ pModelData.pTrianglesList->pTriangles[i].v1 ].z );
18
 
19
  gEngfuncs.pTriAPI->TexCoord2f( pModelData.pMappingUV->u[ pModelData.pTrianglesList->pTriangles[i].v2 ], pModelData.pMappingUV->v[ pModelData.pTrianglesList->pTriangles[i].v2 ] );
20
  gEngfuncs.pTriAPI->Vertex3f( pModelData.pVertexList->pVertex[ pModelData.pTrianglesList->pTriangles[i].v2 ].x, pModelData.pVertexList->pVertex[ pModelData.pTrianglesList->pTriangles[i].v2 ].y, pModelData.pVertexList->pVertex[ pModelData.pTrianglesList->pTriangles[i].v2 ].z );
21
}
22
 
23
gEngfuncs.pTriAPI->End();
24
gEngfuncs.pTriAPI->RenderMode( kRenderNormal );

Вложение: cl_dll.rar (2.2 кб)
Этот файл был скачан 245 раз.

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей

Сообщить модератору | IP: Записан
Сообщение: 78973

Старое сообщение 10-06-2011 13:51
- За что?
CrazyRussian
ололо

Дата регистрации: Apr 2009
Проживает: Город-курорт Ессентуки
Сообщений: 790
Возраст: 32

Рейтинг



Награды
 
[1 награда]


А что, у меня пашет
Правда не совсем в халфе и не совсем так как ожидалось, но тем не менее -
http://pix.academ.org/img/2011/06/1...8536e2293cd.png
( Танкистам тем кто ничего не понял: на скрине изображена моделька в милкшейпе и загруженная лоадером товарища Fire64, т.к. моделька состоит из множества групп, а товарищ Fire64 этого неучел, его загрузчик загрузил только одну группу в модели, что наглядно видно в окне вьювера)

__________________
Трагическая новость: Пятеро инженеров Casio умерли от смеха, узнав что Samsung анонсировали часы с заявленным временем работы в 25 часов

Сообщить модератору | IP: Записан
Сообщение: 78975

Старое сообщение 10-06-2011 14:43
- За что?
fire64
Житель форума

Дата регистрации: Apr 2007
Проживает: Москва
Сообщений: 2362
Возраст: 35

Рейтинг



CrazyRussian, а как рисовать загруженную модель в Half-life ?

Свой вариант я написал в первом посте.

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей

Сообщить модератору | IP: Записан
Сообщение: 78976

Старое сообщение 10-06-2011 14:52
- За что?
CrazyRussian
ололо

Дата регистрации: Apr 2009
Проживает: Город-курорт Ессентуки
Сообщений: 790
Возраст: 32

Рейтинг



Награды
 
[1 награда]


Цитата:
fire64 писал:
а как рисовать загруженную модель

ну допустим используя твой вариант, что не так то?

__________________
Трагическая новость: Пятеро инженеров Casio умерли от смеха, узнав что Samsung анонсировали часы с заявленным временем работы в 25 часов

Сообщить модератору | IP: Записан
Сообщение: 78977

Старое сообщение 10-06-2011 15:03
- За что?
fire64
Житель форума

Дата регистрации: Apr 2007
Проживает: Москва
Сообщений: 2362
Возраст: 35

Рейтинг



Запихал код отрисовки в HUD_DrawNormalTriangles.

Теперь вопрос, а как сместить модель в нужные мне координаты ?

А, все разобрался:

C++ Source Code:
1
glPushMatrix();
2
glTranslatef(500, 500.0, 0.0);
3
...
4
 
5
glPopMatrix();

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей

Сообщить модератору | IP: Записан
Сообщение: 78978

Старое сообщение 10-06-2011 15:34
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 35042
Нанёс повреждений: 514 ед.
Возраст: 38

Рейтинг



Награды
 
[1 награда]


fire64
Нельзя так делать, даже не буду пояснять, почему - это self-explanatory.
Почему бы не прибавлять 500 к координатам в Vertex3f?

__________________

Сообщить модератору | IP: Записан
Сообщение: 78979

Старое сообщение 10-06-2011 16:09
-
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33044
Нанёс повреждений: 392 ед.

Рейтинг



а зачем прибавлять именно 500?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | IP: Записан
Сообщение: 78980

Старое сообщение 10-06-2011 18:20
-
CrazyRussian
ололо

Дата регистрации: Apr 2009
Проживает: Город-курорт Ессентуки
Сообщений: 790
Возраст: 32

Рейтинг



Награды
 
[1 награда]


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

Вложение: pk 3ds viewer alpha.rar (293.4 кб)
Этот файл был скачан 243 раз.

__________________
Трагическая новость: Пятеро инженеров Casio умерли от смеха, узнав что Samsung анонсировали часы с заявленным временем работы в 25 часов

Сообщить модератору | IP: Записан
Сообщение: 78981

Старое сообщение 10-06-2011 19:50
- За что?
fire64
Житель форума

Дата регистрации: Apr 2007
Проживает: Москва
Сообщений: 2362
Возраст: 35

Рейтинг



Вот этот момент в функции CountModelItems не понял.

C++ Source Code:
1
chunk_id = GetUnShort( pData, dataoffset );
2
chunk_lenght = GetUnInt( pData, dataoffset );
3
 
4
 
5
if( dataoffset> iSize )
6
{
7
  break;
8
}


Если у тебя размер данных, равен iSize, то при полном прочтении dataoffset, будет равен iSize, а ты еще до проверки пытаешься считать данные с оффсета, который находится за пределами буффера.

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей

Сообщить модератору | IP: Записан
Сообщение: 78982

Старое сообщение 10-06-2011 20:06
- За что?
CrazyRussian
ололо

Дата регистрации: Apr 2009
Проживает: Город-курорт Ессентуки
Сообщений: 790
Возраст: 32

Рейтинг



Награды
 
[1 награда]


У меня там dataOffset упорно перескакивал за iSize, после долгого битья головой об стену, ничего умнее чем сделать такое условие в голову не пришло ага.

__________________
Трагическая новость: Пятеро инженеров Casio умерли от смеха, узнав что Samsung анонсировали часы с заявленным временем работы в 25 часов

Сообщить модератору | IP: Записан
Сообщение: 78983

Старое сообщение 10-06-2011 20:16
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33044
Нанёс повреждений: 392 ед.

Рейтинг



а вы дата оффсет муваете и одновременно указатель перематываете?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | IP: Записан
Сообщение: 78984

Старое сообщение 10-06-2011 20:18
-
fire64
Житель форума

Дата регистрации: Apr 2007
Проживает: Москва
Сообщений: 2362
Возраст: 35

Рейтинг



Сейчас глянул, странно, все чтения данных производятся.

Ты уверен, что нигде не происходит порча хипа ?

Добавлено 11-06-2011 в 00:30:

Да, а данные похоже все же бьются, учитывая, что вьювер открывает только тут модель, что была в архиве, ну и еще парочку. а с остальными стабильно вылетает.

Добавлено 11-06-2011 в 00:51:

Хм интересно, вот эта модель муравья не грузится не моим лоадером, не усовершенствованной версией CrazyRussian.

Однако успешно загружается в MilkShape3D и открывается сторонними вьюверами.

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей

Сообщить модератору | IP: Записан
Сообщение: 78985

Старое сообщение 10-06-2011 20:51
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33044
Нанёс повреждений: 392 ед.

Рейтинг



не уродуйте клиентку поддержкой сторонних форматов.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | IP: Записан
Сообщение: 78998

Старое сообщение 11-06-2011 10:33
-
fire64
Житель форума

Дата регистрации: Apr 2007
Проживает: Москва
Сообщений: 2362
Возраст: 35

Рейтинг



Дядя Миша, думаешь это лучше сделать на уровне движка ?

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей

Сообщить модератору | IP: Записан
Сообщение: 79001

Старое сообщение 11-06-2011 16:44
- За что?
CrazyRussian
ололо

Дата регистрации: Apr 2009
Проживает: Город-курорт Ессентуки
Сообщений: 790
Возраст: 32

Рейтинг



Награды
 
[1 награда]


Дубль два, переписано с нуля, идиотизма который не понял fire64 нету.
fire64 заделись модельками которые загрузчик не переваривает.

Вложение: pk 3ds viewer alpha.rar (73.5 кб)
Этот файл был скачан 217 раз.

__________________
Трагическая новость: Пятеро инженеров Casio умерли от смеха, узнав что Samsung анонсировали часы с заявленным временем работы в 25 часов

Сообщить модератору | IP: Записан
Сообщение: 79004

Старое сообщение 11-06-2011 17:19
- За что?
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 08:03. Новая тема    Ответить
Страницы (2): [1] 2 »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Проверьте 3DS Loader
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2024