В настоящее время я работаю над проектом с использованием OpenGL-ES 3.0 для Android. В моем проекте я нарисовал трехмерную человеческую голову, чей центр тяжести лежит в начале. У меня также есть цилиндр с центром одной из его граней, лежащих в начале координат. Цилиндр удлиняется дольше, чем длина головки. Другими словами, у меня есть цилиндр, проходящий через голову.OpenGLES 3.0, Android: Как нарисовать пересечение двух объектов
Прямо сейчас, я использую только глубинный тест по умолчанию (GL_LESS), чтобы НЕ нарисовать участок цилиндра, который лежит внутри головы. Что было бы идеально для моего проекта, если бы я мог как-то просто нарисовать круг, где цилиндр пересекается с головой. Я попытался изменить свой тест глубины на (GL_EQUAL), но это не помогло.
Как это сделать? Имейте в виду, что головной объект очень сложный, с большим количеством точек и треугольников.
Я не понимаю, как отбросить правильные фрагменты. Полагаю, я не полностью объяснил, что я хотел. У меня есть сложная трехмерная головка, чей центр тяжести находится в начале координат. У меня есть цилиндр, а центр одной из его верхних круговых граней лежит в начале координат. Цилиндр может вращаться вокруг начала координат (и так может быть и голова). С помощью тестов глубины я могу скрыть часть цилиндра внутри головки, но см. Часть цилиндра вне головы. Я бы предпочел только круг, где цилиндр пересекается с головой. Поэтому мне нужно отбросить фрагменты цилиндра, а не фрагменты за пределами цилиндра. – brohan322
В принципе, мне было интересно, если бы был подход, который я мог бы использовать, используя глубинное тестирование. – brohan322