#three.js #sage
Вопрос:
Я пытаюсь понять рисунок (похожий на отпечаток животного), который показывает, когда две разные цветные плоскости нанесены (почти) на одну и ту же плоскость. Какова формула, которую использует SageMath-используя three.js-для создания шаблона, показанного на графике? Область вопросов/поддержки SageMath отправила меня в этот раздел поддержки для получения ответов.
Пример: Здесь одна плоскость немного больше-что заставляет SageMath показывать их обоих, но с рисунком. Кроме того, при перемещении/манипулировании графиком с помощью мыши шаблон меняется. Какую формулу или информацию использует SageMath (three.js) использовать для отображения шаблона?
Я использовал сотовый сервер Sage онлайн, чтобы построить это (ниже) на https://sagecell.sagemath.org/:
M = implicit_plot3d(lambda x,y,z: x, (-15,15), (-15,15), (-15,15), rgbcolor= (0.0, 1.0, 0.0), frame=true)
N = implicit_plot3d(lambda x,y,z: x, (-15,15), (-15,15), (-15,15.5), rgbcolor= (0.0, 0.0, 1.0), frame=true)
M N
Спасибо за любую информацию, которую вы можете предоставить!
Ответ №1:
Я не очень хорошо знаком с Сейджем, но, похоже, это тот случай z-fighting
.
Идея в основном заключается в том, что плоскости настолько близки друг к другу (и в данном случае занимают одно и то же пространство!), что камера, используемая для рисования сцены, испытывает проблемы с выбором конкретной плоскости для каждого из пикселей. И поэтому «шаблон» — это просто случайные сбои, и он меняется при движении, потому что вычисление для выбора того, какая плоскость «впереди», меняется для каждого угла.
Вы можете прочитать более подробно здесь.
Теперь шаблон действительно напоминает мне о «шумовых шаблонах», которые могут вас заинтересовать. Для этого есть много ресурсов, хорошим местом для начала могла бы стать книга шейдеров.
Комментарии:
1. Ваш комментарий очень помог мне-особенно ссылка на книгу шейдеров. Кроме того, информация о z-fighting очень интересна! Забавно, что я на самом деле пытаюсь использовать z-борьбу-и, похоже, в основном это явление, которого большинство пытается избежать. Большое спасибо!
2. Нет проблем! Рад, что смог помочь! Не забудьте отметить ответ как отвеченный 😉