Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 3 / 0
Регистрация: 30.03.2019
Сообщений: 194
1

Средства визуализации физических процессов

18.01.2020, 12:50. Просмотров 884. Ответов 6
Метки нет (Все метки)

Всем привет. Подскажите пожалуйста готовые движки для работы с 3D моделями на java. Какие есть готовые инструменты для объектно-ориентированного программирования физических свойств материалов? - Необходимо имитировать поведение (физический процесс/ы) механизмов (объектов) в разной среде ("Механика сплошной среды"), но стандартная методика построения геометрических форм, через пропись координат вершин каждой формы, забирает очень много времени. При необходимости изменить конструктивные особенности механизма (объекта), нужно переписывать практически весь код, перестраивая только геометрию...

Нужен"движок" для визуализации физических процессов с возможностью построения, а также импорта\экспорта геометрических форм отдельных элементов и массивов конструкций. Необходимо организовать возможность присвоения свойств материалов: масса, плотность, энергия, частота и т.п. в земных условиях, в условия гравитации, в вакууме, в невесомости, при экстремальных температурах и т.п. При этом этом хотелось бы вносить изменения в конструктивные особенности геометрии, не переписывая сам код геометрических форм. То есть этот процесс должен быть максимально автоматизирован. Основная работа - 3D-визуализация физических процессов, с применением реальных физико-математических вычислений.

Среди готовых и похожих программ для 3D визуализации можно выделить такие как 3Ds-Max, Maya, Rhino, Solidworks и т.п., но эти программы предназначены для моделирования, а визуализация физических процессов, больше ориентирована на киноиндустрию, но не для реальных вычислений. Может есть какие-то готовые решения, типа "3D-viewer" с открытым кодом? - Подскажите пожалуйста.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.01.2020, 12:50
Ответы с готовыми решениями:

Модель физических процессов
Привет всем! Я создаю модель поведения молекул воды. Качество симуляции зависит от того, сколько...

Математическое моделирование физических процессов
Составить компьютерную программу(PASCAL или СИ) для математического моделирования физических...

Основы моделирования физических процессов
Здравствуйте! Я магистрант физ-теха. В "экспериментальной" части магистерской работы стоит...

Визуализация протекания трех физических процессов
Здравствуйте, срочно нужна помощь специалистов в области С++ помогите с проектом... вот суть...

6
1115 / 284 / 98
Регистрация: 11.08.2017
Сообщений: 946
18.01.2020, 20:54 2
А почему именно Java? Нужна кроссплатформенность?
Если писать самим то можно геометрию задавать не кодом а грузить модельки, например obj. Видел в туториале по lwjgl пример написания простейшего движка, точнее не туториал а нечто похожее на описание разработчика.
Перечисленные вами средства к моделированию физики отношения не имеют. Они эмулируют только внешний вид предметов способами далекими от физики, что пусть и выглядит реалистично. Я сам тридэшник (3d mac + vray + painter основные инструменты). Физически корректные рендер движки при той же сцене дают куда худший результат за тоже время и при этом требуют более мощного железа.
Первое что приходит в голову по вашему запросу это продукты autodesk, что именно не скажу но у них дофига продуктов и точно были для симуляции физики, только вот графики в них не ждите.
0
0 / 3 / 0
Регистрация: 30.03.2019
Сообщений: 194
18.01.2020, 22:35  [ТС] 3
Цитата Сообщение от alecss131 Посмотреть сообщение
А почему именно Java?
Синтаксис понятный и не требует время на изучение нового языка.
Цитата Сообщение от alecss131 Посмотреть сообщение
Перечисленные вами средства к моделированию физики отношения не имеют
Физику нужно писать самостоятельно, собственно это и есть основная цель. Поэтом хотелось бы подгружать модели, например сделанные в 3Ds-max, а ручками писать только физику окружения и свойства объекта.
Цитата Сообщение от alecss131 Посмотреть сообщение
продукты autodesk, что именно не скажу но у них дофига продуктов и точно были
- были и есть, но такой метод расчётов и симуляции не подходит. И кстати графика при помощи autodesk + vray хорошая.

При помощи autodesk можно получить модели в разных форматаха (.obj, dxf и др.), чертежи (что очень удобно), а рендеринг в данном случае не столь важен. Главная задача: Организовать гибкую, настраиваемую систему физико-математических расчётов, свойств материалов и поведение работы механизмов в той или иной среде. Средствами java можно сразу сделать интуитивно понятный интерфейс, что в дальнейшем позволит сократить время на внесение исправлений в формулы. Визуализация в данном случае подразумевает " 3D окно", вплоть до проволочного вида, с выводом всех расчётов как результат лабораторного эксперимента.
0
1115 / 284 / 98
Регистрация: 11.08.2017
Сообщений: 946
18.01.2020, 23:05 4
Забыл о такой вещи как Matlab язык хоть и функциональный а не ооп (хотя ооп есть частично но по производительности уступает функциональным аналогам) но синтаксисом похож на java и поддерживает даже части кода на java. Это огромная среда симуляции всего. Правда среда весит R2019a под 30гб и 730к файлов. Но симуляцию если и писать то как раз самое то. Судя по файлам частично написана на java, позволяет компилировать exe файлы используя сишные компиляторы (требует рантайм мегабайт на 700-900). Включает в себя кучу тулбоксов в которых уже куча всего реализована.

Вот пример кода
Кликните здесь для просмотра всего текста

Синтаксис, код грузит obj файл (один из способов) и показывает. Очень много средств работы с матрицами (не нужны циклы для обработки как пример или использовать массив в качестве индекса для выбора части объектов массива). Не нужно объявлять переменные и их типы, возвращать и принимать множество различных переменных.
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
clear all
file='1.obj';
f=fopen(file, 'r');
i1=1;
i2=1;
if f>-1
    while ~feof(f)
        line=fgetl(f);
        if contains(line, 'v ')
            tmp=sscanf(line, 'v %f %f %f')';
            vertex(i1,1:3)=tmp;
            i1=i1+1;
        end
        if contains(line, 'f ')
            tmp=sscanf(line, 'f %d/%*d/%*d %d/%*d/%*d %d/%*d/%*d %d/%*d/%*d %*d/%*d/%*d')';
            if size(tmp, 2)==3
                tmp=[tmp, tmp(3)];
            end
            faces(i2,1:4)=abs(tmp);
            i2=i2+1;
        end
    end
    fclose(f);
end
[s, ~]=size(faces);
figure
grid on
hold on
axis equal
for i=1:1:s
    x=[vertex(faces(i,1),1) vertex(faces(i,2),1) vertex(faces(i,3),1) vertex(faces(i,4),1)];
    y=[vertex(faces(i,1),2) vertex(faces(i,2),2) vertex(faces(i,3),2) vertex(faces(i,4),2)];
    z=[vertex(faces(i,1),3) vertex(faces(i,2),3) vertex(faces(i,3),3) vertex(faces(i,4),3)];
    c='g';
    %c=abs(rand(1,4));
    fill3(x, y, z, c);
end
Картинка во вложении

В универе на нем моделил кучу физики.
1
Миниатюры
Средства визуализации физических процессов  
0 / 3 / 0
Регистрация: 30.03.2019
Сообщений: 194
18.01.2020, 23:26  [ТС] 5
Цитата Сообщение от alecss131 Посмотреть сообщение
язык хоть и функциональный а не ооп
- Я так понимаю - это "визуализатор"?
На сколько я понял, следующие строки перемещают объект, сравнивая его положение в пространстве
Matlab M
1
2
3
4
5
6
7
8
axis equal
     for i=1:1:s
    x=[vertex(faces(i,1),1) vertex(faces(i,2),1) vertex(faces(i,3),1) vertex(faces(i,4),1)];
    y=[vertex(faces(i,1),2) vertex(faces(i,2),2) vertex(faces(i,3),2) vertex(faces(i,4),2)];
    z=[vertex(faces(i,1),3) vertex(faces(i,2),3) vertex(faces(i,3),3) vertex(faces(i,4),3)];
    c='g';
    %c=abs(rand(1,4));
    fill3(x, y, z, c);
Цитата Сообщение от alecss131 Посмотреть сообщение
Забыл о такой вещи как Matlab
- когда я учился, такой штуки не было Спасибо, нужно ознакомиться.
0
1115 / 284 / 98
Регистрация: 11.08.2017
Сообщений: 946
18.01.2020, 23:55 6
Вообще это язык математического программирования больше. Он поддерживает графику, но его основная работа это как раз симуляция (причем не только коддинг, есть симулинк который использует блок схемы по сути).
Как таковой визуализации в нем нету, этот пример построен на построении графиков.
Указанные строки заполняют полигоны используя координаты вершин из массива. То есть каждая итерация цикла просто рисует полигон который был ранее считан из файла. Можно рисовать частями а не полигонами.
Лучше начать писать с физики и в зависимости от обработки физики писать визуализацию. Благо физику будет написать проще, так как на линал и матан есть готовые функции почти на все, включая символьные выражения.

А на Java советую глянуть книжку 3D Game Development with LWJGL 3, там есть примеры кода работы с либой и загрузки моделей в java из obj Книга вроде бесплатная, есть на гитбукс а примеры на гитхабе.
1
0 / 3 / 0
Регистрация: 30.03.2019
Сообщений: 194
19.01.2020, 01:19  [ТС] 7
Цитата Сообщение от alecss131 Посмотреть сообщение
Указанные строки заполняют полигоны используя координаты вершин из массива.
- У нас 3 строки и по 4 координаты в каждой. Правильно? То есть матрица 3х4; Три оси координат XYZ кубического пространства, которое заполняется полигонами (вершинами) считанными с файла. Если всё правильно, то хотелось бы реализовать подобное решение на java. Я пока-что нашёл не плохой пример, но там нужно каждую геометрическую форму прописывать, а это рутинная работа, за которой теряется весь смысл.
Цитата Сообщение от alecss131 Посмотреть сообщение
А на Java советую глянуть книжку 3D Game Development with LWJGL 3
- Спасибо.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.01.2020, 01:19

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Параллельное программирование в задачах моделирования физических процессов
Добрый день, форум! Не подскажите занимался ли кто параллельным программированием задач...

i7 3770 видит 2 физических ядра и 4 потока из 4 физических ядер и 8 потоков
i7 3770 видит 2 физических ядра и 4 потока из 4 физических ядер и 8 потоков Выставлял настройки в...

Средства отладки программ в DELPHI.Создание программ для циклических процессов
Ребята, помогите, пожалуйста, нубу, никак не справлюсь(( Заранее благодарен) 1. Средства отладки...

Найти среди выполняющихся процессов имена процессов, имеющих одинаковые ProductVersion
нахождения среди выполняющихся процессов имен процессов, имеющих одинаковые ProductVersion. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.