Добавить новость





160*600

Новости сегодня на DirectAdvert

Новости сегодня от Adwile

Актуальные новости сегодня от ValueImpression.com


Опубликовать свою новость бесплатно - сейчас


Немного о генерации 3д изображений

Честно говоря, всегда было интересно устройство 3д модели изнутри, вернее непосредственно структура физического файла 3д модели какого-либо формата. А недавно встала довольно оригинальная задача - создание 3д барельефов по фотографии.
Скажу честно - хоть я и являюсь профессиональным программистом уже порядка 10 лет, с 3д у меня всегда были весьма неловкие отношения. Однако кое что изменилось, когда у моей хорошей знакомой появился 3д принтер. А будучи человеком творческим, я то и дело придумывал грандиозные планы по печати мне той или иной штуковины.
По-первости мучил своего одногруппника, который имел куда более внушительные, в сравнении со мной, таланты в данной сфере. Однако, вскоре совесть как то заела бессовестно эксплуатировать свободное время человека, и сел я за освоение моделирования в AutoCAD. И как ни странно у меня практически с первого дня начало получаться (оказывается, даже такие трудные вещи оказываются вполне под силу, была бы правильная мотивация).
Это была краткая предыстория, как меня вообще занесло в данную сферу. А теперь ближе к телу теме
Как то обратилась ко мне та самая знакомая с просьбой достать взломанную программку по переносу обыкновенных фотографий в 3д модели своеобразных выпуклых барельефов. Программы этой я, к сожалению или к счастью, во взломанном виде не нашёл. Зато подхватил львиную дозу браузерных рекламных вирусов, которыми кишит сейчас каждый второй сайт.
Поведав об этой досадной неудаче знакомой, получил от неё вполне типичный ответ:
- Не можешь найти взломанную - взломай сам, "тыжпрограммист"
Однако, взломом программ я никогда не занимался, и желания такого совершенно не имею. Как, собственно, и достаточных знаний, чего уж кривить душой. А вот идея создать некий аналог данной программы собственноручно надёжно засела в мою голову.
Начать штурм этой неизведанной на первый взгляд, задачи я начал с изучения структуры всем нам известного формата STL. Как оказалось, у него есть 2 варианта - текстовый (ASCII) и бинарный. Начал конечно же с наиболее простого, текстового формата.
Как я и предполагал, состоял этот файл из координат углов треугольников в 3д пространстве, из которых и строилось изображение. И минимального синтаксиса, описывающего, что есть что.
Покурив немного мануалов, сделал свою первую 3д модель в Блокноте - куб.
Приведу его код, если кому то интересно:

solid cube_corner
facet normal 0.0 0.0 0.0
outer loop
vertex 0.0 0.0 0.0
vertex 1.0 0.0 0.0
vertex 1.0 1.0 0.0
endloop
endfacet
facet normal 0.0 0.0 0.0
outer loop
vertex 0.0 0.0 0.0
vertex 1.0 1.0 0.0
vertex 0.0 1.0 0.0
endloop
endfacet
facet normal 0.0 0.0 0.0
outer loop
vertex 0.0 0.0 0.0
vertex 1.0 0.0 0.0
vertex 0.0 0.0 1.0
endloop
endfacet
facet normal 0.0 0.0 0.0
outer loop
vertex 1.0 0.0 1.0
vertex 0.0 0.0 1.0
vertex 1.0 0.0 0.0
endloop
endfacet
facet normal 0.0 0.0 0.0
outer loop
vertex 1.0 1.0 1.0
vertex 1.0 0.0 1.0
vertex 1.0 0.0 0.0
endloop
endfacet
facet normal 0.0 0.0 0.0
outer loop
vertex 1.0 1.0 0.0
vertex 1.0 0.0 0.0
vertex 1.0 1.0 1.0
endloop
endfacet
facet normal 0.0 0.0 0.0
outer loop
vertex 0.0 1.0 1.0
vertex 0.0 1.0 0.0
vertex 0.0 0.0 0.0
endloop
endfacet
facet normal 0.0 0.0 0.0
outer loop
vertex 0.0 0.0 0.0
vertex 0.0 0.0 1.0
vertex 0.0 1.0 1.0
endloop
endfacet
facet normal 0.0 0.0 0.0
outer loop
vertex 0.0 1.0 0.0
vertex 0.0 1.0 1.0
vertex 1.0 1.0 0.0
endloop
endfacet
facet normal 0.0 0.0 0.0
outer loop
vertex 1.0 1.0 0.0
vertex 0.0 1.0 1.0
vertex 1.0 1.0 1.0
endloop
endfacet
facet normal 0.0 0.0 0.0
outer loop
vertex 1.0 1.0 1.0
vertex 0.0 0.0 1.0
vertex 1.0 0.0 1.0
endloop
endfacet
facet normal 0.0 0.0 0.0
outer loop
vertex 0.0 0.0 1.0
vertex 1.0 1.0 1.0
vertex 0.0 1.0 1.0
endloop
endfacet
endsolid

В итоге, сохранив файл с расширением *.stl, открыл его в 3д редакторе, и запрыгал от радости - получилось!


Вдохновившись, я продумал дальнейший алгоритм действия программы:
1) Пользователь открывает фотографию.
2) Программа переводит фотографию в чёрно-белый режим.
3) Сканируя поочерёдно каждый пиксель изображения программа анализирует степень его "серости" от абсолютно белого (0) до абсолютно чёрного (255) по цветовой схеме RGB.
4) Для каждого пикселя программа создаёт куб (вернее, уже параллелипипед), высота которого зависит от "серости" соответствующего пикселя. Белый пиксель соответствовал максимальной высоте 3д блока, в то время как чёрный - минимальной. Серый цвет имел среднюю высоту.

Запустив программу на крупном по размеру изображении столкнулся с ужасно маленькой производительностью, за счёт неоптимизированного алгоритма. Однако, на данный момент меня интересовало не это. Хотелось лицезреть уже хоть какой то результат нескольких часов кодинга. Создав в Пэинте картинку 5х5 пикселей, запустил программу...
Результат приятно удивил, и невольно напомнил графику в стиле Пиксельарта))


Однако, захотелось таки увидеть первые результаты с реальным фото, пусть и очень маленьким. Найдя в интернете картинку какого-то мужчины, уменьшил её до размеров 30х30 пикселей, и скормил программе.
Фото:
Спустя 10 минут раздумий программа выдала следующее:



И хоть я и не могу сказать, что данный результат меня удовлетворил, вызвал желание экспериментировать в этом направлении дальше. И есть вполне резонные основания полагать, что оптимизировав скорость работы программы, и запустив преобразование фотографии в 4-5 раз большего разрешения, детализированность и плавность 3д модели многократно улучшится, а "квадратность" будет сведена до минимума. Ну а о своих дальнейших успехах расскажу в следующий раз! Спасибо за внимание
Подробнее...

Читайте на сайте

Другие проекты от 123ru.net








































Другие популярные новости дня сегодня


123ru.net — быстрее, чем Я..., самые свежие и актуальные новости Вашего города — каждый день, каждый час с ежеминутным обновлением! Мгновенная публикация на языке оригинала, без модерации и без купюр в разделе Пользователи сайта 123ru.net.

Как добавить свои новости в наши трансляции? Очень просто. Достаточно отправить заявку на наш электронный адрес mail@29ru.net с указанием адреса Вашей ленты новостей в формате RSS или подать заявку на включение Вашего сайта в наш каталог через форму. После модерации заявки в течении 24 часов Ваша лента новостей начнёт транслироваться в разделе Вашего города. Все новости в нашей ленте новостей отсортированы поминутно по времени публикации, которое указано напротив каждой новости справа также как и прямая ссылка на источник информации. Если у Вас есть интересные фото Вашего города или других населённых пунктов Вашего региона мы также готовы опубликовать их в разделе Вашего города в нашем каталоге региональных сайтов, который на сегодняшний день является самым большим региональным ресурсом, охватывающим все города не только России и Украины, но ещё и Белоруссии и Абхазии. Прислать фото можно здесь. Оперативно разместить свою новость в Вашем городе можно самостоятельно через форму.



Новости 24/7 Все города России




Загрузка...


Топ 10 новостей последнего часа






Персональные новости

123ru.net — ежедневник главных новостей Вашего города и Вашего региона. 123ru.net - новости в деталях, свежий, незамыленный образ событий дня, аналитика минувших событий, прогнозы на будущее и непредвзятый взгляд на настоящее, как всегда, оперативно, честно, без купюр и цензуры каждый час, семь дней в неделю, 24 часа в сутки. Ещё больше местных городских новостей Вашего города — на порталах News-Life.pro и News24.pro. Полная лента региональных новостей на этот час — здесь. Самые свежие и популярные публикации событий в России и в мире сегодня - в ТОП-100 и на сайте Russia24.pro. С 2017 года проект 123ru.net стал мультиязычным и расширил свою аудиторию в мировом пространстве. Теперь нас читает не только русскоязычная аудитория и жители бывшего СССР, но и весь современный мир. 123ru.net - мир новостей без границ и цензуры в режиме реального времени. Каждую минуту - 123 самые горячие новости из городов и регионов. С нами Вы никогда не пропустите главное. А самым главным во все века остаётся "время" - наше и Ваше (у каждого - оно своё). Время - бесценно! Берегите и цените время. Здесь и сейчас — знакомства на 123ru.net. . Разместить свою новость локально в любом городе (и даже, на любом языке мира) можно ежесекундно (совершенно бесплатно) с мгновенной публикацией (без цензуры и модерации) самостоятельно - здесь.



Загрузка...

Загрузка...

Экология в России и мире




Путин в России и мире

Лукашенко в Беларуси и мире



123ru.netмеждународная интерактивная информационная сеть (ежеминутные новости с ежедневным интелектуальным архивом). Только у нас — все главные новости дня без политической цензуры. "123 Новости" — абсолютно все точки зрения, трезвая аналитика, цивилизованные споры и обсуждения без взаимных обвинений и оскорблений. Помните, что не у всех точка зрения совпадает с Вашей. Уважайте мнение других, даже если Вы отстаиваете свой взгляд и свою позицию. Smi24.net — облегчённая версия старейшего обозревателя новостей 123ru.net.

Мы не навязываем Вам своё видение, мы даём Вам объективный срез событий дня без цензуры и без купюр. Новости, какие они есть — онлайн (с поминутным архивом по всем городам и регионам России, Украины, Белоруссии и Абхазии).

123ru.net — живые новости в прямом эфире!

В любую минуту Вы можете добавить свою новость мгновенно — здесь.






Здоровье в России и мире


Частные объявления в Вашем городе, в Вашем регионе и в России






Загрузка...

Загрузка...





Друзья 123ru.net


Информационные партнёры 123ru.net



Спонсоры 123ru.net