0 / 0 / 0
Регистрация: 28.04.2014
Сообщений: 11
1

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

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

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

Добавлено через 48 минут
хотя появился ещё 1 вопрос: возможно ли на OpenGL использовать алгоритм z-буфера?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.05.2014, 09:38
Ответы с готовыми решениями:

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

Какие библиотеки?
Привет, всем! Посоветуйте пожалуйста библиотеки, которые стоит изучить мне на начальном этапе.....

Какие библиотеки изучать?
Доброго времени суток. Я начинающий программист, изучаю с++. Элементарные задачки решать умеем,...

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

10
4201 / 1793 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
07.05.2014, 09:51 2
Если не прописано в задании, то какие выберешь. С учётом доступности/платности и собственных знаний, так как не исключено существование экзотических 3D-библиотек в ограниченном количестве копий и при этом ещё и стоящих, как несколько лет коллективной работы и малоизвестных даже в узких кругах.

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

Код у него сишный, но смотри на математику, которую он использует.
Математика годится и для других языков..
0
4201 / 1793 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
08.05.2014, 09:11 7
Цитата Сообщение от UltimAnt Посмотреть сообщение
препод рассказывал как с помощью матриц поворачивать объект, масштабировать и т.д. зачем?
Дай первокласнику ту самую библиотеку, врядли он матрицу поворота даже заполнит. Одно дело - оптимизация или исполнение на GPU и совсем другое понимание собственных действий.
Цитата Сообщение от UltimAnt Посмотреть сообщение
ну нам задали каждому свой алгоритма(художника, Варнока, Уоткинса, иерархический z-буфер и др.),
Под конкретную сцену можно много чего наворотить, но библиотека то универсальная и кроме z-буфера ничего другого предложить не может. Я, кстати, делал z-буфер в самом приложении вместо библиотеки, ничего сложного там нет. Но то была самописная библиотека, а z-буфер был здорово не стандартный, линейный вместо плоского и привязанный к определённому порядку построения рёбер, а использовался только для удаления частей рёбер, причём, криволинейных, так что его пришлось вынести в приложение. Плоский же z-буфер ещё проще, вполне универсален и обязательно входит во все универсальные рендеры.
0
0 / 0 / 0
Регистрация: 28.04.2014
Сообщений: 11
08.05.2014, 12:42  [ТС] 8
Цитата Сообщение от taras atavin Посмотреть сообщение
Под конкретную сцену можно много чего наворотить, но библиотека то универсальная и кроме z-буфера ничего другого предложить не может. Я, кстати, делал z-буфер в самом приложении вместо библиотеки, ничего сложного там нет. Но то была самописная библиотека, а z-буфер был здорово не стандартный, линейный вместо плоского и привязанный к определённому порядку построения рёбер, а использовался только для удаления частей рёбер, причём, криволинейных, так что его пришлось вынести в приложение. Плоский же z-буфер ещё проще, вполне универсален и обязательно входит во все универсальные рендеры.
то есть надо использовать OpenGL только для открытия окна приложения, а прорисовку объекта вручную?
0
4201 / 1793 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
08.05.2014, 12:50 9
Нет. OpenGL как раз и предназначена для прорисовки, тебе надо только подготовить данные для визуализации. Плоский z-буфер - основа всякого универсального рендера, хоть библиотечного, хоть прикладного, так как именно он вполне универсален и не зависит ни от самой сцены, ни от порядка передачи объектов, а тем более рёбер и вертексов рендеру, но достаточно прост, чтоб при любой сложности сцены минимально нагружать GPU.
0
3653 / 2990 / 828
Регистрация: 25.03.2012
Сообщений: 11,029
Записей в блоге: 1
08.05.2014, 13:37 10
taras atavin, имелось в виду, очевидно, что им задали сделать что-то типа софтварного рендера. То есть к z-буферу openGL это будет иметь довольно отдалённое отношение. По сути, его задание состоит в том, чтобы программа получала на вход 3д-сцену, сама софтварно её рендерила в растр, применяя либо z-буффер, либо что угодно...
Цитата Сообщение от UltimAnt Посмотреть сообщение
(художника, Варнока, Уоткинса, иерархический z-буфер и др.)
А вывод растра на экран может осуществлятся хоть OpenGL, хоть любым другим способом - это чисто интерфейс его работы, а не суть задания!
0
4201 / 1793 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
09.05.2014, 09:08 11
Тогда при чём здесь вообще 3D-библиотеки? Вот только кто сказал, что надо самому рендерить? Рендерить - одно, а преобразовать сцену так, чтоб в ней не осталось невидимых вертексов, порезав скрещиваюшиеся и пересекаюшиеся полигоны по линиям кажущихся и действительных пересечений и удалив из результата невидимые новые полигоны и целиком не видимые старые полигоны, а потом передать на рендеринг в библиотечный рендер - совсем другое. Кроме того, ему же тень нужна. А на какой полигон тень отбрасывать? Только на "землю"? Если в одну точку упала тень двух объектов, то тень одного из них падает и на второй объект. Какой объект на какой тень должен отбросить? Скажите, здесь z-буфер не применим?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.05.2014, 09:08
Помогаю со студенческими работами здесь

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

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

Какие функции выполняют следующие библиотеки в С++?
"stdafx" как я понимаю, она ускоряет компиляцию <locale.h> позволяет использовать русский текст...

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru