Попробую структурировать Ваше замечание. Нам нужно посчитать внешнее освещение в точке (опять же на примере куба) какой-то грани. Для этого из точки мы выпускаем лучи во всех направлениях - по сфере, построенной вокруг этой точки. В таком случае нам стоит рассматривать только лучи по "верхней" полусфере, потому что нижняя полусфера находится внутри куба (и заслонена самой гранью) и никакой свет оттуда не придет (если куб непрозрачный). Но, чтобы знать, какая сфера "верхняя", нужно иметь лицевую нормаль, т.е. нормаль, смотрящую вне объекта, именно она задаст верхнюю полусферу. Можно попробовать предложить: "Верхняя сфера - та часть сферы, которая не пересекается с объектом", но это будет верно только для выпуклых объектов.
Про 20 лет назад не скажу - меня тогда еще не было). Но такие вещи обычно делаются в учебных целях как по собственному желанию, так и нет. Нужно ли заниматься реализациями с нуля для своего понимания, чтоб потом использовать профессиональные инструменты - пока не знаю (но хочется верить, что нужно), было бы интересно послушать мнение старших профессионалов по этому поводу. В "реальных" проектах, конечно, такое делать не надо (нельзя).
Да, в разы быстрее и проще. Но тут была задача реализовать все алгоритмы с нуля и использовать графические инструменты только для вывода готовых изображений.
Если интересно прям с нуля, то есть две фундаментальные (хотя и давно выпущенные) книги Д. Роджерса: "Математические основы машинной графики" и "Алгоритмические основы машинной графики" (тут более конкретно, часть книги посвящена 3D графике) . Из более современного можно посмотреть "Fundamentals of Computer Graphics" Peter Shirley, полностью не разбирал, только нужные части, но в целом хорошо. Достаточно методично написана "Компьютерная графика. Рейтрейсинг и растеризация." Габриел Гамбетта. На самом хабре есть замечательный цикл статей от @haqreu.
Информация
В рейтинге
Не участвует
Зарегистрирован
Активность
Специализация
Бэкенд разработчик, Архитектор программного обеспечения
Попробую структурировать Ваше замечание. Нам нужно посчитать внешнее освещение в точке (опять же на примере куба) какой-то грани. Для этого из точки мы выпускаем лучи во всех направлениях - по сфере, построенной вокруг этой точки. В таком случае нам стоит рассматривать только лучи по "верхней" полусфере, потому что нижняя полусфера находится внутри куба (и заслонена самой гранью) и никакой свет оттуда не придет (если куб непрозрачный). Но, чтобы знать, какая сфера "верхняя", нужно иметь лицевую нормаль, т.е. нормаль, смотрящую вне объекта, именно она задаст верхнюю полусферу. Можно попробовать предложить: "Верхняя сфера - та часть сферы, которая не пересекается с объектом", но это будет верно только для выпуклых объектов.
Про 20 лет назад не скажу - меня тогда еще не было). Но такие вещи обычно делаются в учебных целях как по собственному желанию, так и нет. Нужно ли заниматься реализациями с нуля для своего понимания, чтоб потом использовать профессиональные инструменты - пока не знаю (но хочется верить, что нужно), было бы интересно послушать мнение старших профессионалов по этому поводу. В "реальных" проектах, конечно, такое делать не надо (нельзя).
Да, в разы быстрее и проще. Но тут была задача реализовать все алгоритмы с нуля и использовать графические инструменты только для вывода готовых изображений.
Если интересно прям с нуля, то есть две фундаментальные (хотя и давно выпущенные) книги Д. Роджерса: "Математические основы машинной графики" и "Алгоритмические основы машинной графики" (тут более конкретно, часть книги посвящена 3D графике) . Из более современного можно посмотреть "Fundamentals of Computer Graphics" Peter Shirley, полностью не разбирал, только нужные части, но в целом хорошо. Достаточно методично написана "Компьютерная графика. Рейтрейсинг и растеризация." Габриел Гамбетта. На самом хабре есть замечательный цикл статей от @haqreu.