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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
UltimAnt
0 / 0 / 0
Регистрация: 28.04.2014
Сообщений: 10
07.05.2014, 09:38     3D графика, какие библиотеки использовать? #1
Ребята, препод-садист дал задание написать программу с кубиком и пирамидой, что бы их можно было вращать, перемещать, масштабировать и отбрасывала тень при источнике света.
причем удаление невидимых граней происходило с использованием алгоритма z-буфера.
OpenGL и Direct3D изучил, но там похоже не написать алгоритм z-буфера, почитал про graphics.h, говорят устаревший и не работает на современном компиляторе...
какую библиотеку предпочтительно использовать, что бы реализовать алгоритм z-буфер?

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

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

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

Какие библиотеки нужно учить? C++
C++ Какие модули (библиотеки) используются программами ОС Windows
C++ Какие есть библиотеки для распаковки zip файлов?

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

Или воспользуйтесь поиском по форуму:
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
09.05.2014, 09:08     3D графика, какие библиотеки использовать? #11
Тогда при чём здесь вообще 3D-библиотеки? Вот только кто сказал, что надо самому рендерить? Рендерить - одно, а преобразовать сцену так, чтоб в ней не осталось невидимых вертексов, порезав скрещиваюшиеся и пересекаюшиеся полигоны по линиям кажущихся и действительных пересечений и удалив из результата невидимые новые полигоны и целиком не видимые старые полигоны, а потом передать на рендеринг в библиотечный рендер - совсем другое. Кроме того, ему же тень нужна. А на какой полигон тень отбрасывать? Только на "землю"? Если в одну точку упала тень двух объектов, то тень одного из них падает и на второй объект. Какой объект на какой тень должен отбросить? Скажите, здесь z-буфер не применим?
Yandex
Объявления
09.05.2014, 09:08     3D графика, какие библиотеки использовать?
Ответ Создать тему
Опции темы

Текущее время: 09:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru