Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.11.2008, 03:48   #1
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,432
По умолчанию редактор 3D-моделей

Зацените, вот начал делать простенький редактор 3D моделек.
Собственно до редактора дело ещё не дошло, пока только одни мысли.
Весь процесс создания модельки я решил разбить на три этапа:
1. Создание и сохранение моделей-примитив на уровне треугольников и точек;
2. Создание и сохранение конструкций из моделей-примитив;
3. Текстуровщик - наложение текстур на конструкции или модели.

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

В архиве - исходники, modelist.exe и несколько моделек для теста.
Вложения
Тип файла: rar modelist.rar (116.3 Кб, 64 просмотров)
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 16.11.2008, 11:03   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Ну, решпект.
Вот даже есть предложение добавить кнопки управления перемещения, поворота и масштабирования, ато разными клавишами мышы не очень привычно
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.11.2008, 21:06   #3
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
По умолчанию

Класс. А файлы bin в каких играх могут использоваться?
Манжосов Денис :) вне форума Ответить с цитированием
Старый 16.11.2008, 21:41   #4
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,432
По умолчанию

Да вобщем-то в любых. Тут только надо понимать, что всё придётся делать ручками, никакие библтотеки DirectX эти файлы понимать не будут. Вобщем сам я их придумал. А структура очень простая:

Модель состоит из N-го количества субмоделей. Для каждой субмодели в файле определена такая структура:

MESH_CAPTURE STRUCT
NumberSubmesh dd ? - номер субмодели
OffsStartMater dd ? - смещение в файле в байтах на структуру материала
SizeMater dd ? - размер в байтах структуры материала
MaterRezerv1 dd ? - резерв
OffsStartText dd ? - смещение в файле в байтах на текстуру
SizeText dd ? - размер в байтах текстуры
TextW dd ? - ширина текстуры в точках
TextH dd ? - высота текстуры в точках
FormatText dd ? - формат точки тектуры
TextRezerv2 dd ? - резерв
OffsStartIdx dd ? - смещение в файле в байтах на буфер индексов
SizeIdx dd ? - размер в байтах буфера индексов
FormatIdx dd ? - формат индексов
OffsStartVertex dd ? - смещение в файле в байтах на буфер вершин
SizeVertex dd ? - размер в байтах буфера вершин
FormatVertex dd ? - формат вершины
CounterPrimitiv dd ? - количество треугольников
VertexRezerv1 dd ? - резерв
VertexRezerv2 dd ? - резерв
MESH_CAPTURE ENDS

Все структуры объединены в заголовок (т.е. идут вначале файла по порядку) и обрамлены словами STRUCT - вначале и ENDS - в конце.
Если не желаете в своей модели использовать индексный буфер или текстуру или материал то соответствующее смещение на блок данных надо указать ==0.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 17.11.2008, 21:04   #5
Izhic
Форумчанин
 
Аватар для Izhic
 
Регистрация: 08.10.2008
Сообщений: 668
По умолчанию

надо б конвертировать в 3dmax и Blender
Don't worry be happy
Izhic вне форума Ответить с цитированием
Старый 23.11.2008, 22:22   #6
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,432
По умолчанию

Доделал сохранение в бинарник, начал делать текстуровщик (конструктор всё ещё закоментирован).

Проблема - раньше у меня как-то отложилось в памяти, что текстура должна быть по размерам кратна степени 2 (ширина и высота в точках соответственно). А сейчас начал делать текстуровщик, и вижу, что у меня какие попало текстуры тоже тоже грузятся и отображаются нормально.
Вложения
Тип файла: rar modelist.rar (28.4 Кб, 26 просмотров)
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 27.12.2009, 01:30   #7
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,432
По умолчанию

Возник вопрос.
Пишу алгоритм расчёта текстурных координат в зависимости от пространственных.
Этакую натягивалку текстур на модель.
Пока придумал (и реализовал) только два вида:
1. Прямая проекция координат XYZ полигона на одну из плоскостей и расчёт UV координат пропорционально координатам точек проекции.
2. Проекция координат XYZ каждого полигона на все три плоскости (XY, ZY, ZX), вычисление площадей проекций на каждую из плоскостей и окончательный расчёт UV координат пропорционально координатам точек проекции на ту плоскость, где площадь проекции полигона оказалась максимальной.

Есть подозрение, что второй метод работает неправильно.
Ну и хочется ещё один метод реализовать - развёртка. Т.е. чтобы каждый полигон имел уникальные текстурные координаты.
Два предыдущих метода для симметричных относительно одной из осей полигонов дадут одинаковое значение UV координат.

Но я даже не знаю с какой стороны подступиться. Как можно развернуть сетку на плоскость?
Мне код не нужен. Вы мне подскажите, в какую сторону копать.
Вложения
Тип файла: rar modelist.rar (154.4 Кб, 28 просмотров)
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 27.12.2009, 15:33   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
раньше у меня как-то отложилось в памяти, что текстура должна быть по размерам кратна степени 2 (ширина и высота в точках соответственно).
это желательно для ускорения.(для ГЛ помоему даже требование)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 27.12.2009, 23:33   #9
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,432
По умолчанию

Цитата:
это желательно для ускорения.(для ГЛ помоему даже требование)
Я так понял, что это в большей степени зависит не от библиотеки, а от железяки. Вот GeForce (по крайней мере, начиная с 5200) нормально понимают некратные текстуры. А я тут пробовал на каких-то набортных видеокартах (на ноуте) запускать - ошибка Redraw вываливается.
С ГЛ, честно говоря, не работал (хоть, порой, и хочется попробовать).
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 28.12.2009, 13:34   #10
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

В гл обязательны кратные текстуры (может и в DX тоже). Обычно некратные переводят в кратные на уровне граф. движка проекта при загрузке.
Цитата:
Вот GeForce (по крайней мере, начиная с 5200) нормально понимают некратные текстуры.
Может в определенном железе есть программная (через драйвер) поддержка некратных.
Вадим Буренков вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Булевская операция вычитания для зх мерных геометрических полигональных моделей Frenza Общие вопросы C/C++ 2 13.09.2008 03:31
Сопоставление моделей cartoongirl Microsoft Office Excel 6 21.04.2008 14:35
Построение графических моделей. satanatas Помощь студентам 3 13.01.2008 07:52
редактор MadDog__ Общие вопросы C/C++ 2 03.10.2007 12:49