Jump to content

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


Recommended Posts

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

 

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

post-37507-130813327774_thumb.jpg

post-37507-13081332839_thumb.jpg

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

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

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

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

  • Like 1
Link to comment
Share on other sites

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

  • Like 1
Link to comment
Share on other sites

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

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

  • Like 1
Link to comment
Share on other sites

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

 

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

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

Link to comment
Share on other sites

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

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

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

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

 

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

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

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

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

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

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

Link to comment
Share on other sites

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

 

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

 

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

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Tell a friend

    Love Официальный форум компании Нанософт Разработка? Tell a friend!
×
×
  • Create New...