#opengl-es #opengl-es-2.0 #marching-cubes
#opengl-es #opengl-es-2.0 #марширующие кубы
Вопрос:
У меня есть объект, состоящий из точек, скажем, его облако точек, я хочу отобразить объект из этих точек, я хочу, чтобы объект выглядел так, как будто эти точки были завернуты в лист бумаги. Я хочу это анимировать, поэтому первое, что пришло мне в голову, это марширующие кубы, но мой объект не будет шаром или кубом, он будет трансформироваться, есть ли какой-нибудь более простой подход, чем марширующие кубы?
Комментарии:
1. Не совсем понятно, о чем вы спрашиваете. Как бы трансформировались эти объекты?
2. Это может помочь: pointclouds.org/documentation/tutorials/greedy_projection.php «Быстрая триангуляция неупорядоченных облаков точек»
Ответ №1:
В зависимости от того, что вы подразумеваете под «обернутой», 3D выпуклая оболочка может создать желаемый эффект.
Анимируйте свои вершины так, как хотите, и каждый раз повторно запускайте алгоритм корпуса.
Комментарии:
1. Марширующие кубы, безусловно, могут работать .. по сути, это алгоритм, который определяет трехмерную выпуклую оболочку. Что касается анимации, у меня есть экземпляр, запущенный на javascript в webgl, и даже в javascript, когда я «копаюсь» в своей местности, кажется, что анимация чертовски быстрая -> youtu.be/_oML6USPs20
2. марширующие кубы используются для генерации iso-поверхности объекта (с учетом статического или динамического порога). Он не обязательно выпуклый. Неясно, означает ли «завернутый в лист бумаги» выпуклый или нет.
Ответ №2:
Алгоритм марширующих кубов, похоже, лучше всего подходит для того, что вы ищете — не все облака точек выпуклые. Алгоритм может показаться пугающим из-за большой таблицы поиска, но на самом деле он довольно прост. Я опубликовал пример (с использованием Three.js ) в:
Ответ №3:
Похоже, это то, что вы ищете:http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=25