Программирование 3D и VR графики.

Программирование, Хакинг, Безопасность, Софт, Железо, а также всё связанное с компьютерами
Аватара пользователя
BDK
Сообщения: 3665
Зарегистрирован: 17 май 2015, 23:27
Откуда: Беларусь
Благодарил (а): 152 раза
Поблагодарили: 388 раз

Программирование 3D и VR графики.

Сообщение BDK »

Начал осваивать среду разработки Unity. Приложения созданные на Unity легко компилируются под любую платформу - я уже опробовал под windows на ноутбуке и под android на смартфоне - всё отлично работает и выглядит одинаково. Собственно меня интересует разработка приложений под виртуальную реальность - для шлемов VR под андроидом.
Аватара пользователя
BDK
Сообщения: 3665
Зарегистрирован: 17 май 2015, 23:27
Откуда: Беларусь
Благодарил (а): 152 раза
Поблагодарили: 388 раз

Re: Программирование 3D и VR графики.

Сообщение BDK »

Насчет кнопок и вообще windows интерфейса - я решил что программировать под это значит убивать впустую время. Я сделал выбор в пользу программ которые во первых не зависят от платформы, во вторых от операционной системы, в третих от конкретного вида графического интерфейса. То есть программа должна одинаково работать и под виндой и под линукс и на андроиде и на iOS а интерфейс пользователя не должен иметь вид только окошек с кнопочкми и другими ползунками - это может быть например пространственная структура к тому же еще и в виртуальной реальности - например элементы управления расположенные в пространстве вокруг пользователя.

В общем я решил использовать игровой движок Unity в качестве универсальной графической прослойки для любых своих приложений. То есть и интерфейс пользователя и вообще вся графика а так же звук приложения будут делаться на Unity - он работает на всех основных платформах и под всеми основными операционками. А программировать под windows-интерфейс я не буду уже никогда - выбросил и забыл как кошмарный сон.

Приглашаю присоединиться к сообществу разработчиков на Unity. Может замутим что нибудь вместе.

Основной язык на Unity это C#. Простой и удобный. Переход с Delphi на C# лично мной ощущается безуадрно - то есть я вообще не заметил перехода и уже через несколько минут перестал замечать что это не Delphi. Ну сказывается опыт программирования на разных языках. Если такого опыта нет то поначалу наверное будешь немного путаться между синтаксисом Delphi и C#. Хотя по сути все ООП языки идентичны.

К тому же вроде бы на Unity есть возможность использовать DLL-библиотеки написанные на других языках - включая Delphi. Но лично я этим пользоваться не хочу потому что это автоматически привязывает к windows а я бы хотел чтобы мои приложения работали где угодно а не только на windows. Так что можете считать что Delphi для меня в прошлом - теперь я буду в основном писать на C# а так же на GLSL - язык шейдеров в OpenGL -его я использую для GPU-вычислений. Unity так же поддерживает его
Аватара пользователя
BDK
Сообщения: 3665
Зарегистрирован: 17 май 2015, 23:27
Откуда: Беларусь
Благодарил (а): 152 раза
Поблагодарили: 388 раз

Re: Программирование 3D и VR графики.

Сообщение BDK »

Вот набросал пример под windows:
https://yadi.sk/d/46R3vWnu3RRYPD

И вот примерно то же самое под Android для шлема виртуальной реальности:
https://yadi.sk/d/Cu7aBvj13RRYYD
Аватара пользователя
BDK
Сообщения: 3665
Зарегистрирован: 17 май 2015, 23:27
Откуда: Беларусь
Благодарил (а): 152 раза
Поблагодарили: 388 раз

Re: Программирование 3D и VR графики.

Сообщение BDK »

Смысл в чем - смысл очень простой. Unity как бы предназначен для игр. Но что нам мешает вместо игровых объектов нарисовать например те же окошки с элементами управления в них - и таким образом реализовать какой угодно интерфейс пользователя в том числе для серьезных приложений - не только для игр. И при этом мы автоматически получаем программу под все платформы. А раз так - то зачем нужно что-то еще? Вот такой простой смысл моего перехода с Delphi на Unity.
Аватара пользователя
Андрей
Архитектор
Сообщения: 7305
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов
Благодарил (а): 517 раз
Поблагодарили: 462 раза

Re: Программирование 3D и VR графики.

Сообщение Андрей »

BDK писал(а):Вот набросал пример под windows:
https://yadi.sk/d/46R3vWnu3RRYPD
Что делает этот проект? У меня просто ландшафт, какие-то кубы впереди и мышью вертеть можно стоя на месте.
Аватара пользователя
BDK
Сообщения: 3665
Зарегистрирован: 17 май 2015, 23:27
Откуда: Беларусь
Благодарил (а): 152 раза
Поблагодарили: 388 раз

Re: Программирование 3D и VR графики.

Сообщение BDK »

Смысл примера - показать что я действительно научился пользоваться Unity и что она действительно позволяет легко скомпилировать одно и то же приложение как под windows так и под android, как для обычного дисплея так и для шлемов VR.

Само содержимое примера смысловой нагрузки не несет - там просто показана некая примитивная модель дома из нескольких комнат и без крыши. Эта модель была нарисована мной в сторонней программе - не в unity - то есть я проверил что можно создавать геометрию в сторонних приложениях и CAD системах и легко внедрять её в unity. На создание этого у меня ушло по 15-30 минут за три раза по вечерам. Но это потому что я изучал еще не знакомое. В процессе создания этого примера я изучил такие пункты:
1.Создание типичного проекта в Unity.
2.Загрузку геометрии из сторонних приложений 3D моделирования.
3.Грамотный расчет освещения в unity (видим тени на стенах виртуальной комнаты).
4.Программирование поведения объектов в unity(камера прикреплена к объекту который движется и управляется мышкой и клавишами)
5.Компиляция проекта под windows и android, для обычного дисплея и для шлемов VR.



Если сейчас повторить этот пример то уйдет минут 20 на всё. Может и меньше.
Аватара пользователя
BDK
Сообщения: 3665
Зарегистрирован: 17 май 2015, 23:27
Откуда: Беларусь
Благодарил (а): 152 раза
Поблагодарили: 388 раз

Re: Программирование 3D и VR графики.

Сообщение BDK »

Переношу свои программы с Delphi на C#. Язык просто супер - я в него влюблён. Программы переносятся на него легко и приятно.
Аватара пользователя
BDK
Сообщения: 3665
Зарегистрирован: 17 май 2015, 23:27
Откуда: Беларусь
Благодарил (а): 152 раза
Поблагодарили: 388 раз

Re: Программирование 3D и VR графики.

Сообщение BDK »

Вчера пришел шлем Baofeng mojing S1. Протестировал, сравнил с предыдущим - Bobo VR Z4. И могу сказать - Baofeng действительно намного лучше! Во первых угол обзора явно шире. Вау-эффект наблюдается. Во вторых для глаз намного комфортней. Спустя 3-5 минут в шлеме вообще перестаешь замечать какой либо дискомфорт для глаз. В Bobo дискомфорт был, хотя там и настройка межзрачкового расстояния была но она не спасала. Все таки я думаю дело именно в маленьком угле обзора - он вносит весь дискомфорт и создает эффект водолазной маски.

Далее - площадь перекрытия картинок правого и левого глаза в Baofeng практически по всему полю зрения. В Bobo если долго настраивать выискивая оптимальное межзрачковое расстояние перекрывалась обоими глазами в лучшем случае довольно узкая область по середине а по краям каждый глаз видел только свою картинку - соответственно и стерео изображение было только в узкой области посередине. В Baofeng же этой проблемы нет - стереоэффект наблюдается по всей площади изображения за исключением области которая закрывается носом :) Но это уже чисто человеческое физиологическое ограничение.

Кроме прочего в Baofeng почти не просматриваются пикселы экрана, при том что картинка вполне четкая - то есть это не из-за плохой резкости. Я рассмотрел внимательно линзы - там идут концентрические канавки - то есть линза не гладкая. И в инструкции написано что применены линзы Френеля. Не знаю что это такое но видимо именно эта особенность гасит пикселизацию не ухудшая при этом четкость самой картинки. Действительно очень эффективное решение - в итоге все смотрится намного намного лучше - возможно тоже внося свою лепту в улучшение общей комфортности восприятия.

Кроме того картинка четкая по всей площади. В Bobo такого не было - там картинка четкая в основном посередине и размывалась по краям.
=====

В общем вывод - Bobo выкидываем. Оставляем для использования Baofeng mojing S1.
Аватара пользователя
BDK
Сообщения: 3665
Зарегистрирован: 17 май 2015, 23:27
Откуда: Беларусь
Благодарил (а): 152 раза
Поблагодарили: 388 раз

Re: Программирование 3D и VR графики.

Сообщение BDK »

Вот сейчас закончил калибровку под программное обеспечение Google cardboard. Так что если будете покупать такой же шлем то все настройки для калибровки у меня имеются и я могу поделиться (странно но производители этого не предоставили почему-то - видимо китайцы в конфликте с Google).

Калибровка это очень важно - большинство пользователей пренебрегают ею и в итоге полностью теряют нужный эффект.

После калибровки картинка отображается в очках полностью правильно и не вводит мозг в заблуждение искаженными углами и прочими параметрами изображения - получается максимальный эффект подмены реальной реальности виртуальной. Это например ощущается в сценах полета - хочется ухватиться за что нибудь потому что кажется что реально можешь упасть с большой высоты. Когда калибровка не сделана или сделана не правильно то искаженные параметры изображения плохо обманывают мозг и как следствие эффект погружения в виртуальную реальность получается намного хуже - естественные инстинкты и рефлексы мозга не срабатывают должным образом.
Аватара пользователя
Андрей
Архитектор
Сообщения: 7305
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов
Благодарил (а): 517 раз
Поблагодарили: 462 раза

Re: Программирование 3D и VR графики.

Сообщение Андрей »

Ты делал самодельный шлем. Что вынудило тебя покупать другие версии?