3d рендеринг на cpu09.09.2014, 21:50. Показов 1218. Ответов 4
Здравствуйте.
Существуют ли какие-то графические библиотеки для рендеринга 3д моделей на cpu? Вопрос, в первую очередь, касается даже не самого рендеринга, а скорее преобразования из формата X в Y, где X -- некий 3д формат, а Y -- некий 2д формат (в идеале вектор, или набор инструкций для рисования на каком-нибудь cairo/skia-бэкенде, или что-то в этом роде), отрендеренный с известной позицией камеры и вектором ее направления. Более частная задача, которая меня интересует (если вдруг такой либы нет): отображение front, side и top-view некой 3д-модельки. Моделек несколько (не очень много, но и не 5-10 штук, иначе бы все эти виды проще было бы нарисовать непосредственно в svg, и я это понимаю ![]() ПС. сам я пользуюсь Qt, и у QPainter-а такой возможности нет. По cairo погуглил, но, насколько я понял, гораздо чаще людям наоборот нужно ускорить 2д графику на gpu. Со skia просто не работал, да и не так она распространена как отдельная библиотека, потому, если у нее есть какой-то подобный функционал, прошу подсказать. Знаю еще библиотеку fog (сейчас вроде в blend переименовали, и офф релиза пока еще нет), она тоже таким не занимается. Нестрашно, если либа будет написана на си/плюсах (в т.ч. с qt), или на делфях, на хаскеле, луа или джаваскрипте. куда важнее, чтобы она не использовала какие-то жутко специфичные для платформы штуки, от которых сложно будет избавиться при портировании на плюсы, или при использовании ее ABI.
0
|
09.09.2014, 21:50 | |
Ответы с готовыми решениями:
4
CPU греется до 75 градусов , проц : Intel Pentium(R) 4 CPU 3.00GHz |
Псевдослучайный
1946 / 1145 / 98
Регистрация: 13.09.2011
Сообщений: 3,215
|
|
10.09.2014, 17:55 | |
А что не так рендеринг на gpu? Он может совсем отсутствовать на целевой машинке?
В общем и целом можно завести opengl на cpu через llvmpipe, например. Ещё есть куча разных рендеров, используемых в 3д-редакторах, часть из них можно использовать самостоятельно.
0
|
10.09.2014, 23:35 [ТС] | ||||
![]() возможно, конечно, я и ошибаюсь, но думаю, что gpu, в первую очередь, важен для real-time рендеринга. но для качественных оффлайн расчетов что-то делается проще и на cpu. тем более, всякие рекурсии при рейтрейсинге, расчет каких-то сложных моделей освещения... тут как-то gpu уже теряет такой паралеллизм по данным, основное свое преимущество, разве нет? а у меня реально эти модельки практически не изменяются. я в общем-то могу отрендерить, например, и у себя на компе, а потом все в базу занести. но база получится просто громадная. в программе сам пользователь выбирает, с какими моделями ему работать, и зачастую ему нужно всего 20-30 штук, не более. и работает он с ними исключительно в 2д, 3д -- это уже просто для просмотра конечного результата. да и делали ж раньше демо-сценки, как-то ![]() ![]() ![]() нашел я совтвеерный рендерер в irrlicht, вроде разбирался, по туториалу №13, что можно рендерить в текстуру, а затем экспортировать в картинку ее можно с помощью driver->createImageFromData Не по теме: пишу, если вдруг кто-то сюда наткнется с похожим вопросом ![]()
0
|
Псевдослучайный
1946 / 1145 / 98
Регистрация: 13.09.2011
Сообщений: 3,215
|
||
11.09.2014, 19:46 | ||
1
|
12.09.2014, 05:23 [ТС] | ||||||
уже, конечно, нагрепал http://en.wikipedia.org/wiki/L... g_software, но все равно спасибо, что помогаете
![]() Не по теме: как обычно, задаешь вопрос, и тут же приходят правильные идеи для поискового запроса:) осталось таки разобраться, как они работают и подобрать нужные параметры по качеству/производительности (надеюсь, что это возможно, хотя бы ограничить трассировку лучей до выхода из предмета -- за ним ведь ничего нет, и количество источников света постоянное, и всегда находятся в одних и тех же точках, как и камера). Параллельно сам разбираюсь с алгоритмами, мало ли что там понадобится соптимизировать(убрать), ну и с блендером. Вообщем, полный хелло, 3д-ворлд ![]() Добавлено через 5 часов 20 минут вообщем, пожалуй, я определился. пишу опять же для тех, кто столкнется с чем-то подобным. в результате сравнения всех этих библиотек, пожалуй, самой простой мне показалась pixie. замечательно то, что можно вполне себе спокойно сделать свою длл-ку для дисплея, то есть рендерить напрямую в какой-нибудь массив в памяти, или же в QImage, или в wxBitmap, или во что кому нужно. как это сделать, написано тут. таким образом ее можно встроить в свое приложение. Качество рендеринга и все параметры задаются в RIB-файле описания сцены, о котором, в первом приближении, можно узнать из примеров в гугле, а полная документация находится на сайте renderman-а: http://renderman.pixar.com/res... ckref.html . Но нужно учитывать, что pixie может что-то не поддерживать или поддерживать, но чуть по-другому. RIB-файл не обязательно должен быть в текстовом виде, можно и напрямую вызывать апи-функции из си-шного файла. Пример
то есть внешние файлы можно вообще не создавать, что удобно, когда речь идет именно о встраиваемом решении. из недостатков: "официальных" примеров очень мало и они не работают. Но с помощью гугля мне удалось добиться работоспособности, по крайней мере некоторых. Ну и еще, лично для меня, как не специалиста по графике, серьезным недостатком послужило и то, что не смог найти каких-то простых примеров этих файлов, так сказать, какого-то dummy's guide-а: как описывать простые сцены, позицию камеры, источники света, а потом уже только включать глобальные освещения и рейтрейсинги всякие... Но, подозреваю, что для человека, который в 3д графике разбирается, не составит труда извлечь нужную информацию из документации. Лицензия LGPL. Вообщем, штука неплохая. Также можно взглянуть на G3D, он под BSD-лицензией. По крайней мере, по описанию проекта, он позволяет осуществить рендеринг всякий разный, на cpu. И документация у него мне показалась поприятнее. Но это монстр, из которого, судя по всему, придется выпиливать конкретный кусочек.
0
|
12.09.2014, 05:23 | |
Помогаю со студенческими работами здесь
5
M2N68 AM SE2. This CPU is not supported by this model. Please check CPU QVL on ASUS website
Warning! CPU has been changed. Please re-enter CPU settings in the CMOS setup and remember to save before quit! Материнская плата M5A78L-M LE (БИОС) БИОС выдает "This CPU is not supported by this model. Please check CPU QV Выбор между системы на базе CPU Intel Core 2 Quad и CPU AMD Athlon(tm) 7750 Dual-Core Processor 3.2 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Опции темы | |
|
Новые блоги и статьи
![]() |
||||
Исследование рантаймов контейнеров Docker, containerd и rkt
Mr. Docker 11.05.2025
Когда мы говорим о контейнерных рантаймах, мы обсуждаем программные компоненты, отвечающие за исполнение контейнеризованных приложений. Это тот слой, который берет образ контейнера и превращает его в. . .
|
Micronaut и GraalVM - будущее микросервисов на Java?
Javaican 11.05.2025
Облачные вычисления безжалостно обнажили ахиллесову пяту Java — прожорливость к ресурсам и медлительный старт приложений. Традиционные фреймворки, годами радовавшие корпоративных разработчиков своей. . .
|
Инфраструктура как код на C#
stackOverflow 11.05.2025
IaC — это управление и развертывание инфраструктуры через машиночитаемые файлы определений, а не через физическую настройку оборудования или интерактивные инструменты. Представьте: все ваши серверы,. . .
|
Инъекция зависимостей в ASP.NET Core - Практический подход
UnmanagedCoder 11.05.2025
Инъекция зависимостей (Dependency Injection, DI) — это техника программирования, которая кардинально меняет подход к управлению зависимостями в приложениях. Представьте модульный дом, где каждая. . .
|
Битва за скорость: может ли Java догнать Rust и C++?
Javaican 11.05.2025
Java, с её мантрой "напиши один раз, запускай где угодно", десятилетиями остаётся в тени своих "быстрых" собратьев, когда речь заходит о сырой вычислительной мощи. Rust и C++ традиционно занимают. . .
|
Упрощение разработки облачной инфраструктуры с Golang
golander 11.05.2025
Причины популярности Go в облачной инфраструктуре просты и одновременно глубоки. Прежде всего — поразительная конкурентность, реализованная через горутины, которые дешевле традиционных потоков в. . .
|
Создание конвейеров данных ETL с помощью Pandas
AI_Generated 10.05.2025
Помню свой первый опыт работы с большим датасетом — это была катастрофа из неотформатированных CSV-файлов, странных значений NULL и дубликатов, от которых ехала крыша. Тогда я потратил три дня на. . .
|
C++ и OpenCV - Гайд по продвинутому компьютерному зрению
bytestream 10.05.2025
Компьютерное зрение — одна из тех технологий, которые буквально меняют мир на наших глазах. Если оглянуться на несколько лет назад, то сложно представить, что алгоритмы смогут не просто распознавать. . .
|
Создаем Web API с Flask и SQLAlchemy
py-thonny 10.05.2025
В веб-разработке Flask и SQLAlchemy — настоящие рок-звезды бэкенда, особенно когда речь заходит о создании масштабируемых API. Эта комбинация инструментов прочно закрепилась в арсенале разработчиков. . .
|
Квантовое будущее для разработчиков: Что необходимо знать сегодня
EggHead 10.05.2025
Квантовые вычисления больше не являются чем-то из области научной фантастики. Пока большинство разработчиков погружены в осваивание очередного JavaScript-фреймворка или изучение новых возможностей. . .
|