Программа-просмотрщик объектов: требуется помощь программистов!

Автор Zontik, 21 июля 2017 10:16:53

« назад - далее »

0 Пользователи и 2 гостей просматривают эту тему.

nemyax

Force
Должно быть невидия прощает нечто такое, чего не прощает AMD. Там с размерностью вещественных не могло возникнуть путаницы, например?
Желаю тебе из тысячи рулеток одну — самую русскую!
Желаю тебе из тысячи надежд одну — самую крупскую!

Zontik

А я пробовал потыкать по левому краю, но, видимо, никуда не попал.
Дайте глазам отдохнуть! Тёмное место

Force

Цитата: Boris3000 от 07 сентября 2018 10:34:29
Цитата: Force от 07 сентября 2018 09:25:01
1. Тут мнения расходятся, ты просишь зум, а сейчас двигается модель. Изначально просили двигать модель.
А какова аргументация? Зачем нужны такие чудовищные искажения пропорций при приближении, как будто моделью прямо в нос тыкают? Ведь это же просмотрщик, а не игра.
Аргументация была такая, что именно так ведет себя камера в трехмерных редакторах. Думаю, надо спросить "заказчиков" и заинтересованных.

Цитата: Boris3000 от 07 сентября 2018 10:34:29
Цитата: Force от 07 сентября 2018 09:25:01
7. Я не очень понял зачем это нужно, поэтому ничего не делал в этом направлении.
Не особо нужно, просто я хотел запускать её с высоким приоритетом, а так как при тестировании запускать приходится по сто раз, то каждый раз выставлять приоритет в диспетчере задач напряжно и долго.
Но вообще, я как-то ещё не встречал программ, у которых были бы проблемы с запуском через скрипты. Поэтому выглядит это малость дико.
И если ты ничего не предпринимал по этому поводу, то почему поведение программы изменилось?
Дело в том, что при открывании файла программе передаются стандартные аргументы - ее расположение и путь к открываемому файлу. Полагаю, при запуске из консоли, расположение программы ей не передается в качестве аргумента. Можно будет поизучать этот вопрос.

Цитата: Boris3000 от 07 сентября 2018 10:34:29
Цитата: Force от 07 сентября 2018 09:25:01
Сейчас нет ограничения по частоте кадров, она соответствует установке в драйвере, если не установлена принудительная вертикальная синхронизация, видеокарта рисует столько кадров в секунду, сколько способна :): 1000, 2000, 6000... Отсюда и такая дикая напруга
У меня стояла принудительная вертикальная синхронизация и частота 60 Гц.
Вообще, 55 градусов - это вполне себе низкая температура для отрисовки 3d-графики, потому что когда долго и упорно вращается модель, это именно оно. Ты наверное ее долго вращал :). Ну как бы, включаешь того же первого вора и температура вырастает до 55 градусов, а то и выше - это нормально, учитывая что у тебя включена синхронизация. В качестве эксперимента можешь запустить просмотрщик и ничего не делать, температура не должна расти. Сразу оговорюсь, движения мышки над окном считаются "действием", поскольку могут привести к подсветке элементов интерфейса, а следовательно - перерисовке кадра. Да, возможно, следует делать некий "ранний выход", если визуально ничего не изменилось, это даже не сложно сделать. Надо подумать над этим, стоит ли оно того...

Цитата: Boris3000 от 07 сентября 2018 12:25:37
Цитата: Boris3000 от 07 сентября 2018 10:34:29
Цитата: Force от 07 сентября 2018 09:25:01
5. Правая кнопка не таскает модель? Модель должна перетаскиваться правой кнопкой.
Не знаю, не пробовал. В сопроводительном письме об этом не было. Ща попробую.
Попробовал. Кнопка-то правая работает, но вот только тасканием это сложно назвать. Это скорее всё то же вращение, но только не вокруг собственной оси, а вокруг внешней -- как Земля вокруг Солнца. В итоге после такого "перетаскивания" придётся снова подкручивать.
Думаю, такие ощущения из-за перспективных искажений, модель движется в плоскости, параллельной экрану.

Цитата: nemyax от 07 сентября 2018 13:52:17
Force
Должно быть невидия прощает нечто такое, чего не прощает AMD. Там с размерностью вещественных не могло возникнуть путаницы, например?
За типами следил, по идее не должно быть проблем, но кто не ошибается? Всякое возможно. Это надо дебажить, наугад сказать сложно...

Цитата: Zontik от 07 сентября 2018 14:16:59
А я пробовал потыкать по левому краю, но, видимо, никуда не попал.
А в папке с открываемой моделью точно было больше 25 моделей? Потому что лопата в папке одна.

Кстати, напоминаю, просмотрщик можно связать с типом файлов bin и открывать файлы двойным кликом, или использовать в меню "Открыть с помощью...", или перетащить файл модели прямо в окно программы для открытия.

Zontik

ЦитироватьА в папке с открываемой моделью точно было больше 25 моделей?
Точно не больше. Так что я, скорее всего, попадал в пустое место. Или между файлами. Не скажу, что пытался долго и упорно - просто не видел перспектив, поэтому потыкал несколько раз и бросил.
Цитироватьпросмотрщик можно связать с типом файлов bin и открывать файлы двойным кликом
Именно такое использование я и планировал изначально. В связи с чем появившийся быстрый старт очень порадовал.
Дайте глазам отдохнуть! Тёмное место

spy

[off]Зонтик, можно совет? бросай этот обрубок ХП, и переходи на 8.1 х64.  [/off]

Zontik

[off]А можно, я внимательно выслушаю совет и ему не последую?
В любом случае глупо предлагать сегодня переходить на что-то кроме десятки. Все остальное уже слито в унитаз, только еще не доплыло до коллектора.[/off]
Дайте глазам отдохнуть! Тёмное место

nemyax

Цитата: Zontik от 07 сентября 2018 22:13:37[off]В любом случае глупо предлагать сегодня переходить на что-то кроме десятки.[/off]
[off]На линукс не глупо.[/off]
Желаю тебе из тысячи рулеток одну — самую русскую!
Желаю тебе из тысячи надежд одну — самую крупскую!

Chuzhoi

Что-то все вдруг заговорили, заговорили... Выскажусь и я. Сразу замечу, что модели отображаются нормально, список файлов видно, файлы выбираются, навигация по файлам и папкам в целом работает нормально (до корневой папки текущего диска) - за исключением бага, о котором ниже. В целом программа производит впечатление хоть и сырого, но уже вполне юзабельного продукта.

Теперь замечания.

Эстетика:

1. Лопата находится не по центру вьюпорта (то есть той части окна, которая отведена на отображение модели), а по центру окна, что при наличии списка файлов не совсем правильно. Такое впечатление, что вьюпорт по-прежнему простирается на всю ширину окна, как и в предыдущей версии, а список файлов наложен поверх него.

2. Шрифт в новой версии крупноват и ярковат. Я бы сделал как в предыдущей версии (0.5) - посерее и помельче. Все-таки главное для нас - посмотреть на модель, а текстом выводится вспомогательная информация, которая не должна визуально тянуть на себя одеяло.

В том числе это касается сообщения о ненайденных файлах или невозможности открыть файл (красного цвета) - шрифт в этом сообщении можно сделать значительно мельче.

Шрифт в списке файлов также можно сделать чуть помельче, цветовая же гамма полностью устраивает. "Плотность" имен файлов можно слегка увеличить, чтобы больше файлов на экран влезало. Впрочем, мое впечатление от шрифта в списке не совсем однозначное - если большинство устраивает именно такой размер, то можно и так оставить.

3. Длинные имена файлов и папок отображаются не совсем корректно - то квадратная скобка вылезет за пределы списка и наедет на вьюпорт, то длинное имя не очень красиво перенесется на следующую строчку, в которой видны только верхние кончики букв.

Эргономика:

1. Очень хотелось бы иметь изменяемое и распахиваемое на весь экран окно.

2. Очень хотелось бы листание клавишами не только вправо/влево, но и вверх/вниз (а то файлы расположены сверху вниз, а жать нужно в перпендикулярном направлении).

3. Процесс масштабирования (приближение/удаление) на моделях разных размеров ощущается совершенно по-разному и более-менее нормально это происходит лишь на моделях средних размеров (типа мебели). Если же модель маленькая (например, лут), то приближение вообще вызывает исчезновение модели из поля зрения, а удаление (в смысле "отдаление") всего на один щелчок колеса - чрезмерно сильное уменьшение модели. Если модель очень большая (например, здание), то приходится очень долго и энергично крутить колесо, чтобы добиться каких-то существенных результатов. В общем, сейчас, видимо, камера или модель двигается туда-сюда какими-то фиксированными ни к чему не привязанными шагами, а нужно, наверное, сделать смещение камеры в процентах относительно расстояния до модели. Скажем, по 20% в ту и другую сторону.

4. FOV камеры можно сделать примерно на треть уже (расположив камеру, соответственно, несколько дальше). Сейчас при приближении модель выглядит довольно искаженно, а из-за близкого расстояния камера иногда проваливается внутрь модели.

5. Вращение. Я долго не мог понять, что с ним не так, но потом, внимательно сравнив, как это сделано в программе Форса и в 3ds max, наконец, понял.

Во-первых, похоже, что сейчас вращается сама модель. При этом, если модель наклонить по вертикали, то она так и остается в наклонном положении. Если ее после этого вращать по горизонтали, то она так и будет завалена то на бок, то в нашу сторону, то от нас. Воспринимать ее в таком положении очень сложно. Вернуть ее в исходное (прямостоящее) состояние, поворачивая мышью, также сложно (почти невозможно) - приходится кликать сначала на другую модель, а потом снова на эту. И после этого она так же легко сбивается набок одним-единственным поворотом.

А вращать нужно камеру. При этом при вращении камеры по горизонтали угол ее наклона по вертикали должен оставаться неизменным. При таком способе вращения модель всегда будет выглядеть расположенной нормальным, прямостоящим образом. На нашу способность разглядеть модель со всех сторон это ничуть не повлияет - перемещая мышь вертикально, мы всегда сможем и заглянуть под модель, и воспарить над моделью. При вращении же по горизонтали это будет выглядеть так, как будто модель всегда остается в исходном положении и вращается вокруг своей вертикальной оси (ну, или мы летаем на заданной высоте вокруг нее). Именно так сделано вращение в 3ds max и в Блендере (и, вероятно, в других 3d-редакторах).

Угол поворота камеры по вертикали при этом можно не ограничивать - залетев за отметку 90 градусов (т. е. перелетев через зенит), мы окажемся с противоположной стороны модели, но вверх ногами - модель при этом будет располагаться на экране вверх тормашками, но также будет вращаться строго вокруг своей вертикальной оси. Так тоже сделано в 3d-редакторах. Но, если у кого-то вдруг при этом начинается приступ головокружения, можно и ограничить угол наклона диапазоном плюс-минус 90 градусов.

И еще. Чувствительность вращения по вертикали сейчас примерно в два раза выше чувствительности вращения по горизонтали. То есть если повернуть модель по горизонтали на 180 градусов, запомнив расстояние, которое прошла мышка, а затем передвинуть мышку по вертикали на это же расстояние, модель повернется уже на 360 грудусов. Это еще сильнее усугубляет данную ситуацию - повернуть модель по горизонтали, не наклонив ее, становится практически невозможно. Поэтому я предлагаю уравнять эти чувствительности.

Баги:

1. Иногда после выбора очередной модели в списке мышкой пропадает сам список и все надписи (остается только модель). Найти закономерность не удалось (такое впечатление, что это происходит случайно). После клика в то место, где должен быть список, все возвращается на свои места - и список, и надписи.

2. При случайно-намеренном клике в папку System Volume Information, к которой, естественно, нет доступа, программа ругнулась, а затем вылетела. Полагаю, что это произойдет при клике на любую папку, доступ в которую запрещен (особенно может быть актуально для сетевых папок, которые так любит Борис).

Функционал:

1. Иногда вместо некоторых текстур на модели выводится аватар Зонтика (Джордж или как там его). Как я понял, это те текстуры, которых нет в папке txt или txt16, но которые есть в архиве ../res/obj.crf, и которые нормально находит редактор и движок (при условии, конечно, что мы смотрим модели в игровой папке, т. е в thief2/obj). Программа могла бы поискать отсутствующие текстуры в указанном архиве. Найденные таким образом текстуры желательно как-то выделить в списке (например, цветом).

2. Если не сложно, добавить просмотр анимированных мешей (можно без анимации).


Различий в работе legacy и не-legacy версий не обнаружил (упомянутые баги проявляются на обеих версиях). Температуру ядер процессора и видеочипа не измерял, к электросчетчику на лестничную площадку не бегал.

Если что, моя конфигурация такая: Windows 7 64 bit SP1, i3-6100, 16 Gb, GeForce GTX 950 2 Gb, видеодрайвер 391.35.

Chuzhoi

Цитата: Chuzhoi от 07 сентября 2018 22:57:20Скажем, по 20% в ту и другую сторону
Лучше даже так: приближать на 20% (на 1/5), а отдалять на 25% (на 1/4). Таким образом, при отдалении 100 превратится в 125, а при приближении 125 превратится обратно в 100. Что будет предсказуемо для пользователя.

spy

Цитата: Zontik от 07 сентября 2018 22:13:37
[off]А можно, я внимательно выслушаю совет и ему не последую?
В любом случае глупо предлагать сегодня переходить на что-то кроме десятки. Все остальное уже слито в унитаз, только еще не доплыло до коллектора.[/off]

[off]если конфигурация компа позволяет, можно и 10ку. :)[/off]

Force

Chuzhoi, спасибо за развернутый отзыв!
Цитировать1. Лопата находится не по центру вьюпорта (то есть той части окна, которая отведена на отображение модели), а по центру окна, что при наличии списка файлов не совсем правильно. Такое впечатление, что вьюпорт по-прежнему простирается на всю ширину окна, как и в предыдущей версии, а список файлов наложен поверх него.
Так ли это критично, если панель навигации будет отключаемой?

Цитировать3. Длинные имена файлов и папок отображаются не совсем корректно - то квадратная скобка вылезет за пределы списка и наедет на вьюпорт, то длинное имя не очень красиво перенесется на следующую строчку, в которой видны только верхние кончики букв.
Работа над рендерингом интерфейса еще не закончена, но могу сказать сразу, длинные названия будут обрезаться. Не думаю, что буду заморачиваться с элементами списка разной высоты. В ближайшее время - точно.

Цитировать1. Очень хотелось бы иметь изменяемое и распахиваемое на весь экран окно.
Посмотрим, что можно с этим сделать. Как я когда-то говорил, сейчас увеличение размеров окна просто масштабирует картинку.

Цитировать2. Очень хотелось бы листание клавишами не только вправо/влево, но и вверх/вниз (а то файлы расположены сверху вниз, а жать нужно в перпендикулярном направлении).
Если других функций на вверх/вниз не требуется, то да, можно продублировать функционал листания. Для вертикального списка это более логично.

Цитировать3. Процесс масштабирования
Согласен, привязка к расстоянию до объекта (или что-то подобное) - нужно.

Цитировать5. Вращение. Я долго не мог понять, что с ним не так, но потом, внимательно сравнив, как это сделано в программе Форса и в 3ds max, наконец, понял.
Я заморочился и сделал полноценный arcball, а им, оказывается, нужны обыкновенные углы Эйлера! :) Хорошо, если меня кто-нибудь научит вращать модель в блендере, я посмотрю и сделаю как там. Но если честно, зачем нужна такая хирургическая точность при вращении модели в простом просмотрщике? Сейчас всё максимально просто: тащим мышь вбок - модель движется вбок, тащим вертикально - модель движется вертикально за мышью. Или вам нужно лочить ось вращения модели до отпускания мыши?

Цитировать1. Иногда после выбора очередной модели в списке мышкой пропадает сам список и все надписи (остается только модель). Найти закономерность не удалось (такое впечатление, что это происходит случайно). После клика в то место, где должен быть список, все возвращается на свои места - и список, и надписи.
Вот это уже интересно. Можешь видео снять и приложить соответствующий лог?

Цитировать2. При случайно-намеренном клике в папку System Volume Information, к которой, естественно, нет доступа, программа ругнулась, а затем вылетела. Полагаю, что это произойдет при клике на любую папку, доступ в которую запрещен (особенно может быть актуально для сетевых папок, которые так любит Борис).
Да, этот момент я не проверял. Исправим.

Цитировать1. Иногда вместо некоторых текстур на модели выводится аватар Зонтика (Джордж или как там его). Как я понял, это те текстуры, которых нет в папке txt или txt16, но которые есть в архиве ../res/obj.crf, и которые нормально находит редактор и движок (при условии, конечно, что мы смотрим модели в игровой папке, т. е в thief2/obj). Программа могла бы поискать отсутствующие текстуры в указанном архиве. Найденные таким образом текстуры желательно как-то выделить в списке (например, цветом).
В архивах мы искать пока не умеем. Надо цветом в списке текстур выделить названия тех, которые не удалось найти? Так вместо них всех default.dds. Можно еще и цветом выделить.

Цитировать2. Если не сложно, добавить просмотр анимированных мешей (можно без анимации).
Это запланировано. Данный апдейт был направлен на самый базовый функционал, как ты отметил в самом начале - чтобы программой уже можно было пользоваться. Расширение функционала - это уже следующий (долгожданный) этап.

nemyax

#416
Цитата: Force от 10 сентября 2018 16:55:43Но если честно, зачем нужна такая хирургическая точность при вращении модели в простом просмотрщике?
Чтобы up axis не шатало. Её проблематично выпрямлять и, если разобраться, совершенно незачем наклонять.

Цитата: Force от 10 сентября 2018 16:55:43
Хорошо, если меня кто-нибудь научит вращать модель в блендере, я посмотрю и сделаю как там.
Дык средняя кнопка.
Я могу запостить свою реализацию arc rotate-a, если хочешь. У меня тупо обновление азимута-высоты и перестроение матрицы. Значения меняются с шагом в полградуса, чтобы не накапливать ошибок округления. Азимут сбразывается при полном обороте, а высота упирается в полюса.
Желаю тебе из тысячи рулеток одну — самую русскую!
Желаю тебе из тысячи надежд одну — самую крупскую!

Chuzhoi

#417
Цитата: Force от 10 сентября 2018 16:55:43
Цитировать1. Лопата находится не по центру вьюпорта
Так ли это критично, если панель навигации будет отключаемой?
На мой взгляд, критично. Во-первых, это некрасиво. Во-вторых, слева на экране и так выводится информация о модели (текстуры и пр.) - и, если текстур много, текст часто наезжает на объект (если бы объект был расположен по центру, вероятность наезда была бы меньше). Ну и в-третьих - так ли уж нужно делать отключаемую панель навигации? Мне лично она не совершенно мешает. Если же речь идет о дополнительном пространстве для отображения модели, то изменение размера и распахивание окна должно успешно решить этот вопрос. Если, конечно, вы не страстный любитель старины и не сидите до сих пор на ЭЛТ с 1024*768. Но такой любитель должен быть привычен к подобным трудностям, ибо сейчас уже далеко не всякая программа или сайт в такое разрешение влезает.

Цитата: Force от 10 сентября 2018 16:55:43
Работа над рендерингом интерфейса еще не закончена, но могу сказать сразу, длинные названия будут обрезаться. Не думаю, что буду заморачиваться с элементами списка разной высоты. В ближайшее время - точно.
Это, пожалуй, самое несрочное и некритичное замечание.

Цитата: Force от 10 сентября 2018 16:55:43
Посмотрим, что можно с этим сделать. Как я когда-то говорил, сейчас увеличение размеров окна просто масштабирует картинку.
Как я понял, пользователю это пока недоступно?
Вообще, модель, наверное, пусть масштабируется. А вот шрифт и панель масштабироваться, конечно, не должны. Хотя панель, естественно, должна высотой подгоняться под размер окна с соответствующим изменением количества отображаемых файлов.

Цитата: Force от 10 сентября 2018 16:55:43
Я заморочился и сделал полноценный arcball, а им, оказывается, нужны обыкновенные углы Эйлера!
Эйлера, не Эйлера - не знаю. Может, и Эйлера. Должно быть как-то так:



Ссылка

Цитата: Force от 10 сентября 2018 16:55:43Но если честно, зачем нужна такая хирургическая точность при вращении модели в простом просмотрщике?
Дело в том, что если модель, для которой предполагается определенная ориентация в пространстве (а таких моделей на практике большинство), наклоняется на бок и при дальнейших манипуляциях сохраняет наклонное положение, то ее уже становится трудно воспринимать. А при том способе, который принят в Максе/Блендере, модель всегда остается вертикальной - независимо от того, под каким углом мы на нее смотрим.

Цитата: Force от 10 сентября 2018 16:55:43Или вам нужно лочить ось вращения модели до отпускания мыши?
Нет, лочить ничего не нужно.

Цитата: Force от 10 сентября 2018 16:55:43Надо цветом в списке текстур выделить названия тех, которые не удалось найти?
Нет, я про те, которые удалось найти в crf-архивах (чтобы отличать их от тех, которые лежат в txt/txt16 текущей папки). Но и те, которые не удалось найти, тоже можно выделить. Еще одним цветом.

Цитата: Force от 10 сентября 2018 16:55:43Вот это уже интересно. Можешь видео снять и приложить соответствующий лог?
Хорошо, вышлю позже по почте.

Zontik

Я тоже не очень понимаю, кому и зачем нужно отключать панель навигации.
Насчет способа вращения... мои мнения разделились. В способе, который показан на видео, есть свои плюсы, они описаны выше. Но есть и серьезный минус: недостаточная свобода. Допустим, надо взглянуть на модель с какого-то определенного ракурса. В этом случае придется подкручивать ее... ну не знаю, скажем, как штатив. Чтобы направить объектив фотоаппарата в определенную точку, нужно и там покрутить, и вон там, здесь опустить штангу, там ножку укоротить... А когда фотоаппарат в руках - нацелил его в нужное место, и дело сделано.
И если бы не необходимость длинных выдержек, я бы никогда не пользовался такой неудобной вещью.
С другой стороны, сколько раз я пытался поставить случайно наклоненную модель прямо, но это был тот же самый штатив, только с изнанки. Так что я действительно не знаю, как лучше.
Дайте глазам отдохнуть! Тёмное место

Force

Цитата: Chuzhoi от 12 сентября 2018 03:28:28
Цитата: Force от 10 сентября 2018 16:55:43
Цитировать1. Лопата находится не по центру вьюпорта
Так ли это критично, если панель навигации будет отключаемой?
На мой взгляд, критично.
Цитата: Chuzhoi от 12 сентября 2018 03:28:28
Цитата: Force от 10 сентября 2018 16:55:43
Посмотрим, что можно с этим сделать. Как я когда-то говорил, сейчас увеличение размеров окна просто масштабирует картинку.
Как я понял, пользователю это пока недоступно?
Вообще, модель, наверное, пусть масштабируется. А вот шрифт и панель масштабироваться, конечно, не должны. Хотя панель, естественно, должна высотой подгоняться под размер окна с соответствующим изменением количества отображаемых файлов.
Пожелания внесены в список доработок. Сразу оговорюсь, что в виду их специфичности, им выставлен не самый высокий приоритет.

Цитата: Chuzhoi от 12 сентября 2018 03:28:28
Ссылка
Вот теперь стало понятно, что требуется, правда не всем это по душе... Предлагаю вам это обсудить.

Цитата: Chuzhoi от 12 сентября 2018 03:28:28
Цитата: Force от 10 сентября 2018 16:55:43Надо цветом в списке текстур выделить названия тех, которые не удалось найти?
Нет, я про те, которые удалось найти в crf-архивах (чтобы отличать их от тех, которые лежат в txt/txt16 текущей папки). Но и те, которые не удалось найти, тоже можно выделить. Еще одним цветом.
Не хочешь обновить скриншот ТЗ и предложить варианты цветов? :) Включая цвет текста ошибки и его размер.