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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
darkknight2008
 Аватар для darkknight2008
62 / 62 / 6
Регистрация: 16.10.2011
Сообщений: 200
#1

Компьютерная графика 3D. - C++

22.04.2012, 20:47. Просмотров 1249. Ответов 6
Метки нет (Все метки)

Потребовалось мне сделать проект с 3D графикой. Т.е. надо было нарисовать плоскость Безье. Все вроде бы получилось, но во первых, хреново работает Z-буффер, если объекты находятся друг в друге(отрезок в плоскости), то происходит неприятное искажение. Далее, плоскость Безье рисуется треугольниками, но используемый мной алгоритм приводит к тому, что между рядом стоящими треугольниками есть просветы, т.е. если у двух треугольников есть две общие вершины, то когда я оба треугольника нарисую, то между ними будут черные точки, через которые будут просвечивать объекты, которые находятся за треугольниками. Но это все не очень критично, основная проблема у меня с добавляением освещения. Я начитался кучкой статей и парой книжек, даже есть некоторые сподвижки, но дальше совершенно не идет(( Если у кого-то есть, пожалуйста выложите свой проект на схожую тематику, либо дайте информацию, как все это дело вообще делается. Заранее предупреждаю, должна использоваться чистая математика(матрицы, векторы и т.п.), НИКАКИХ OpenGL и DirectX, вся 3D графика делается собственноручно. С отчаянием жду помощи от вас.

Добавлено через 24 минуты
В данный момент графика рисуется так: есть координаты вершин треугольника, все вершины умножаются на матрицы камеры и проецирования, все вершины проецируются на экран(получаем экранные координаты), а затем уже по трем точкам я рисую треугольник(закрашиваю его горизонтальными линиями).
Меня интересует вопрос, оправдает ли себя использование обратной трассировки лучей? Т.е. отказаться от текущего способа, и через каждый пиксель экрана пропускать луч, искать его пересечение с треугольниками, а далее определять цвет с учетом источника света, ну и т.п.?
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
23.04.2012, 00:21     Компьютерная графика 3D. #2
а как вы будете использоваться 3D без OpenGL и DirectX????
Цитата Сообщение от darkknight2008 Посмотреть сообщение
НИКАКИХ OpenGL и DirectX, вся 3D графика делается собственноручно.
WinAPI, но это 2Д
IFree Host
23.04.2012, 00:24
  #3

Не по теме:

По моему, darkknight2008, ты выдумал для себя экстремальный геморой. Однако хотелось спросить, зачем изобретать велосипед с самого начала, когда можно совершенствовать уже существующий? Или это просто для удовольствия?

Jupiter
Каратель
Эксперт C++
6547 / 3967 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
23.04.2012, 00:57     Компьютерная графика 3D. #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от panicwassano Посмотреть сообщение
а как вы будете использоваться 3D без OpenGL и DirectX????
очень просто - из самого примитивного - аксонометрические проекции например
darkknight2008
 Аватар для darkknight2008
62 / 62 / 6
Регистрация: 16.10.2011
Сообщений: 200
23.04.2012, 01:53  [ТС]     Компьютерная графика 3D. #5
Считай основная база у меня сделана, это и работа с векторами и матрицами. Используется перспективная проекция. Реализованы методы, позволяющие нарисовать плоскость Безье, сделан Z-буфер. Но основная проблема в мелочах, и я не знаю, как их исправлять(( А на вопрос зачем это надо, ответ предельно понятен - институт.
IFree Host
23.04.2012, 02:20
  #6

Не по теме:

Понятно, значит, меня это тоже ожидает! Если, конечно, вообще дотяну до конца.

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.04.2012, 15:44     Компьютерная графика 3D.
Еще ссылки по теме:

Компьютерная графика C++
C++ Посоветуйте литературу по теме "Компьютерная графика и аналитическая геометрия"
C++ Компьютерная диагностика радио аппаратуры
C++ Компьютерная графика: нарисовать на экране куб

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

Или воспользуйтесь поиском по форуму:
darkknight2008
 Аватар для darkknight2008
62 / 62 / 6
Регистрация: 16.10.2011
Сообщений: 200
23.04.2012, 15:44  [ТС]     Компьютерная графика 3D. #7
Ладно, помощь больше не требуется. Все сделано хоть и не в лучшем виде, но работает, освещается и отсекается невидимое.
Yandex
Объявления
23.04.2012, 15:44     Компьютерная графика 3D.
Ответ Создать тему
Опции темы

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