"Ларису Ивановну хочу" причем в 3D
От: HolyNick  
Дата: 28.05.21 08:10
Оценка: :))
Добрый день.
Никто не подскажет как лучше сделать. Хочу в приложение на Qt загружать 3D модель, допустим здания,
потом с ним как-то по взаимодействовать — покрутить, повертеть. Это ,вроде, как c Qt 3D можно решить.
Но требуется еще и более сложное взаимодействие — например что-то(куб например) навесить(те нужно выискивать плоскости, размещать на них объект) на стенку, отследить клик по этому кубу итп.
Как это лучше сделать, самому(не знаю насколько это сложно будет) писать все(парсить объект, выискивать плоскости итп) или есть
что-то(желательно free) более менее готовое?
Спасибо.
Re: "Ларису Ивановну хочу" причем в 3D
От: kov_serg Россия  
Дата: 28.05.21 08:37
Оценка:
Здравствуйте, HolyNick, Вы писали:

HN>Добрый день.

HN>Никто не подскажет как лучше сделать. Хочу в приложение на Qt загружать 3D модель, допустим здания,
HN>потом с ним как-то по взаимодействовать — покрутить, повертеть. Это ,вроде, как c Qt 3D можно решить.
HN>Но требуется еще и более сложное взаимодействие — например что-то(куб например) навесить(те нужно выискивать плоскости, размещать на них объект) на стенку, отследить клик по этому кубу итп.
HN>Как это лучше сделать, самому(не знаю насколько это сложно будет) писать все(парсить объект, выискивать плоскости итп) или есть
HN>что-то(желательно free) более менее готовое?
HN>Спасибо.
Далаешь "Ларису Ивановну"
http://www.makehumancommunity.org/content/downloads.html
Или берёшь готовую
https://sketchfab.com/3d-models/popular
Правишь в blender
Потом берёшь Unreal engine или Unity и вперёд
Или копаешь от сюда https://doc.qt.io/qt-5/qt3d-index.html https://doc.qt.io/qt-5/qt3d-examples.html https://doc.qt.io/qtdesignstudio/studio-3d.html
Re: "Ларису Ивановну хочу" причем в 3D
От: velkin Удмуртия http://blogs.rsdn.org/effective/
Дата: 28.05.21 09:39
Оценка:
Здравствуйте, HolyNick, Вы писали:

HN>что-то(желательно free) более менее готовое?


Можно сделать модель, потом выбрать графический движок и импортировать в нужный формат. С Qt много что совместимо, например, графический движок OpenSceneGraph, геометрическое ядро OpenCascade и многое другое. Это по крайне мере из того, что я запускал лично ещё на Qt4. Вариантов на самом деле множество, если хватит CG, то думаю лучше начать непосредственно с моделирования в Blender. Потом нужно будет подключить виджет Qt к движку, все инструкции обычно есть в их документации с примерами, и далее загрузить модель. Вопрос по сути только в том, какой графический (игровой) движок выбрать, а их много.
Re[2]: "Ларису Ивановну хочу" причем в 3D
От: HolyNick  
Дата: 28.05.21 09:56
Оценка:
Спасибо.
Меня волнует именно взаимодействие с объектом, в плане размещения на нем чего-то(своих объектов, те основная программа должна взять на себя некоторые функции 3D моделирования) итп.
Не могу оценить сложность(может в игровых движках это как-то уже все сделано, не знаю),
а то придется свой SolidWorks писать, а не хотелось бы пока.
Отредактировано 28.05.2021 11:05 HolyNick . Предыдущая версия .
Re[2]: "Ларису Ивановну хочу" причем в 3D
От: HolyNick  
Дата: 28.05.21 09:56
Оценка:
Спасибо.
Меня волнует именно взаимодействие с объектом, в плане размещения на нем чего-то(своих объектов) итп.
Не могу оценить сложность(может в игровых движках это как-то уже все сделано, не знаю),
а то придется свой SolidWorks писать, а не хотелось бы пока.
Re[3]: "Ларису Ивановну хочу" причем в 3D
От: HolyNick  
Дата: 28.05.21 11:04
Оценка:
Здравствуйте, HolyNick, Вы писали:

HN>Спасибо.

HN>Меня волнует именно взаимодействие с объектом, в плане размещения на нем чего-то(своих объектов, те основная программа должна взять на себя некоторые функции 3D моделирования) итп.
HN>Не могу оценить сложность(может в игровых движках это как-то уже все сделано, не знаю),
HN>а то придется свой SolidWorks писать, а не хотелось бы пока.
Re: "Ларису Ивановну хочу" причем в 3D
От: Homunculus Россия  
Дата: 28.05.21 11:07
Оценка:
Здравствуйте, HolyNick, Вы писали:

Не надо Qt, если у тебя только 3D в программе. Поверь. Unity — решит твои задачи раз в сто проще и быстрее. Не надо относится к Unity как к примитивной тулзовине для инди-фигни. Очень мощный инструмент для любых 3D задач
Re[2]: "Ларису Ивановну хочу" причем в 3D
От: HolyNick  
Дата: 28.05.21 11:18
Оценка:
В программе не только 3D.
Просто, будет окно с 3D объектом(импортированным из файлика, наверно), на который буду накидывать/прикреплять(из этой же программы) свои объекты.
Хотелось бы какую-нибудь либу, которая бы это накидывание/прикрепление упростило. А не самому(вручную считать какие-нибудь векторные произведения итп) выискивать плоскости на объекте и прочее.
Re[3]: "Ларису Ивановну хочу" причем в 3D
От: Homunculus Россия  
Дата: 28.05.21 11:20
Оценка:
Здравствуйте, HolyNick, Вы писали:

Ну тем не менее с 20 летним опытом разработки инженерных 3D программ советую все равно Unity (там есть GUI для контролов)
Re: "Ларису Ивановну хочу" причем в 3D
От: Bill Baklushi СССР  
Дата: 28.05.21 11:30
Оценка:
HolyNick:

HN>Хочу в приложение на Qt загружать 3D модель, допустим здания, потом с ним как-то по взаимодействовать — покрутить, повертеть. Это ,вроде, как c Qt 3D можно решить. Но требуется еще и более сложное взаимодействие — например что-то(куб например) навесить(те нужно выискивать плоскости, размещать на них объект) на стенку, отследить клик по этому кубу итп.


Взять готовую САПР, желательно из той предметной области, которая нужна (строительство, механика и пр.).
Если нужна своя функциональность, то САПР брать расширяемую и написать свой модуль, только Qt тут не при чем (как и Лариса Ивановна).
Модератор-националист Kerk преследует оппонентов по политическим мотивам.
Re[4]: "Ларису Ивановну хочу" причем в 3D
От: HolyNick  
Дата: 28.05.21 11:34
Оценка:
H>Ну тем не менее с 20 летним опытом разработки инженерных 3D программ советую все равно Unity (там есть GUI для контролов)
Спасибо, понял.
Re[2]: "Ларису Ивановну хочу" причем в 3D
От: HolyNick  
Дата: 28.05.21 11:37
Оценка:
BB>Взять готовую САПР, желательно из той предметной области, которая нужна (строительство, механика и пр.).
BB>Если нужна своя функциональность, то САПР брать расширяемую и написать свой модуль, только Qt тут не при чем (как и Лариса Ивановна).

САПР как вариант. Вопрос какой и насколько там удобно/гибко прикручивать свою функциональность.

PS: Лариса Ивановна, как символ хотелок разных.
PPS: Qt, тк основной софт на Qt весь, хотя тему, конечно, надо было бы в графику.
Отредактировано 28.05.2021 11:39 HolyNick . Предыдущая версия .
Re[3]: "Ларису Ивановну хочу" причем в 3D
От: velkin Удмуртия http://blogs.rsdn.org/effective/
Дата: 28.05.21 11:45
Оценка:
Здравствуйте, HolyNick, Вы писали:

HN>Меня волнует именно взаимодействие с объектом, в плане размещения на нем чего-то(своих объектов) итп.


Для этого и нужны движки, они умеют управлять камерой, получать координаты на объектах по виду, можно даже прикрутить физику, но взамен нужно учиться ими пользоваться. А те же здания я делал в Hammer Editor, потом бегал в них используя Garry's Mod. Для начала нужно определиться в чём цель всего этого, то есть это презентация, игра или ещё что. Потому что тот же движок Source компилирует карты из кода. OpenSceneGraph как следует из названия создаёт граф сцены, то есть объекты сцены объединённые неким образом в виде графа. Всегда есть какая-то модель данных с которой будешь работать. Те же здания можно строить разными способами, например, из блоков, из сеток и так далее. Просто выводить 3D вид можно не только с помощью Qt, но, к примеру SDL, GLUT.

Я к тому, что вывести одну модель и создать даже блочный редактор зданий это совсем не одно и тоже. Если пойти в дебри редактирования сеток, то получим Blender. Таким образом при вводных данных из топика вряд ли будет другой ответ кроме как взять готовые графический, физический, игровой движок и прикрутить к Qt, поскольку так стояло изначальное условие. Между прочим Unreal и Unity рекомендованные выше не так чтобы бесплатны, а так движков полно в том числе и действительно бесплатных совместимых с Qt. Причём функция получения координат на объекте по координатам на экране это по сути стандарт. Хотя как говорят в некоторых книгах по программированию до написания программы подумай, можешь ли обойтись без этого используя уже готовое программное решение, то есть отказ от написания кода.
Re[4]: "Ларису Ивановну хочу" причем в 3D
От: HolyNick  
Дата: 28.05.21 11:54
Оценка:
V>Двсего этого, то есть это презентация, игра или ещё что.

Есть измерительная установка/объект измерений на нем установлены разные приборы, например. Хочется
все это видеть в 3d. Те вид самого объекта загрузить из файла, сделанного в стороннем редакторы.
Приборы(например, датчики) уже накидать из основной программы на загруженный объект. Дальше с этими приборами
взаимодействовать — кликнул, открылось окошко с графиком сигнала итп. Что-то такое.
Re[5]: "Ларису Ивановну хочу" причем в 3D
От: HolyNick  
Дата: 28.05.21 11:55
Оценка:
Здравствуйте, HolyNick, Вы писали:


V>>Двсего этого, то есть это презентация, игра или ещё что.


HN>Есть измерительная установка/объект измерений на нем установлены разные приборы, например. Хочется

HN>все это видеть в 3d. Те вид самого объекта загрузить из файла, сделанного в стороннем редакторе(blender, например).
HN>Приборы(например, датчики) уже накидать из основной программы на загруженный объект. Дальше с этими приборами
HN>взаимодействовать — кликнул, открылось окошко с графиком сигнала итп. Что-то такое.
Re[5]: "Ларису Ивановну хочу" причем в 3D
От: velkin Удмуртия http://blogs.rsdn.org/effective/
Дата: 28.05.21 12:27
Оценка:
Здравствуйте, HolyNick, Вы писали:

HN>Есть измерительная установка/объект измерений на нем установлены разные приборы, например. Хочется все это видеть в 3d.

HN>взаимодействовать — кликнул, открылось окошко с графиком сигнала итп. Что-то такое.

По мне так хватило бы OpenSceneGraph, речь ведь так понимаю о простой сцене с 3D объектами и всё.

Лицензия OpenSceneGraph Public License (основана на LGPL))

Хотя полно других 3D движков, это просто моё личное мнение, то есть можно и их попробовать, ничего страшного не произойдёт. Просто у OpenSceneGraph есть способы интеграции с Qt из коробки и не один, не нужные никакие велосипеды. Если бы нужна была сцена из 2D объектов, то хватило бы и средств самого Qt.

Для 2D графиков раньше была Qwt, сейчас не знаю что используют.

The Qwt library and included programs are provided under the terms
of the GNU LESSER GENERAL PUBLIC LICENSE (LGPL)


3D модели по любому придётся делать в Blender, особенно если нужно бесплатное, но очень мощное решение. Там тем более хорошо обстоит дело с импортом и экспортом моделей, хотя плагины иногда надо докачивать и устанавливать вручную.

Лично я бы начал с создания контекста рисования, то есть прикрутил сцену OpenSceneGraph к виджету Qt, а потом добавил на сцену модели по 3D координатам. Далее уже осваивал более сложные привязки.
Re[4]: "Ларису Ивановну хочу" причем в 3D
От: kov_serg Россия  
Дата: 28.05.21 12:30
Оценка:
Здравствуйте, velkin, Вы писали:

V>Для этого и нужны движки, они умеют управлять камерой, получать координаты на объектах по виду, можно даже прикрутить физику, но взамен нужно учиться ими пользоваться. А те же здания я делал в Hammer Editor, потом бегал в них используя Garry's Mod. Для начала нужно определиться в чём цель всего этого, то есть это презентация, игра или ещё что. Потому что тот же движок Source компилирует карты из кода. OpenSceneGraph как следует из названия создаёт граф сцены, то есть объекты сцены объединённые неким образом в виде графа. Всегда есть какая-то модель данных с которой будешь работать. Те же здания можно строить разными способами, например, из блоков, из сеток и так далее. Просто выводить 3D вид можно не только с помощью Qt, но, к примеру SDL, GLUT.

Да и простым webview можно при желании.

Можете на tree.js поэкспериментировать
learning tree.js
ThreeJS Essentials
JavaScript 3D Library
Learn to Create Immersive Content with WebGL

V>Я к тому, что вывести одну модель и создать даже блочный редактор зданий это совсем не одно и тоже. Если пойти в дебри редактирования сеток, то получим Blender. Таким образом при вводных данных из топика вряд ли будет другой ответ кроме как взять готовые графический, физический, игровой движок и прикрутить к Qt, поскольку так стояло изначальное условие. Между прочим Unreal и Unity рекомендованные выше не так чтобы бесплатны, а так движков полно в том числе и действительно бесплатных совместимых с Qt. Причём функция получения координат на объекте по координатам на экране это по сути стандарт. Хотя как говорят в некоторых книгах по программированию до написания программы подумай, можешь ли обойтись без этого используя уже готовое программное решение, то есть отказ от написания кода.


Хз что вам надо, но лучше посмотрите unity или unreal — хуже не будет.
Game Programming with Unity
Game Development
Programming with Unity 3D
Creating Games with Unreal Engine

  немного видео
https://www.youtube.com/watch?v=ajmp3J7N3Ow
https://www.youtube.com/watch?v=VVR12-U-RCM
https://www.youtube.com/watch?v=gXuVqfasT90
Unity ARCore Tutorial
Отредактировано 28.05.2021 12:51 kov_serg . Предыдущая версия . Еще …
Отредактировано 28.05.2021 12:48 kov_serg . Предыдущая версия .
Отредактировано 28.05.2021 12:47 kov_serg . Предыдущая версия .
Отредактировано 28.05.2021 12:45 kov_serg . Предыдущая версия .
Re[6]: "Ларису Ивановну хочу" причем в 3D
От: HolyNick  
Дата: 28.05.21 12:47
Оценка:
OpenSceneGraph у меня был/и есть как первый вариант.
Мне просто показалось, что она достаточно низкоуровневая(типа Qt3D) , и привязывать
объекты друг к другу придется "в ручную". Но ,может, ошибаюсь — буду смотреть.
Re[7]: "Ларису Ивановну хочу" причем в 3D
От: HolyNick  
Дата: 28.05.21 12:52
Оценка:
Здравствуйте, HolyNick, Вы писали:

HN>OpenSceneGraph у меня был/и есть как первый вариант.

HN>Мне просто показалось, что она достаточно низкоуровневая(типа Qt3D) , и привязывать
HN>объекты друг к другу придется "в ручную" (а хочется метод типа house.BindCubeToTheWall(clickPt) ). Но ,может, ошибаюсь — буду смотреть.
Re[5]: "Ларису Ивановну хочу" причем в 3D
От: velkin Удмуртия http://blogs.rsdn.org/effective/
Дата: 28.05.21 13:02
Оценка:
Здравствуйте, kov_serg, Вы писали:

_>Хз что вам надо, но лучше посмотрите unity или unreal — хуже не будет.


Я, кстати, не люблю эти игровые движки за проприетарность и за то, что они вместе с собой тянут на компьютер всякий мусор при установке. Думал Unreal со своим добровольно принудительным сканером дисков говно, пока не попробовал установить Unity. Причём всю работу по моделированию всё равно нужно делать в Blender, движки просто тупо выводят модели. Сетки (меши), ключи форм, оснастка (риг) и так далее всё это заслуга 3D редактора, но не игрового движка. Это и к Source относится, просто он меня меньше раздражает в силу того, что я использовал его для развлечений, а Unreal и Unity просто хотел посмотреть.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.