Pull to refresh
24
Вячеслав Смитюх@Viacheslav01

Пользователь

1,5
Rating
13
Subscribers
Send message
Приложение больше рассматривали для использования в салоне, пришел клиент его поводили, все чего в салоне нет на планшете показали, что он захотел сконфигурировали и скинули ему на телефон/планшет, созревать :)
Почему не приняли, не знаю, в то время там вообще были ну очень большие изменения организационной структуры, меня чуть позже тоже организовали на выход из штата как не нужного, правда с очень хорошим выходным пособием :)
Был проект создания витрины автосалона, с трехмерными конфигураторами и прочими плюшками.
Дальше предварительного проектирования не ушел, был признан ненужным.
Расчеты положения стрелок направления, я передаю вектор направления и расстояние от начала участка. Если считать на GPU то все координаты совпадают. Если считать на процессоре, результат скачет вокруг нужной точки. Расчеты везде проводил в 32 разрядных вещественных, потому, что видеопроцессор другого не умеет, а вот процессор вероятно считает в 64 бита, а потом приводит к 32. В общем проблема скорее всего в округлении. Добраться до расчетов шейдеров я не смог, поэтому просто принял за данность.
Да они решаемы и решены. После своих изысканий, думал написать статью, но мне запретили :)

Еще один интересный «прикол», что бы использовать кеширование хотел делать расчеты на процессоре, а потом просто отрисовывать. Не тут то было, начали появляться мизерные но отклонения, которые были хорошо видны на маленьких масштабах.
На картинке 600 точек :)
Это скриншот из магазина приложений, но ситуация когда надо будет рисовать все точки, вполне реальна.
А там и так не много вызовов рендера, обычно 6 дроколов на проход, больше только для треков с огромным количеством поворотов.
Раскраска не из текстуры, а просто математика в шейдерах, получается быстрее терстур и главное стабильно качество на различных резрешениях и размерах экранов.
На самом деле большую проблему для меня представляла тесселяция и отрисовка стрелок направления.
Ну и математика для пересчета гео координат на GPU тоже заняла ощутимое время.
Симплификация используется по полной, более того 60000 это количество маршрутных точек, прошедших симплификацию на сервере.
А что с алгоритмами раскраски?
У трекеров свои заморочки, я недавно делал отображение трека, довольно не тривиальная задача оказалась, но в итоге удалось с хорошей производительностью отрисовать трек из 60000 точек на WP. Очень сильно осложнялось, тем что пришлось все рисовать в 3D, так как в WP 8 нет поддержки 2D графики :)

Получилось вроде не плохо cdn.marketplaceimages.windowsphone.com/v8/images/46a9e67d-df20-4a8d-b641-1ce2db649c09?imageType=ws_screenshot_large&rotation=0
Хотел спать но не смог оторваться!
Дочитал, буду спать спокойно.
Моно пробовал давно, когда правил балом еще .Net 1.1, поэтому все истории про MS.NET :)

Первая про сортировку массивов, был у нас код который сортировал массивы из пары сотен тысяч элементов, предвкушая возмущения, скажу что сортировка для UI. И так все отработано, сортировка работает достаточно быстро для того, что бы не быть заметной пользователям. Но в какой-то момент времени получаем тикет, долго грузится система, начинаем искать. Находим, дело в том, что MS изменила алгоритм сортировки с целью его оптимизации в .Net 3.5 и алгоритм стал нестабильным! По не понятным причинам, он мог то работать с прежней скоростью, то проваливаться в производительности в сотни и тысячи раз! Полечили своей реализацией квиксерча, после выхода .Net 3.5.1 все было исправлено, вернулись на родную реализацию.

Вторая про работу в много экранном режиме под виртуальными машинами, всей подноготной не помню, но у нас клиенты работали в облаке через удаленный доступ предоставленный сервисами Citrix, все бы хорошо но! У некоторых клиентов все элементы меню, всплывающих окон и подобных элементов UI были просто перечеркнуты красным крестом, такое можно увидеть при падении UI потока при отрисовке содержимого контрола. Расследование показало, что .Net в таком режиме работы не может определить основной монитор, если он не установлен в системе как левый нижний! А у .Net внутри много кода который оперирует аксиомой, что основной монитор всегда не null, результат падение всего кода внутри .Net использующего информацию о основном мониторе.

Исправить и то и то, стало возможным только из за желания разобраться, что там не так :)
Была идея использовать галогенки, так как стоял димер, но не сложилось у меня с ними, именитых не нашел, а «качественное» китайское просто повзрывалось!
Увы как показала практика использования кучи люминесцентных ламп от этих производителей, и нескольких светодиодных (померли за полгода).
Лампы этих производителей никак нельзя считать экономичными, с точки зрения денег.
Я очень сильно опечален исчезновением нормальных ламп из магазинов, найти в продаже Philips, Osram или GE просто нереально, все заполонили китайские недолампы, которые служат просто смешное время.
С травматикой и огнестрелом благо не знаком, а вот как то раз схлопотал пулю правда утяжеленную из обычной пневматики ИЖ, давно было но больше не хочу.

Правда попало четко перпендикулярно с расстояния в 2 метра в ногу, пацанами на слабо долбасили друг друга :)

Ну а вот 220 меня еще со школьного радиокружка и трезвого не впечатляют, ну просто немного неприятно щиплет :)
То же стрельбище, только мы из земляного вала выковыривали.
Результат часто печальный, когда то занимался как раз приведением проекта в нормальный вид после конверсии из VB в C#.
Преимущества: действует и на пьяных, и на обколотых, и на старых, и на молодых. Психологическо-болевой эффект после удара этой штукой, позволяет не бояться желания противника отобрать эту штуку. В отличие от пистолета, да.


Можно поинтересоваться когда долбануло, вы были пьяны и обколоты? А так же вы на себе испытывали выстрел из пистолета, ну хотя бы пневматического?
Любое средство самообороны, надо использовать без, попытки запугать противника его демонстрацией.
Как минимум он будет готов, как максимум без лишней демонстрации применит то, что есть у него.
Просто я не притворяюсь праведником, да мучал, да было и что? Подавляющее большинство делало то же самое, в том или ином виде, а теперь все стали белыми и пушистыми. Это история, моя история, это часть меня, а отрицание и неприятие себя, это либо лукавство для придания себе благородного ореола либо прямой путь к сумасшествию. Буду ли я делать то же самое сейчас, нет не буду.
А я и думаю, что так много :)
Спасибо буду знать, пригодится!
Эх… счастлив автор, он еще на WP с сетью в фоновых потоках не работал :)

Information

Rating
1,829-th
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity

Specialization

Mobile Application Developer
Middle
Android development
Development of mobile applications
Kotlin
Android SDK