Перейти к содержанию
lecactusov

ncad30: Графика при больших приближениях

Рекомендуемые сообщения

На скриншотах видно что пока крутим масштаб контуры цифр отображаются нормально, но после "стабилизации картинки" некоторые цифры заливаются ужасно некрасиво. это видно и тогда когда масштаб далек от максимального. причем в других программах (в частности в progecad 2008, где было нарисовано это и в bricscad все отображается нормально)

 

PS в версии нанокада 2.5 этот чертеж не открывался вообще. был просто черный экран.

post-37507-130813327774_thumb.jpg

post-37507-13081332839_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Лучше прикрепить сам файл :-)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

выложил этот файл, оставив только часть проблемной зоны, удалив 99% информации (так разрешили)

глюки с масштабом для форума.dwg

Изменено пользователем lecactusov

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

методом тыка поняли что если высота текста менее 0.1, то происходит такая ломка графики (не со всеми шрифтами, а только в которых есть заливка(которые не тонкими линиями, а например как "таймс нью роман").

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

методом тыка поняли что если высота текста менее 0.1, то происходит такая ломка графики (не со всеми шрифтами, а только в которых есть заливка(которые не тонкими линиями, а например как "таймс нью роман").

Это проблема бесконечного увеличения - обсуждалось на форуме и не раз. Последний раз здесь: http://forum.nanocad.ru/index.php?showtopic=3923&view=findpost&p=11357

Все-таки ограничить бесконечное увеличение, наверное, нужно.

Высота текста в приложенном файле - 0.0352, т.е. чертеж выполнен скорее всего в 100-м масштабе. При задании масштаба 1:1 - графика отображается нормально.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

просто в программе где рисовали (progecad 2008) и в bricscad v11 проблемы такой нет и вот допустим перешли мы на нанокад и получаем что вроде файлы все совместимы, но придется их переделывать, если работать с какой то частью файла дальше. не исключено что это просто криворукость того кто изначально делал файл в таком масштабе, т.к. он возможно не знал вообще что это такое

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Размеры и штриховка что, какую-то дискретность имеют?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Размеры и штриховка что, какую-то дискретность имеют?

Да, нет. Просто монитор не микроскоп, как я понимаю... :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А при чем тут монитор? Не он же масштабирование производит. Или это намек на то, что нечего мелкие детали в больших масштабах разглядывать?

 

Я так понимаю, на мелких контурах из-за ошибок (видимо округления) неправильно просчитываются границы заливки. А такое может быть, только если точность расчетов чем-то ограничена.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это ошибка драйверов видеокарты: при мелких масштабах они вылетают за размерность чисел и начинают ломать отображаемые объекты. Т.е. это чисто проблема отображения. Мы можем искусственно ограничивать приближение графики (как это делает, например Автокад) или еще применить пару трюков, но пока этого не делали.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Скорее не ошибка, а особенность их работы.

Для ускорения работы в драйвере скорее всего используется более короткий тип данных, чем double. Если используется аппаратное ускорение, то там точно используется float. В таком случае появляются ошибки округления, заметные при большом увеличении.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

если это особенность "драйвера видеокарты", то почему в конкурирующих продуктах таких глюков не замечаем (см выше)?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тут может быть два варианта.

1. Продукт ограничивает использование драйвера масштабами, при которых подобных артефактов не наблюдается

2. Продукт самостоятельно производит более аккуратное масштабирование перед передачей данных драйверу

Ну и смешанный

 

Может быть несколько вариантов (вот пара пришедших на ум):

1. программа ограничивает масштабирование пределами, когда подобные артефакты не появляются

2. программа самостоятельно производит более аккуратное масштабирование перед передачей ланных драйверу

Ну и смешанное решение - при малых масштабах программа просто передает данные драйверу, а при больших начинает масштабировать изображение своими силами. Благо большую часть примитивов можно отсечь окном обзора просмотра.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

почему в моменты масштабирования, пока не заливаются контуры символов, то все выглядит прилично? причем отчетливо видно, что заливкой портятся не все символы. как мне кажется проблема именно в том, что нанокад работает в режиме opengl, а все конкуренты взаимодействуют с картами по другому (если не ошибаюсь wingdi). насколько помню при экспериментах в bricscad, если там выставить режим работы opengl(экспериментальный), то происходили подобные косяки, но с другими элементами

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Видимо, расчет самого контура осуществляется по-другому. Не так, как заливки.

Тут без конкретных кусков кода не разобраться.

Как разработчикам часто нужен проблемный чертеж, так и в программировании обычно нужен неработающий фрагмент кода.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

lecactusov, AutoCAD сам разрабатывал свои драйвера графики с 1982 года - у них оптимизировано все очень хорошо. Но в этом и минус - когда появилось новое видео (3D, OpenGL и DirectX и т.д.), то им пришлось заново все оптимизировать. Кстати, обратите внимание - в AutoCAD работает два видеорежима: 2D и 3D. Очень хорошо видно по значку ПСК.

 

BricsCAD, ZWCAD, progeCAD и т.д. - они получили видеографику в наследство от IntelliCAD (читай от AutoCAD 2002-2004). Поэтому им тоже не надо этим заморачиваться. И хотя многие из них утверждают, что они полностью переработали IntelliCAD, я сомневаюсь, что они забирались в видеочасть. И вот если выйдут новые видеоконфигурации, то им нужно будет капитально перерабатывать эту часть, чтобы завязаться на новые технологии. Я тоже не уверен, что они это сделают быстро и безпроблемно.

 

Мы же изначально сейчас завязались на открытые стандарты - на OpenGL. Хотя оптимизация нужна без сомнения.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...

×
×
  • Создать...