Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
UltimAnt
0 / 0 / 0
Регистрация: 28.04.2014
Сообщений: 10
#1

3D графика, какие библиотеки использовать? - C++

07.05.2014, 09:38. Просмотров 2343. Ответов 10
Метки нет (Все метки)

Ребята, препод-садист дал задание написать программу с кубиком и пирамидой, что бы их можно было вращать, перемещать, масштабировать и отбрасывала тень при источнике света.
причем удаление невидимых граней происходило с использованием алгоритма z-буфера.
OpenGL и Direct3D изучил, но там похоже не написать алгоритм z-буфера, почитал про graphics.h, говорят устаревший и не работает на современном компиляторе...
какую библиотеку предпочтительно использовать, что бы реализовать алгоритм z-буфер?

Добавлено через 48 минут
хотя появился ещё 1 вопрос: возможно ли на OpenGL использовать алгоритм z-буфера?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2014, 09:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос 3D графика, какие библиотеки использовать? (C++):

про библиотеки в VS C++ (какие библиотеки нужны для функций 'cout' и 'cin') - C++
какие библиотеки нужны для функций 'cout' и 'cin' ???

Какие библиотеки нужно учить? - C++
Всем привет! Задался таким вопросом: Какие библиотеки нужны любому C++ программисту? Конечно их довольно много и каждому свое, но ведь есть...

Какие математические библиотеки вы используете? - C++
Товарищи, а какие матлибы вы используете? (если используете). Особенно интересует БПФ.

Какие библиотеки\фреймворки используете именно вы - C++
Какие библиотеки\фреймворки используете именно вы для разработки ПО\игр (Отдельно для каждого). Заранее спасибо за ответ.

Какие есть GUI библиотеки для c++ - C++
какие есть GUI библиотеки для c++, они вообще есть?

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
taras atavin
Ушёл с форума.
3569 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
07.05.2014, 09:51 #2
Если не прописано в задании, то какие выберешь. С учётом доступности/платности и собственных знаний, так как не исключено существование экзотических 3D-библиотек в ограниченном количестве копий и при этом ещё и стоящих, как несколько лет коллективной работы и малоизвестных даже в узких кругах.

Добавлено через 1 минуту
Цитата Сообщение от UltimAnt Посмотреть сообщение
OpenGL и Direct3D изучил, но там похоже не написать алгоритм z-буфера,
Да ну! А ничего, что вся 3D-графика базируется именно на z-буфере?
0
UltimAnt
0 / 0 / 0
Регистрация: 28.04.2014
Сообщений: 10
07.05.2014, 20:07  [ТС] #3
Цитата Сообщение от taras atavin Посмотреть сообщение
Да ну! А ничего, что вся 3D-графика базируется именно на z-буфере?
ну нам задали каждому свой алгоритма(художника, Варнока, Уоткинса, иерархический z-буфер и др.), мне вот достался Алгоритм z-буфера использовать. препод рассказывал как с помощью матриц поворачивать объект, масштабировать и т.д. зачем? если все это в библиотеках, например, OpenGL это действие записывается в 1 строчку.
Возможно ли расписать матрицы в OpenGL вручную? если нет, то к какой "примитивной" библиотеке можно сослаться?
0
EVP
322 / 244 / 43
Регистрация: 14.12.2010
Сообщений: 465
07.05.2014, 22:16 #4
Цитата Сообщение от UltimAnt Посмотреть сообщение
Ребята, препод-садист дал задание написать программу с кубиком и пирамидой, что бы их можно было вращать, перемещать, масштабировать и отбрасывала тень при источнике света.
причем удаление невидимых граней происходило с использованием алгоритма z-буфера.
OpenGL и Direct3D изучил, но там похоже не написать алгоритм z-буфера, почитал про graphics.h, говорят устаревший и не работает на современном компиляторе...
какую библиотеку предпочтительно использовать, что бы реализовать алгоритм z-буфер?
Смотрел книжку Андре Ламот главы 11 и 14?
То, что тебе надо
Глава 11. Организация бефера глубины и видимость
Глава 14. Освещение и тени
0
UltimAnt
0 / 0 / 0
Регистрация: 28.04.2014
Сообщений: 10
07.05.2014, 22:29  [ТС] #5
Цитата Сообщение от EVP Посмотреть сообщение
Смотрел книжку Андре Ламот главы 11 и 14?
Он, как я понял, приводит примеры на Си с библиотекой graph.h, я инет обшарил в поисках graph.h, но только нашел graphics.h для С++, у меня подозрения, что там функции немного по другому выглядят
0
EVP
322 / 244 / 43
Регистрация: 14.12.2010
Сообщений: 465
07.05.2014, 23:50 #6
Цитата Сообщение от UltimAnt Посмотреть сообщение
Он, как я понял, приводит примеры на Си с библиотекой graph.h, я инет обшарил в поисках graph.h, но только нашел graphics.h для С++, у меня подозрения, что там функции немного по другому выглядят
Открою секрет: Андре Ламот - это Чак Норрис создания игр
Он взял и написал свой 3D конвейер заодно с растеризатором

Код у него сишный, но смотри на математику, которую он использует.
Математика годится и для других языков..
0
taras atavin
Ушёл с форума.
3569 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
08.05.2014, 09:11 #7
Цитата Сообщение от UltimAnt Посмотреть сообщение
препод рассказывал как с помощью матриц поворачивать объект, масштабировать и т.д. зачем?
Дай первокласнику ту самую библиотеку, врядли он матрицу поворота даже заполнит. Одно дело - оптимизация или исполнение на GPU и совсем другое понимание собственных действий.
Цитата Сообщение от UltimAnt Посмотреть сообщение
ну нам задали каждому свой алгоритма(художника, Варнока, Уоткинса, иерархический z-буфер и др.),
Под конкретную сцену можно много чего наворотить, но библиотека то универсальная и кроме z-буфера ничего другого предложить не может. Я, кстати, делал z-буфер в самом приложении вместо библиотеки, ничего сложного там нет. Но то была самописная библиотека, а z-буфер был здорово не стандартный, линейный вместо плоского и привязанный к определённому порядку построения рёбер, а использовался только для удаления частей рёбер, причём, криволинейных, так что его пришлось вынести в приложение. Плоский же z-буфер ещё проще, вполне универсален и обязательно входит во все универсальные рендеры.
0
UltimAnt
0 / 0 / 0
Регистрация: 28.04.2014
Сообщений: 10
08.05.2014, 12:42  [ТС] #8
Цитата Сообщение от taras atavin Посмотреть сообщение
Под конкретную сцену можно много чего наворотить, но библиотека то универсальная и кроме z-буфера ничего другого предложить не может. Я, кстати, делал z-буфер в самом приложении вместо библиотеки, ничего сложного там нет. Но то была самописная библиотека, а z-буфер был здорово не стандартный, линейный вместо плоского и привязанный к определённому порядку построения рёбер, а использовался только для удаления частей рёбер, причём, криволинейных, так что его пришлось вынести в приложение. Плоский же z-буфер ещё проще, вполне универсален и обязательно входит во все универсальные рендеры.
то есть надо использовать OpenGL только для открытия окна приложения, а прорисовку объекта вручную?
0
taras atavin
Ушёл с форума.
3569 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
08.05.2014, 12:50 #9
Нет. OpenGL как раз и предназначена для прорисовки, тебе надо только подготовить данные для визуализации. Плоский z-буфер - основа всякого универсального рендера, хоть библиотечного, хоть прикладного, так как именно он вполне универсален и не зависит ни от самой сцены, ни от порядка передачи объектов, а тем более рёбер и вертексов рендеру, но достаточно прост, чтоб при любой сложности сцены минимально нагружать GPU.
0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,925
Записей в блоге: 1
08.05.2014, 13:37 #10
taras atavin, имелось в виду, очевидно, что им задали сделать что-то типа софтварного рендера. То есть к z-буферу openGL это будет иметь довольно отдалённое отношение. По сути, его задание состоит в том, чтобы программа получала на вход 3д-сцену, сама софтварно её рендерила в растр, применяя либо z-буффер, либо что угодно...
Цитата Сообщение от UltimAnt Посмотреть сообщение
(художника, Варнока, Уоткинса, иерархический z-буфер и др.)
А вывод растра на экран может осуществлятся хоть OpenGL, хоть любым другим способом - это чисто интерфейс его работы, а не суть задания!
0
taras atavin
Ушёл с форума.
3569 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
09.05.2014, 09:08 #11
Тогда при чём здесь вообще 3D-библиотеки? Вот только кто сказал, что надо самому рендерить? Рендерить - одно, а преобразовать сцену так, чтоб в ней не осталось невидимых вертексов, порезав скрещиваюшиеся и пересекаюшиеся полигоны по линиям кажущихся и действительных пересечений и удалив из результата невидимые новые полигоны и целиком не видимые старые полигоны, а потом передать на рендеринг в библиотечный рендер - совсем другое. Кроме того, ему же тень нужна. А на какой полигон тень отбрасывать? Только на "землю"? Если в одну точку упала тень двух объектов, то тень одного из них падает и на второй объект. Какой объект на какой тень должен отбросить? Скажите, здесь z-буфер не применим?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.05.2014, 09:08
Привет! Вот еще темы с ответами:

Какие модули (библиотеки) используются программами ОС Windows - C++
Интересует каким способом делаются различные визуальные эффекты, например, как в калькуляторе в Win 7. Столкнулся с такой проблемой: ...

Какие есть библиотеки для работы с MYSQL - C++
Всем привет. Я ищу простую (С++) библиотеку для работы с MYSQL. Программа консольная, среда Visual Studio 9-10 Сурс из официального...

Какие есть библиотеки для парсинга JSON? - C++
Какие есть библиотеки для парсинга JSON в СИ++??

Фоторобот на С++: какие библиотеки для этого потребуются - C++
Нужно на С++ написать программу-фоторобот. Дайте наводки на библиотеки, и вообще как работать с графическими файлами там???


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
09.05.2014, 09:08
Ответ Создать тему
Опции темы

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