Программирование 3D и VR графики.
-
- Сообщения: 3665
- Зарегистрирован: 17 май 2015, 23:27
- Откуда: Беларусь
- Благодарил (а): 152 раза
- Поблагодарили: 389 раз
Программирование 3D и VR графики.
Начал осваивать среду разработки Unity. Приложения созданные на Unity легко компилируются под любую платформу - я уже опробовал под windows на ноутбуке и под android на смартфоне - всё отлично работает и выглядит одинаково. Собственно меня интересует разработка приложений под виртуальную реальность - для шлемов VR под андроидом.
-
- Сообщения: 3665
- Зарегистрирован: 17 май 2015, 23:27
- Откуда: Беларусь
- Благодарил (а): 152 раза
- Поблагодарили: 389 раз
Re: Программирование 3D и VR графики.
Насчет кнопок и вообще windows интерфейса - я решил что программировать под это значит убивать впустую время. Я сделал выбор в пользу программ которые во первых не зависят от платформы, во вторых от операционной системы, в третих от конкретного вида графического интерфейса. То есть программа должна одинаково работать и под виндой и под линукс и на андроиде и на iOS а интерфейс пользователя не должен иметь вид только окошек с кнопочкми и другими ползунками - это может быть например пространственная структура к тому же еще и в виртуальной реальности - например элементы управления расположенные в пространстве вокруг пользователя.
В общем я решил использовать игровой движок Unity в качестве универсальной графической прослойки для любых своих приложений. То есть и интерфейс пользователя и вообще вся графика а так же звук приложения будут делаться на Unity - он работает на всех основных платформах и под всеми основными операционками. А программировать под windows-интерфейс я не буду уже никогда - выбросил и забыл как кошмарный сон.
Приглашаю присоединиться к сообществу разработчиков на Unity. Может замутим что нибудь вместе.
Основной язык на Unity это C#. Простой и удобный. Переход с Delphi на C# лично мной ощущается безуадрно - то есть я вообще не заметил перехода и уже через несколько минут перестал замечать что это не Delphi. Ну сказывается опыт программирования на разных языках. Если такого опыта нет то поначалу наверное будешь немного путаться между синтаксисом Delphi и C#. Хотя по сути все ООП языки идентичны.
К тому же вроде бы на Unity есть возможность использовать DLL-библиотеки написанные на других языках - включая Delphi. Но лично я этим пользоваться не хочу потому что это автоматически привязывает к windows а я бы хотел чтобы мои приложения работали где угодно а не только на windows. Так что можете считать что Delphi для меня в прошлом - теперь я буду в основном писать на C# а так же на GLSL - язык шейдеров в OpenGL -его я использую для GPU-вычислений. Unity так же поддерживает его
В общем я решил использовать игровой движок Unity в качестве универсальной графической прослойки для любых своих приложений. То есть и интерфейс пользователя и вообще вся графика а так же звук приложения будут делаться на Unity - он работает на всех основных платформах и под всеми основными операционками. А программировать под windows-интерфейс я не буду уже никогда - выбросил и забыл как кошмарный сон.
Приглашаю присоединиться к сообществу разработчиков на Unity. Может замутим что нибудь вместе.
Основной язык на Unity это C#. Простой и удобный. Переход с Delphi на C# лично мной ощущается безуадрно - то есть я вообще не заметил перехода и уже через несколько минут перестал замечать что это не Delphi. Ну сказывается опыт программирования на разных языках. Если такого опыта нет то поначалу наверное будешь немного путаться между синтаксисом Delphi и C#. Хотя по сути все ООП языки идентичны.
К тому же вроде бы на Unity есть возможность использовать DLL-библиотеки написанные на других языках - включая Delphi. Но лично я этим пользоваться не хочу потому что это автоматически привязывает к windows а я бы хотел чтобы мои приложения работали где угодно а не только на windows. Так что можете считать что Delphi для меня в прошлом - теперь я буду в основном писать на C# а так же на GLSL - язык шейдеров в OpenGL -его я использую для GPU-вычислений. Unity так же поддерживает его
-
- Сообщения: 3665
- Зарегистрирован: 17 май 2015, 23:27
- Откуда: Беларусь
- Благодарил (а): 152 раза
- Поблагодарили: 389 раз
Re: Программирование 3D и VR графики.
Вот набросал пример под windows:
https://yadi.sk/d/46R3vWnu3RRYPD
И вот примерно то же самое под Android для шлема виртуальной реальности:
https://yadi.sk/d/Cu7aBvj13RRYYD
https://yadi.sk/d/46R3vWnu3RRYPD
И вот примерно то же самое под Android для шлема виртуальной реальности:
https://yadi.sk/d/Cu7aBvj13RRYYD
-
- Сообщения: 3665
- Зарегистрирован: 17 май 2015, 23:27
- Откуда: Беларусь
- Благодарил (а): 152 раза
- Поблагодарили: 389 раз
Re: Программирование 3D и VR графики.
Смысл в чем - смысл очень простой. Unity как бы предназначен для игр. Но что нам мешает вместо игровых объектов нарисовать например те же окошки с элементами управления в них - и таким образом реализовать какой угодно интерфейс пользователя в том числе для серьезных приложений - не только для игр. И при этом мы автоматически получаем программу под все платформы. А раз так - то зачем нужно что-то еще? Вот такой простой смысл моего перехода с Delphi на Unity.
-
- Архитектор
- Сообщения: 7353
- Зарегистрирован: 06 май 2015, 14:10
- Откуда: Чехов
- Благодарил (а): 517 раз
- Поблагодарили: 462 раза
Re: Программирование 3D и VR графики.
Что делает этот проект? У меня просто ландшафт, какие-то кубы впереди и мышью вертеть можно стоя на месте.BDK писал(а):Вот набросал пример под windows:
https://yadi.sk/d/46R3vWnu3RRYPD
-
- Сообщения: 3665
- Зарегистрирован: 17 май 2015, 23:27
- Откуда: Беларусь
- Благодарил (а): 152 раза
- Поблагодарили: 389 раз
Re: Программирование 3D и VR графики.
Смысл примера - показать что я действительно научился пользоваться Unity и что она действительно позволяет легко скомпилировать одно и то же приложение как под windows так и под android, как для обычного дисплея так и для шлемов VR.
Само содержимое примера смысловой нагрузки не несет - там просто показана некая примитивная модель дома из нескольких комнат и без крыши. Эта модель была нарисована мной в сторонней программе - не в unity - то есть я проверил что можно создавать геометрию в сторонних приложениях и CAD системах и легко внедрять её в unity. На создание этого у меня ушло по 15-30 минут за три раза по вечерам. Но это потому что я изучал еще не знакомое. В процессе создания этого примера я изучил такие пункты:
1.Создание типичного проекта в Unity.
2.Загрузку геометрии из сторонних приложений 3D моделирования.
3.Грамотный расчет освещения в unity (видим тени на стенах виртуальной комнаты).
4.Программирование поведения объектов в unity(камера прикреплена к объекту который движется и управляется мышкой и клавишами)
5.Компиляция проекта под windows и android, для обычного дисплея и для шлемов VR.
Если сейчас повторить этот пример то уйдет минут 20 на всё. Может и меньше.
Само содержимое примера смысловой нагрузки не несет - там просто показана некая примитивная модель дома из нескольких комнат и без крыши. Эта модель была нарисована мной в сторонней программе - не в unity - то есть я проверил что можно создавать геометрию в сторонних приложениях и CAD системах и легко внедрять её в unity. На создание этого у меня ушло по 15-30 минут за три раза по вечерам. Но это потому что я изучал еще не знакомое. В процессе создания этого примера я изучил такие пункты:
1.Создание типичного проекта в Unity.
2.Загрузку геометрии из сторонних приложений 3D моделирования.
3.Грамотный расчет освещения в unity (видим тени на стенах виртуальной комнаты).
4.Программирование поведения объектов в unity(камера прикреплена к объекту который движется и управляется мышкой и клавишами)
5.Компиляция проекта под windows и android, для обычного дисплея и для шлемов VR.
Если сейчас повторить этот пример то уйдет минут 20 на всё. Может и меньше.
-
- Сообщения: 3665
- Зарегистрирован: 17 май 2015, 23:27
- Откуда: Беларусь
- Благодарил (а): 152 раза
- Поблагодарили: 389 раз
Re: Программирование 3D и VR графики.
Переношу свои программы с Delphi на C#. Язык просто супер - я в него влюблён. Программы переносятся на него легко и приятно.
-
- Сообщения: 3665
- Зарегистрирован: 17 май 2015, 23:27
- Откуда: Беларусь
- Благодарил (а): 152 раза
- Поблагодарили: 389 раз
Re: Программирование 3D и VR графики.
Вчера пришел шлем Baofeng mojing S1. Протестировал, сравнил с предыдущим - Bobo VR Z4. И могу сказать - Baofeng действительно намного лучше! Во первых угол обзора явно шире. Вау-эффект наблюдается. Во вторых для глаз намного комфортней. Спустя 3-5 минут в шлеме вообще перестаешь замечать какой либо дискомфорт для глаз. В Bobo дискомфорт был, хотя там и настройка межзрачкового расстояния была но она не спасала. Все таки я думаю дело именно в маленьком угле обзора - он вносит весь дискомфорт и создает эффект водолазной маски.
Далее - площадь перекрытия картинок правого и левого глаза в Baofeng практически по всему полю зрения. В Bobo если долго настраивать выискивая оптимальное межзрачковое расстояние перекрывалась обоими глазами в лучшем случае довольно узкая область по середине а по краям каждый глаз видел только свою картинку - соответственно и стерео изображение было только в узкой области посередине. В Baofeng же этой проблемы нет - стереоэффект наблюдается по всей площади изображения за исключением области которая закрывается носом Но это уже чисто человеческое физиологическое ограничение.
Кроме прочего в Baofeng почти не просматриваются пикселы экрана, при том что картинка вполне четкая - то есть это не из-за плохой резкости. Я рассмотрел внимательно линзы - там идут концентрические канавки - то есть линза не гладкая. И в инструкции написано что применены линзы Френеля. Не знаю что это такое но видимо именно эта особенность гасит пикселизацию не ухудшая при этом четкость самой картинки. Действительно очень эффективное решение - в итоге все смотрится намного намного лучше - возможно тоже внося свою лепту в улучшение общей комфортности восприятия.
Кроме того картинка четкая по всей площади. В Bobo такого не было - там картинка четкая в основном посередине и размывалась по краям.
=====
В общем вывод - Bobo выкидываем. Оставляем для использования Baofeng mojing S1.
Далее - площадь перекрытия картинок правого и левого глаза в Baofeng практически по всему полю зрения. В Bobo если долго настраивать выискивая оптимальное межзрачковое расстояние перекрывалась обоими глазами в лучшем случае довольно узкая область по середине а по краям каждый глаз видел только свою картинку - соответственно и стерео изображение было только в узкой области посередине. В Baofeng же этой проблемы нет - стереоэффект наблюдается по всей площади изображения за исключением области которая закрывается носом Но это уже чисто человеческое физиологическое ограничение.
Кроме прочего в Baofeng почти не просматриваются пикселы экрана, при том что картинка вполне четкая - то есть это не из-за плохой резкости. Я рассмотрел внимательно линзы - там идут концентрические канавки - то есть линза не гладкая. И в инструкции написано что применены линзы Френеля. Не знаю что это такое но видимо именно эта особенность гасит пикселизацию не ухудшая при этом четкость самой картинки. Действительно очень эффективное решение - в итоге все смотрится намного намного лучше - возможно тоже внося свою лепту в улучшение общей комфортности восприятия.
Кроме того картинка четкая по всей площади. В Bobo такого не было - там картинка четкая в основном посередине и размывалась по краям.
=====
В общем вывод - Bobo выкидываем. Оставляем для использования Baofeng mojing S1.
-
- Сообщения: 3665
- Зарегистрирован: 17 май 2015, 23:27
- Откуда: Беларусь
- Благодарил (а): 152 раза
- Поблагодарили: 389 раз
Re: Программирование 3D и VR графики.
Вот сейчас закончил калибровку под программное обеспечение Google cardboard. Так что если будете покупать такой же шлем то все настройки для калибровки у меня имеются и я могу поделиться (странно но производители этого не предоставили почему-то - видимо китайцы в конфликте с Google).
Калибровка это очень важно - большинство пользователей пренебрегают ею и в итоге полностью теряют нужный эффект.
После калибровки картинка отображается в очках полностью правильно и не вводит мозг в заблуждение искаженными углами и прочими параметрами изображения - получается максимальный эффект подмены реальной реальности виртуальной. Это например ощущается в сценах полета - хочется ухватиться за что нибудь потому что кажется что реально можешь упасть с большой высоты. Когда калибровка не сделана или сделана не правильно то искаженные параметры изображения плохо обманывают мозг и как следствие эффект погружения в виртуальную реальность получается намного хуже - естественные инстинкты и рефлексы мозга не срабатывают должным образом.
Калибровка это очень важно - большинство пользователей пренебрегают ею и в итоге полностью теряют нужный эффект.
После калибровки картинка отображается в очках полностью правильно и не вводит мозг в заблуждение искаженными углами и прочими параметрами изображения - получается максимальный эффект подмены реальной реальности виртуальной. Это например ощущается в сценах полета - хочется ухватиться за что нибудь потому что кажется что реально можешь упасть с большой высоты. Когда калибровка не сделана или сделана не правильно то искаженные параметры изображения плохо обманывают мозг и как следствие эффект погружения в виртуальную реальность получается намного хуже - естественные инстинкты и рефлексы мозга не срабатывают должным образом.
-
- Архитектор
- Сообщения: 7353
- Зарегистрирован: 06 май 2015, 14:10
- Откуда: Чехов
- Благодарил (а): 517 раз
- Поблагодарили: 462 раза
Re: Программирование 3D и VR графики.
Ты делал самодельный шлем. Что вынудило тебя покупать другие версии?