![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
legat |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 16 Пол: Мужской Реальное имя: Сергей Репутация: ![]() ![]() ![]() |
Необходимо реализовать трассировку лучей на OpenGl и C++, задача вроде проста, есть базовая сфера( радиус =1, центр в начале координат) необходимо ее отрисовать. У меня почти получилось, только вот точки пересечения не получается найти, по моему что-то с заданием направления луча. Может кто-то сталкивался с этим? Буду благодарен за код=)
Может кто знает, где можно найти книгу Лорен Хейни "Построение изображений метод слежения луча"? Сообщение отредактировано: Lapp - 3.03.2010 5:22 |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Это нахождение нормали (направления отраженного луча) в точке пересечения луча со сферой: с учетом того, что нормаль в точке пересечения имеет направление вектора, выпущенного из центра сферы в эту самую точку пересечения, да еще и учитывая нормализацию, вектор N (нормаль) находится вот так:
N = (newStart - sphereCenter) / |newStart - sphereCenter| Что, собственно, и сделано: // чуть выше того, что ты процитировал, находим N = newStart - sphereCenter |
![]() ![]() |
![]() |
Текстовая версия | 31.07.2025 19:17 |