Вверх ↑
Этот топик читают: Гость
Ответов: 963
Рейтинг: 12
#1: 2014-10-21 19:48:13 ЛС | профиль | цитата
В общем понадобилось мне в одном из проектов разобраться с трехмерной графикой
Поискав по сусекам обнаружил какие-то свои недоделки ... И в том числе и на хайасме .
Решил, что прежде чем браться за сложные библиотеки не плохо-бы пройтись по основам.

Главная идея схемы научится загружать простенькие моделей в простейших текстовых форматах типа DFX ASC ACE ..
(Причем без внешних библиотек с нуля)
Пока остановился на формате ASC /бо "прост как двери"/
Парсинг пока работает для одного объекта в файле но это не существенно .

А вот дальше как всегда образовался невнятный глюк с собственно с OpenGL
Кое как преодолев проблемы с надеванием текстур на произвольные полигоны
столкнулся с "не евклидовой геометрией" ... то есть одиночный полигон вроде показывает нормально а вот скомпоновать любую фигуру (Даже куб !) "Фигвам-индийское жилище !"

Особенно удивило то что программа показывает вместо тора ...


В общем смотрите в архиве
Там две схемы и экзеники ..
Парсер4е- просто проверка "топорного пирсинга" ASC - вроде работает хотя написано("нарисовано в схеме") очень грубо Результат раздельный "по полигонный" список координат вершин ...

М17e - попытка построить изображение по полученным данным ...
Сразу загружен Куб (Да это должно было быть кубом...)
Еще три файла модели в формате ASC (Куб тор и нечто Ш-образное вроде блока Лего)
Загружается не по центру по этому иногда сразу ничего невидно (По шевелите в поле вывода мышкой )
Квадрат в левом верхнем углу это тест текстуры..
Все тупо как пробка не оптимизировано и содержит мало комментариев.

В общем опять подвиги "чукчи писателя" ну извините несколько лет хайасм-схем не рисовал ...

карма: 0

0
файлы: 1ogl_asc_probka_01.zip [146.4KB] [409]
vip
#1.1контекстная реклама от партнеров
Ответов: 2197
Рейтинг: 673
#2: 2014-10-21 23:09:01 ЛС | профиль | цитата
AlexKir, вы бы описание формата приложили или ссылку. Ведь наверняка уже есть наработки.
Вот вам вершины: code_34478.txt
И если не военная тайна, то что делать будете?
карма: 11

1
файлы: 1format_asc.sha [5.4KB] [500]
Голосовали:MAV
Ответов: 963
Рейтинг: 12
#3: 2014-10-21 23:45:25 ЛС | профиль | цитата
Спасибо !

Там вроде чистый текст все почти и так понятно
Формат .ASC AutoDesk ASCII Export File(Из старого досовского 3ds в коем я немного умею модели лепить Кроме того по нынешним времена можно запускать где угодно хоть на телефоне через дос-бокс)
Готовых примеров к сожалению не нашел что странно ...

Ничего секретного просто пока рано хвастать .
Есть несколько давних идей и один прожект ну ОЧЕНЬ "дальнего радиуса действия"

http://novosti-kosmonavtiki.ru/forum/forum11/topic3370/?PAGEN_1=47
В общем месяц "спорили и кое чего на спорили" ...
Возможно когда "на крыло станет" буду искать соратников в для нового виртуального ГИРД!
карма: 0

0
Гость
Ответов: 17029
Рейтинг: 0
#4: 2014-10-22 10:35:56 правка | ЛС | профиль | цитата


Редактировалось 7 раз(а), последний 2021-06-21 04:03:23
карма: 0

0
Ответов: 1304
Рейтинг: 405
#5: 2014-10-22 11:01:07 ЛС | профиль | цитата
AlexKir, нашёл тестовый пример загрузки obj. Комп должен поддерживать OpenGL 2.0. На данный момент пока не могу предоставить свою версию пакета где этот пример был сделан, так как он сильно отличается от базового и пока сырой.
карма: 3

0
файлы: 1testvao_.rar [393.4KB] [482]
Ответов: 963
Рейтинг: 12
#6: 2014-10-22 15:51:42 ЛС | профиль | цитата
Вообще-то там (в 3ds) есть экспорт и в старый автокадовский DFX ...Но он увы менее читаем визуально .
Хотя для него уж точно примеры есть .

Зы
MAV Спасибо "буду посмотреть"...
(Вообще-то у меня есть библиотека (я её даже выкладывал тут на фруме ) для чтения главного формата 3ds (который так и называется ..) Но была идея просто без затей вытянуть модель из описания вершин и полигонов .
Что в принципе уже почти получилось .
Зы ЗЫ
Да если интересно могу выложить свою "боевую собрку" 3ds4 +DоsBox До 3Dмакса ей далеко но модели собирать весьма сподручно .... Рисуешь основу в почти любом векторном редакторе экспортируешь в встроенный "Лофтер" и собираешь модель почти любой сложности причем не составную .

карма: 0

0
Ответов: 1376
Рейтинг: 197
#7: 2014-10-22 16:30:46 ЛС | профиль | цитата
AlexKir писал(а):
Да если интересно могу выложить свою "боевую собрку"
Нам всё интересно...
карма: 1

0
Ответов: 963
Рейтинг: 12
#8: 2014-10-23 06:03:50 ЛС | профиль | цитата
foksov писал(а):
Нам всё интересно...


Как подготовлю так и выложу !
Зы
sla8a Погонял твою схему ...
Но вот в чем прикол при загрузке в 3ds получаются нормальные модели а не куски оных как у нас с тобой ...
(У меня то вообще кривуля знатная выходит )
Глядя на твою схему чуть модифицировал свою .
Теперь там есть масштабирование (наглый плагиат! ) и переключение из полигона в линии чтобы сравнить ...
Еще пытался добавить текстуры в твою схему но сходу не вышло отложил на потом .

ogl_asc_probka_02.zip



карма: 0

0
файлы: 1ogl_asc_probka_02.zip [226.1KB] [398]
Ответов: 2197
Рейтинг: 673
#9: 2014-10-23 20:42:28 ЛС | профиль | цитата
AlexKir, по поводу:
AlexKir писал(а):
куски оных как у нас с тобой
я лишь помог вам отпарсить вершины и вывести их в OpenGL. С форматом 3ds не знаком, по-быстрому погуглить не получилось. Найдете описание формата, будет проще.
AlexKir писал(а):
Еще пытался добавить текстуры в твою схему но сходу не вышло отложил на потом .
Не очень понимаю как вы собираетесь добавить текстуры. Если еще на куб, могу себе представить, но вручную намотать текстуру на вашу модель тора, это нужно быть мазохистом.
Лучше выбрать формат который поддерживает текстуры и работать с ним.
карма: 11

0
Ответов: 963
Рейтинг: 12
#10: 2014-10-24 23:35:55 ЛС | профиль | цитата
Сегодня малость не в духе шею надуло и чувствую себя "фонарем некроманта" (То бишь черепушкой на позвоночнике но зато со "светом в газах"- блин, никому такого не пожелаю !)

Ну ладно вернусь к схеме ... Были у меня мысли что это опенгл "выпендривается" и при загрузке вершин "косит", однако, для проверки нашёл софтверное преобразование 3D -> 2D и там почти тоже самое выходит ...
Прямо хоть бери тетрадь и черти линейкой !
Куб и моя ш-образная модель вообще не показывается как что-то внятное а тор тот же "полумесяц". ogl_sr001.7z

Да вот еще демка в лазарусе..ogl_sr001.7z

("Просто как двери" но история этого глюка довольно длинная кода-то это был пример из книги (на Си) потом глюк перебрался в паскаль под дос, был частью множества заставок и вот сегодня я вытащил его в начале в лазарус а том кусок преобразования благополучно переехал в ХиАсм )

карма: 0

0
файлы: 2ogl_sr001.7z [62.4KB] [290], sr_kub002.7z [649.3KB] [419]
Ответов: 1304
Рейтинг: 405
#11: 2014-10-25 17:48:29 ЛС | профиль | цитата
AlexKir писал(а):
А вот дальше как всегда образовался невнятный глюк с собственно с OpenGL
Были у меня мысли что это опенгл "выпендривается" и при загрузке вершин "косит"

AlexKir, отставить наезды на OpenGL
Посмотрел на варианты к изучению DFX ASC ACE, про первые два лучше вобще забыть, ACE более привлекателен но мне кажется сложен для новичка в 3D графике. Так как ACE и ASC схожи своей структурой то сделал демку ASC с упрощённым парсированием для загрузки сторон(Face), возможно буду использовать ACE в своих проектах а вот разбираться дальше с ASC не вижу смысла.
asc_demo.sha
Ну и чтобы было легче разбираться с примерами в любом формате, лучше делать модели с центром координат 0,0,0 и единичным размером то есть вписываемые в сферу радиусом 0.5
ps туман добавил для лучшей визуальности а то без текстур и нормалей смотрится тоскливо.
карма: 3

1
файлы: 1asc_demo.sha [39KB] [422]
Голосовали:sla8a
Ответов: 2197
Рейтинг: 673
#12: 2014-10-25 23:09:42 ЛС | профиль | цитата
Смотрю на схему MAV-а и на свою, вроде все тоже самое: те же вершины, те же грани, а на выходе разные модели. А все из одного пробела попавшего в числовое значение. Исправил свой пример. MAV, спасибо открыл глаза.
карма: 11

0
Ответов: 1304
Рейтинг: 405
#13: 2014-10-25 23:44:17 ЛС | профиль | цитата
[offtop]что то автор темы пропал,
AlexKir писал(а):
Сегодня малость не в духе шею надуло и чувствую себя "фонарем некроманта" (То бишь черепушкой на позвоночнике но зато со "светом в газах"- блин, никому такого не пожелаю !)
видать фонарь ещё не выключили
AlexKir, если не секрет что у тебя на QR-ке, а то телефон такую мелкоту не берёт.
[/offtop]

карма: 3

0
Ответов: 963
Рейтинг: 12
#14: 2014-10-28 03:54:03 ЛС | профиль | цитата
Сегодня возился с загрузкой ASC в лазарусе ...
Выходило так себе .. единственная радость что полностью в софте
(Так что глюки с уважаемым но пока не понятным ОпенГл исключены)
Насчет DFX нужно подумать потому как литературы с описанием формата полно !
sr3.zip
Зы
В QR-коде тоже самое, что и в подписи
В общем месседж такой "Тихие не числа не повод для паники! "

карма: 0

0
Ответов: 963
Рейтинг: 12
#15: 2014-10-30 19:27:56 ЛС | профиль | цитата
MAV спасибо за схему !
Наконец то полностью работающая как надо Вот чуть модифицированный вариант
asc_demo05.7z
...Вообще-то пытался сразу добивать текстуры но запутайся в освещении поэтому пока отложил до следующего раза ...
Есть небольшая непонятка при повторной загрузке (вроде все что нужно очищаю но иногда опенгл вывод просто не инициализируется по новой но при повторе все основа нормально Есть мысль что часть параметров нормально можно инициализировать только один раз )

------------------------------------------
"Поспешишь всех вокруг рассмешишь ...."
В общем утром глянул на вчерашние каракули и ... все исправил.
(Ну типа "и просто пошл по коридору")
asc_demo06e.zip
И так уже грузит то что надо показывает то что надо (еще раз товарищу MAV спасибо !) и даже переключается с "линии" на "полегон" и обратно тоже как надо ...
+ В коллекцию добавил несколько моделей
Сферу
Цилиндр
И телефонную трубку ...
5-11 ===========================
Добавил "софт рендер" (для будущего редактора )
Но вот что странно сложный "бублик" показывает нормально а простой куб криво ..
(Особенно удивил пропорции граненного цилиндра )
[Скрины убрал как глобально устаревшие ]
..........
Да на скрине предыдущая версия в 8-ю добавил вращение модели управление масштабом и скорость для софт-окна ...
Кстати 3d->2D софт преобразование напрашивается в постоянный элемент ...
Как думаете такой инлайн код преобразования как есть (Нет вру! чуть допиленный до ума но стой-же основой ) годится или поискать более эффективный вариант?

Да, восьмая версия вот asc_demo08e.zip
---------------------------------

6-11---------------------------------------------------------------------------
Девятая версия
asc_demo09e.zip
Добавил прорисовку еще одной утерянной линии в софт варианте
но "чего-то в этом супе не хватает" то есть понятно чего моих мзогов..
Но схема уже хотя-бы точно показывает что одной двух линий в полигоне просто нет
или перепутан порядок соединения ...( В опенгл варианте прорисовывается с готовыми треугольниками
а в софт-варианте нужно самому "пилить гири" )
10-11--------------------------------------------------------
Уф не прошло и года как что-то вышло как надо ...
asc_demo11e.zip
В общем дальше буду разбирается с текстурами и параллельно пробовать сделать полноценный софт рендер для редактора (Без текстур но хотя-бы с усечением невидимых линий ...)
Кстати в Лазарусе тоже что-то получилось (Правда там пока все рисуется без ОпенГл )

https://yadi.sk/d/MAc1EtKpccwLz

https://yadi.sk/d/zaVxUU8occvo6
https://yadi.sk/d/5pH16b1UccwRM
(Версии почти не отличаются но первая собрана в 7-ке две других в XP )
21-11-------------------------------------
Сегодня добрался до текстур ...
.."Кольцевание" со счетчиком это нечто действительно и серии "тихие нечсисла"..Причем проявляется так странно, что додуматься до причины сразу практически не возможно ... (Один раз даже виртуалка "свернулась трубочкой")Но глюк все-же победил !
Однако,пока текстуры лепит как попало и чем сложнее модель тем более не предсказуемо

asc_demo13e.zip .

Но кто-то тут писал, что текстуры вообще наложить не получится ...
Так что продолжение следует !

карма: 0

0
файлы: 7sr3.zip [814.1KB] [392], asc_demo05.7z [72.6KB] [270], asc_demo06e.zip [85.6KB] [262], asc_demo08e.zip [94.1KB] [265], asc_demo09e.zip [94KB] [286], asc_demo11e.zip [99.5KB] [453], asc_demo13e.zip [115.6KB] [507]
Сообщение
...
Прикрепленные файлы
(файлы не залиты)