Можно ли использовать выпуклость в OpenSCAD для исправления артефактов в предварительном просмотре?

cad openscad convexity rendering

Если я делаю простую булеву разницу, где размеры двух фигур совпадают, в предварительном просмотре появляются визуальные артефакты. Например:

difference() {
    cube(10, center=true);
    cylinder(10, 5, 5, center=true); 
}

Предпросмотры вроде:

предварительный просмотр с артефактом

Если я сделаю полный рендеринг, то получится так, как и задумано: полная визуализация

Я читал о выпуклости, и мне кажется, что правильная ее настройка скажет превью-рендеру, что ему нужно для более точного рендеринга. Могу ли я использовать выпуклость для решения этой проблемы?

, 👍0


1 ответ


2

Ваша предпосылка ошибочна. Свойство convexity полезно (и фактически доступно только) для типов объектов, геометрия которых движку CSG еще неизвестна: linear_extrude, rotate_extrude, importstl и, возможно, несколько других неясных вещей. Оно сообщает движку предварительного рендеринга, сколько раз луч, проходящий через объект, может пересекать грани, обращенные к камере. Если оно слишком мало, рендеринг может остановиться после этого малого числа, что приведет к отсутствию поверхностей.

То, что вы видите, — это конфликтующий рендеринг из детали нулевой толщины, где разница имеет совпадающие поверхности, и какая из них переопределяет перевороты с числовой нестабильностью. Способ исправить это — заставить вычитаемое тело всегда простираться за тело, из которого вы вычитаете, а не точно до его поверхности.


,