Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/92: Рейтинг темы: голосов - 92, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 28.04.2014
Сообщений: 11

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

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

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

Добавлено через 48 минут
хотя появился ещё 1 вопрос: возможно ли на OpenGL использовать алгоритм z-буфера?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.05.2014, 09:38
Ответы с готовыми решениями:

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

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

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

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

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

Код у него сишный, но смотри на математику, которую он использует.
Математика годится и для других языков..
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
08.05.2014, 09:11
Цитата Сообщение от UltimAnt Посмотреть сообщение
препод рассказывал как с помощью матриц поворачивать объект, масштабировать и т.д. зачем?
Дай первокласнику ту самую библиотеку, врядли он матрицу поворота даже заполнит. Одно дело - оптимизация или исполнение на GPU и совсем другое понимание собственных действий.
Цитата Сообщение от UltimAnt Посмотреть сообщение
ну нам задали каждому свой алгоритма(художника, Варнока, Уоткинса, иерархический z-буфер и др.),
Под конкретную сцену можно много чего наворотить, но библиотека то универсальная и кроме z-буфера ничего другого предложить не может. Я, кстати, делал z-буфер в самом приложении вместо библиотеки, ничего сложного там нет. Но то была самописная библиотека, а z-буфер был здорово не стандартный, линейный вместо плоского и привязанный к определённому порядку построения рёбер, а использовался только для удаления частей рёбер, причём, криволинейных, так что его пришлось вынести в приложение. Плоский же z-буфер ещё проще, вполне универсален и обязательно входит во все универсальные рендеры.
0
0 / 0 / 0
Регистрация: 28.04.2014
Сообщений: 11
08.05.2014, 12:42  [ТС]
Цитата Сообщение от taras atavin Посмотреть сообщение
Под конкретную сцену можно много чего наворотить, но библиотека то универсальная и кроме z-буфера ничего другого предложить не может. Я, кстати, делал z-буфер в самом приложении вместо библиотеки, ничего сложного там нет. Но то была самописная библиотека, а z-буфер был здорово не стандартный, линейный вместо плоского и привязанный к определённому порядку построения рёбер, а использовался только для удаления частей рёбер, причём, криволинейных, так что его пришлось вынести в приложение. Плоский же z-буфер ещё проще, вполне универсален и обязательно входит во все универсальные рендеры.
то есть надо использовать OpenGL только для открытия окна приложения, а прорисовку объекта вручную?
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
08.05.2014, 12:50
Нет. OpenGL как раз и предназначена для прорисовки, тебе надо только подготовить данные для визуализации. Плоский z-буфер - основа всякого универсального рендера, хоть библиотечного, хоть прикладного, так как именно он вполне универсален и не зависит ни от самой сцены, ни от порядка передачи объектов, а тем более рёбер и вертексов рендеру, но достаточно прост, чтоб при любой сложности сцены минимально нагружать GPU.
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
08.05.2014, 13:37
taras atavin, имелось в виду, очевидно, что им задали сделать что-то типа софтварного рендера. То есть к z-буферу openGL это будет иметь довольно отдалённое отношение. По сути, его задание состоит в том, чтобы программа получала на вход 3д-сцену, сама софтварно её рендерила в растр, применяя либо z-буффер, либо что угодно...
Цитата Сообщение от UltimAnt Посмотреть сообщение
(художника, Варнока, Уоткинса, иерархический z-буфер и др.)
А вывод растра на экран может осуществлятся хоть OpenGL, хоть любым другим способом - это чисто интерфейс его работы, а не суть задания!
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
09.05.2014, 09:08
Тогда при чём здесь вообще 3D-библиотеки? Вот только кто сказал, что надо самому рендерить? Рендерить - одно, а преобразовать сцену так, чтоб в ней не осталось невидимых вертексов, порезав скрещиваюшиеся и пересекаюшиеся полигоны по линиям кажущихся и действительных пересечений и удалив из результата невидимые новые полигоны и целиком не видимые старые полигоны, а потом передать на рендеринг в библиотечный рендер - совсем другое. Кроме того, ему же тень нужна. А на какой полигон тень отбрасывать? Только на "землю"? Если в одну точку упала тень двух объектов, то тень одного из них падает и на второй объект. Какой объект на какой тень должен отбросить? Скажите, здесь z-буфер не применим?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.05.2014, 09:08
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3, Box2D, FreeType и SDL3_ttf из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru