Render.ru

2 проблемы камеры вьюпорта

FSV141

Активный участник
Рейтинг
13
#1
Давно меня мучили две вещи, которые здорово отравляли жизнь с RealSoft 3D. Сам найти решение так и не смог.

Итак, первая проблема. Во время навигации во вьюпорте, когда я верчу камерой (с помощью Alt+RMB) при каких-то условиях камера начинает вращаться вокруг своего центра вместо того, чтобы, напимер, вращаться вокруг центра выделенного объекта, что было бы не в пример удобней. Как сделать так, чтобы при вышеупомянутой навигации камера крутилась вокруг центра выделенного объекта?

Вторая проблема - искажение перспективы. При большом поле зрения камеры (которое достигается с помощью Shift+RMB или с помощью вращения колеса прокрутки) происходит искривление перспективы (как при очень широкоугольном объективе). Скорее всего это происхоит из-за того, что при вышеназванных манипуляциях изменяются парамеры виртуального объектива камеры, вместо того, чтобы приближать/удалять саму камеру. Как сделать так, чтобы камера приближалась к объекту или удалялась от него при навигации с помощью Shift+RMB или колеса прокрутки.
 

Вложения

ODA

Активный участник
Рейтинг
11
#2
Хорошие вопросы. Я понимаю, что мы не ищем простых путей и по этому не отправляю в User Mаnual

1. Очень просто. Нужно сделать так что бы фокус видовой камеры окна находлся в цетре координат объекта. Для этого достаточно выбрать объект в иерархии и перетащить его (drag&drop) на видовое окно. еще более быстрый вариант - выбрать объект и нажать клавишу "F"

2. Не прото, а очень просто:). Shift+RMB - увеличение угла объектива камеры без изменения дистанции камеры до точки фокуса. Поэтому и такой эффект искривления перспективы при больших значениях. Вообще не рекомендуется использовать значения этого параметра больше 90градусов.
Сочетание Ctrl+Shift+RMB - изменяет дистанцию (наезд камеры на объект) БЕЗ изменения угла объектива.
 

FSV141

Активный участник
Рейтинг
13
#3
Здравствуйте, Дима!
Огромное спасибо за столь оперативный ответ!
Я понимаю, что мы не ищем простых путей и по этому не отправляю в User Mаnual
И за это особая благодарность. Знаю, что глубокого профессионала такие детские вопросы раздражают, но вы, набравшись терпения и все же ответили.
Попробую оправдаться: Дело в том, что в User Manual я был, но, видимо, недостаточно проникся программой, потому как не нашел решения. Я обратил внимание на строку состояния при Shift+RMB. Там менялось значение Focal lenght. Вот слово "focal" я и искал в мануале. Глядел список шоткатов, но, видимо, недостаточно внимательно.

1. Про "F" я знаю. Но вот в таком ключе как-то не догадался использовать. Каюсь. Ступил.

2. Вот тут просто поклон до земли! Спасибо. В общем, проблему решили.
Однако, вылезла еще одна проблема вьюпорта. Видимо все-таки что-то там ползет. Может в переменных из-за недостаточной точности ошибка накапливается... не знаю. Суть вот в чем:

После игрищ с Ctrl+Shift+RMB как-то странно стали вести себя плоскости отсечения (что-то типа Clipping plans в терминах OpenGL).
Итак, создал самую обычную сценку. Обычные размеры объектов (по умолчанию). Располагаются в центре сцены, но дальняя плоскость отсечения почему-то располагается очень близко. И, как бы, срабатывает слишком рано. Проще это увидеть на приаттаченной картинке.

Что это? Как с этим бороться?
 

Вложения

ODA

Активный участник
Рейтинг
11
#4
Эт окак раз и есть Clipping plans:) В дефолтных настойках установлено значение 100 единиц (для Far). Что бы каждый раз его не переставлять рекомендую сразу после загрузки программы войти в настройки View Properties и установить очень большое значение (например, 10 000 000).. После этого сохранить настройки File>Save as Startup. Теперь программа будет загружаться с новыми занчениями автоматичеки. Кстати, точно также можно подогнать под себя и с другие настройки интерфейса и сохратить себе уйму времени для плодотворной работы.
 

Вложения

FSV141

Активный участник
Рейтинг
13
#5
Ну все! Вот оно и счастье! Вот эти две мелкие неприятности ("искажение перспективы" и "плоскости отсечения") мне все время и отравляли жизнь! А теперь прям слов нет! Спасибо, Дима! Вы сегодня одного человека сделали ОЧЕНЬ и ОЧЕНЬ счастливым.

А я призняться, сам себя перехитрил. Полез в File->Preferences. Там в Classes, а там.... ну вы понимаете ;)..... там я просто потерялся :) Хотя местечко любопытное, если знаешь "чего и как".
 

ODA

Активный участник
Рейтинг
11
#6
Ну ДА. Как всегда. Самые простые решения лежат на поверхности. Главное их вовремя заметить:)
 

FSV141

Активный участник
Рейтинг
13
#7
А вот кстати, не такие уж мы (в смысле, обычные юзеры НЕ зубры R3D) глупые. Заглянул в intro.pdf, а там на третьей странице вверху про навигацию во вьюпорте написано следующее:
To Pan a view window (scroll it): Ctrl + drag right mouse.
Zoom a view window: Shift + drag right mouse vertically
To Rotate a view window: Alt + drag right mouse.

Вот.
Ну мы привыкли доверять разработчикам... Shift+RMB и пользуем... Думаю, стоит поправить это место, дабы новые пользователи не наступали на мои грабли.
Да и Far Clipping plan в свежеустановленной программе по-умолчания установить хотя бы в 1000 было бы полезно...
 

ODA

Активный участник
Рейтинг
11
#8
По Far Clipping plan понлостью согласен. Я напишу разработчикам.
 

FSV141

Активный участник
Рейтинг
13
#9
Коли пошла такая пьянка!... может напишите еще несколько чаяний пользователей?
1) Количество Undo побольше бы. 20 в общем-то в 90% случаев хватает, но бывает что из-за собственного ротозейства надо больше.
2) А вообще есть одна БОЛЬШУЩАЯ мечта, чтобы все моделирование было нелинейным. Как в Гудини например. Ноды вводить, я думаю, никто не будет, да оно не очень то и нужно. А вот что-то типа стека модификаторов.... что-б "каждый чих"... ну в смысле, каждое движение полигона, вершины или ребра, например, где-то откладывалось и его потом можно было бы подправить...
3) Интерактивный real-time движок. Наподобие Блендеровского. Знатная штука. В будущем, ИМХО, без этой возможности 3D пакетов не останется. Real-time графика день ото дня все круче и круче становится. А если бы с помощью VSL можно было создаваться OpenGL и Direct3D шейдеры, то конкурентов такому пакету небыло бы вообще в целом свете.
Дабавить сюда еще какой-нибудь WEB-плагин (чтобы можно было публиковать интерактивные real-time сцены в сети) и вот вам кандидат на роль главного 3D пакета! С его помощью и "Second Life" можно строить и игрушки всякие ваять...
 

ODA

Активный участник
Рейтинг
11
#10
На самом деле количество Undo сейчас неограничено. Но это не путь развития. В реально работе требуется максимум 1 уровень отката. А чаще всего и без него:) Т.е Undo =0 существенно повышает быстродейстие. В Гудини нелинейное моделирование реализовано не с целью возврата на несколько шагов назад а для организации нелинейного workflow. Кстати система построения NURBS в RealSoft-te работает очень похоже. Изменение образующих кривых приводит к автоматическому NURBS изменению поверхности.
С "ротозейством" можно и нужно бороться, но не увеличение числа Undo, а продумыванием на несколько шагов вперед рабочего процесса:) По секрету, о чень помогает экономить машинные ресурсы.

по п.2 и 3 все правильно. Но пока без комментариев. Могу сказать только, что с разрабочиками это уже все обсуждалось перед началом работ по V7:)
 

FSV141

Активный участник
Рейтинг
13
#11
На самом деле количество Undo сейчас неограничено.
О как!? Проверил. У меня ровно 20 получилось (как установлено) и все! А больше сам Realsoft установить не позволяет :(

В реально работе требуется максимум 1 уровень отката. А чаще всего и без него:)
Согласен. Но ведь больше - не меньше! Пусть будет больше, если кому нужно! Раз в программе есть такой механизм, то практически ничего не стоит дать возможность пользователю установить нужное ему количество Undo. Так, например, сделано в Cinema 4D.

Т.е Undo =0 существенно повышает быстродейстие.
Ну это, ИМХО, спорное утверждение ;) Кому как :)

В Гудини нелинейное моделирование реализовано не с целью возврата на несколько шагов назад а для организации нелинейного workflow.
Согласен. Тем не менее, это взаимосвязанные вещи. Не часто, но если уж пришлось, то радуешься как дитя, когда можно залезть на одну из ранних стадий моделирования и что-то подправить. Причем, это скорее не исправление ошибки, а коррекция раннего этапа, удобная именно после того, как определились основные "контуры" модели.
Непередаваемый восторг испытываешь в такие минуты, дарящий чувство всемогущества ;) А чувство благодарности к разработчикам не поддается измерению!

Кстати система построения NURBS в RealSoft-te работает очень похоже. Изменение образующих кривых приводит к автоматическому NURBS изменению поверхности.
Да, конечно, но это процентов 10 от настоящего нелинейного моделирования. То же самое есть и у Синемы 4D. Видите, для NURBS такая штука есть. Почему-ж не сделать ее и для Полигонов?

по п.2 и 3 все правильно. Но пока без комментариев. Могу сказать только, что с разрабочиками это уже все обсуждалось перед началом работ по V7:)
Что-ж, это уже радостно. Будем надеяться... И вправду, куда им (разработчикам) еще двигаться в радиционном русле 3D редакторов? Они и так практически всего достигли. Самое время осваивать новые горизонты real-time графики!
 

ODA

Активный участник
Рейтинг
11
#12
ДА, действительно не устанавливается больше 20-ти. Не залезал в эту область начиная с V4:). Просто не было такой необходимости. Отписал разработчикам. Спасибо за внимательность:)

Я не раз говорил и повторяю:) 3D не область для экспериментов:) Перд началом работы в 3D настоятельно рекомендуется взять бумагу и карандаш и порисовать. При таком подходе потребность в "откатах" практически отпадает. Да и время экономится существенно.


реализация для NURBS вполне обоснована workflow. В большинстве случаев задача этапа NURBS моделирования - быстро получить заготовку (первоначальную форму). Далее переводим ее в SDS прорабатываем детали. Есть и второй. Когда при помощи Colision Detection SDS поверхность с нужной топологией стоиться по NURBS "болванке".

Да, подождем выхода V7
 

FSV141

Активный участник
Рейтинг
13
#13
Все верно. Со всем согласен. Но без экспериментов жить не интересно! :)
 

ODA

Активный участник
Рейтинг
11
#14
Согласен. Но любой эксперимент должен иметь прогнозируемый (осознаный) результат. На этапе "карандаш+бумага" или Photoshop+перо эсперементировать намного эффективнее чем в реальном 3D.
 

FSV141

Активный участник
Рейтинг
13
#15
Но любой эксперимент должен иметь прогнозируемый (осознаный) результат.
Ну да. Иначе это алхимия какая-то получается ;)

На этапе "карандаш+бумага" или Photoshop+перо эсперементировать намного эффективнее чем в реальном 3D.
Думаете?
Ну на том и сойдемся :)
 

FSV141

Активный участник
Рейтинг
13
#16
О! Меня осенило! ;)
Дима, напишите пожалуйста вот такое пожелание разработчикам: пусть в tool-tip-ах вместе с описанием отображается и шоткат, назначенный на эту функцию. Вот эта ерундовая фишка могла бы здорово помочь в изучении шоткатов и как следствие, в их повсеместном использовании. Результат - непревзойденная скорость работы с пакетом.
Не помню где еще, но в Синьке и в Гудини это реализовано и здорово работает!
 

ODA

Активный участник
Рейтинг
11
#17
Идя отличная. Но все на так просто:)
1. Не всем удобно читать подписи под кнопками.
2. Дефолтные расладки клавиатуры разложены в User Manual:Chapter 14. Miscellaneous>HotKey. Можно распечатать и использовать как подсказку на первое время.
3. В любой момент времени пользователь может переназначить HotKey через key bindings. И что тогда получится? Клавиша на иструмент пользователем назначена одна, а описание к инструменту написано совсем другое. В результате возникнет путаница.

Т.е "забивать" в интерфейс HotKey это не совсем эффективный путь.

Однако решение есть и очень простое:) Можно воспользоваться системой локализации программы Chapter 12. User Interface>Localization. Ни что не мешает нам добавить самостоятельно в подписи иконке инструмента нужный HotKey:). Вся работа займет не больше часа. В результате - непревзайденная скорость работы и счастье на каждый день.

По количеству откатов Undo. Я написал разработчикам по этому вопросу. Где то начиная с 5-той версии ввели ограничения в 20. Это не ограничения самой программы (можно сделать хоть 10 000) а ограничеения на ввод численного значения >20 в настройках Undo. Сделано это изходя из здравого смысла и экономии ресурсы памяти.
 

FSV141

Активный участник
Рейтинг
13
#18
Насчет шоткато в tool-tips-ах.
1. Никаких подписей под кнопками не предполагается. Tool-tips - это всплывающий желтый прямоугольник, который появляется если подвести к кнопке курсор мыши и заржать его над кнопкой на несколько секунд. В Realsoft все это есть. У него появляется краткое описание инструмента. Я предлагаю всего-лишь добавить к этому описанию шоткат. Пусть шоткат отображается в конце описания. Через пробел или в квадратных кнопках - не важно. Главное чтобы он был. Реализовать это - пустяк для разработчиков.
2. Знаю-знаю. Распечатал. Но это не то же самое. Там оно по группам разбито. Пока найдешь... А тут сразу - подвел мышку к кнопке OpenGL Shading, например. Посмотрел, что шоткат ей соответствующий - h и следующий раз уже глядишь, запомнил и кнопку дергать не стал, а просто с клавки набрал "h". То же самое и со всем остальным.
3. А ничего плохого не получится. Назначили-ли разработчики шоткаты сами или их пользователь переопределил, - список этих шоткатов где-то храниться. Скорее всего в одном из конфигурационных файлов. При инициализации программы этот файл скорее всего считывается в память в некую базу данных шоткатов. Когда пользователь нажимает клавишу на клавиатуре (то есть, шоткат) идет сверка с этой базой данных и по результатам сверки в программу передается некий код операции/комманды, которую ядро Realsoft исполняет.
Так вот, нет никаких проблем простой конкатенацией добавить к строке описания инструмента строку описывающую шоткат.

Есть конечно вероятность, что tool-tips-ы разработчики жестко забили в виде ресурсов. Это не красит архитектуру программы, но и далеко не фатально. Собирались ревизию кода в 7-й версии делать? ВОт и отличный повод пересмотреть алгоритм вывода tool-tips-ов на экран. Сделать это надо один раз и потом забыть про эту проблему вообще. Во всех версих, какие бы шоткаты не взбрели в голову разработчикам или переопределившим их пользователям - они всегда будут актуальны. Даже если управляющий элемент (кнопка) контекстно-зависимый. Правильный шоткат будет отображаться согласно контексту.

Насчет Undo. Очень жаль, что разоработчики вот так жестко взялись решать за пользователя, что тому нужно :( А про ресурсы нынче как-то даже смешно вспоминать. У современных компов такие объемы памяти, что съесть их под силу лишь композеру, перемалывающему HD видео. Трехмерки нынче недостатка в памяти практически не испытывают.
 

ODA

Активный участник
Рейтинг
11
#19
Сергей, ты видимо меня не слышишь или я пишу консперативными чернилами:)
"Tool-tips - это всплывающий желтый прямоугольник, который появляется если подвести к кнопке курсор мыши и заржать его над кнопкой на несколько секунд. В Realsoft все это есть" - так вот система локализации программы предусматривает, что пользователь САМ может написать все что угодно в этих областях и на любом языке. Я дал подсказку где искать, что бы это сделать. Точно таким же образом можно в Tool-tips добавить информацию о HotKey. Т.е это делается очень просто и разработчики все предусмотрели.
 

FSV141

Активный участник
Рейтинг
13
#20
Слышу. Я ответил на "Т.е "забивать" в интерфейс HotKey это не совсем эффективный путь."

А вот самостоятельная локализация интерфейса не имеет смысла. Времени на нее потратишь уйму, а смысл? Если ты выполнил локализацию, то значит все понимаешь что написано и все шоткаты уже знаешь. Спрашивается, зачем тогда этим заниматься?

Я же предлагаю простую фишку (отображение шоткатов в тул-типах) и она должна быть, как это принято сейчас говорить, "из коробки"! Тогда пользователь ей воспользуется.
 
Сверху