javafx 3d производительность большой набор данных
У меня есть набор данных, который компрометирует порядка миллиона кубоидов. Я представляю его как один узел, используя TriangleMesh. Это кажется нормальным, вращение быстрое. Но я также хочу сделать нарезку, поэтому я реализовал код, чтобы пересчитать лица и применить их. Это работает, но немного медленно - не в расчете индексов лиц, а в рендеринге.
Каждый кубоид состоит из 12 треугольников
Затем я попытался создать отдельный узел для каждого кубоида и установить узлы видимыми / невидимыми. Производительность это было ужасно.
Есть идеи? Чтобы понять, о чем я говорю, взгляните на
1 ответ
Вы знаете библиотеку FXyz? Он имеет несколько новых сложных трехмерных фигур, а также сложные параметры текстурирования, например, для создания контурных графиков.
Взгляните также на Sampler, чтобы изучить все варианты.
Некоторые из последних (незавершенных) разработок в библиотеке: ScatterMesh
а также TetrahedraMesh
,
Мы можем читать данные из файлов, каждая строка содержит {x,y,z,f}
данных и создайте тетраэдр для этой точки (x,y,z), используя только 4 треугольника (4 точки и 4 грани). И мы устанавливаем цвет плотности в соответствии с f
,
Мы можем добавить каждый тетраэдр как узел и иметь полную группу узлов, что допустимо только для небольшого числа узлов, или мы могли бы создать одну отдельную сетку, как вы сказали, добавив каждый новый тетраэдр в эту сетку. Это действительно быстро, и мне удалось прочитать несколько миллионов точек данных.
Эта сетка содержит 1 миллион тетраэдров или 4 миллиона треугольников:
Пока у нас нет алгоритма нарезки. Вы можете внести свой вклад в это.