|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
16.11.2008, 03:48 | #1 |
Непрофессионал
Участник клуба
Регистрация: 01.01.2008
Сообщений: 1,405
|
редактор 3D-моделей
Зацените, вот начал делать простенький редактор 3D моделек.
Собственно до редактора дело ещё не дошло, пока только одни мысли. Весь процесс создания модельки я решил разбить на три этапа: 1. Создание и сохранение моделей-примитив на уровне треугольников и точек; 2. Создание и сохранение конструкций из моделей-примитив; 3. Текстуровщик - наложение текстур на конструкции или модели. Просьба не судить строго - самого редактора ещё нет, есть только примитивный конвертор и загрузчик моделей. Сейчас работаю над сохранением данных по вертексам в бинарный файл, переключение режимов соответственно закоментировал. В архиве - исходники, modelist.exe и несколько моделек для теста.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------ Страничка с моими программками http://ulex-masm.ru |
16.11.2008, 11:03 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Ну, решпект.
Вот даже есть предложение добавить кнопки управления перемещения, поворота и масштабирования, ато разными клавишами мышы не очень привычно
I'm learning to live...
|
16.11.2008, 21:06 | #3 |
Участник клуба
Регистрация: 29.01.2008
Сообщений: 1,039
|
Класс. А файлы bin в каких играх могут использоваться?
|
16.11.2008, 21:41 | #4 |
Непрофессионал
Участник клуба
Регистрация: 01.01.2008
Сообщений: 1,405
|
Да вобщем-то в любых. Тут только надо понимать, что всё придётся делать ручками, никакие библтотеки 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 |
17.11.2008, 21:04 | #5 |
Форумчанин
Регистрация: 08.10.2008
Сообщений: 668
|
надо б конвертировать в 3dmax и Blender
Don't worry be happy
|
23.11.2008, 22:22 | #6 |
Непрофессионал
Участник клуба
Регистрация: 01.01.2008
Сообщений: 1,405
|
Доделал сохранение в бинарник, начал делать текстуровщик (конструктор всё ещё закоментирован).
Проблема - раньше у меня как-то отложилось в памяти, что текстура должна быть по размерам кратна степени 2 (ширина и высота в точках соответственно). А сейчас начал делать текстуровщик, и вижу, что у меня какие попало текстуры тоже тоже грузятся и отображаются нормально.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------ Страничка с моими программками http://ulex-masm.ru |
27.12.2009, 01:30 | #7 |
Непрофессионал
Участник клуба
Регистрация: 01.01.2008
Сообщений: 1,405
|
Возник вопрос.
Пишу алгоритм расчёта текстурных координат в зависимости от пространственных. Этакую натягивалку текстур на модель. Пока придумал (и реализовал) только два вида: 1. Прямая проекция координат XYZ полигона на одну из плоскостей и расчёт UV координат пропорционально координатам точек проекции. 2. Проекция координат XYZ каждого полигона на все три плоскости (XY, ZY, ZX), вычисление площадей проекций на каждую из плоскостей и окончательный расчёт UV координат пропорционально координатам точек проекции на ту плоскость, где площадь проекции полигона оказалась максимальной. Есть подозрение, что второй метод работает неправильно. Ну и хочется ещё один метод реализовать - развёртка. Т.е. чтобы каждый полигон имел уникальные текстурные координаты. Два предыдущих метода для симметричных относительно одной из осей полигонов дадут одинаковое значение UV координат. Но я даже не знаю с какой стороны подступиться. Как можно развернуть сетку на плоскость? Мне код не нужен. Вы мне подскажите, в какую сторону копать.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------ Страничка с моими программками http://ulex-masm.ru |
27.12.2009, 15:33 | #8 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
27.12.2009, 23:33 | #9 | |
Непрофессионал
Участник клуба
Регистрация: 01.01.2008
Сообщений: 1,405
|
Цитата:
С ГЛ, честно говоря, не работал (хоть, порой, и хочется попробовать).
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------ Страничка с моими программками http://ulex-masm.ru |
|
28.12.2009, 13:34 | #10 | |
Участник клуба
Регистрация: 06.03.2009
Сообщений: 1,346
|
В гл обязательны кратные текстуры (может и в DX тоже). Обычно некратные переводят в кратные на уровне граф. движка проекта при загрузке.
Цитата:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Булевская операция вычитания для зх мерных геометрических полигональных моделей | 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 |