![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
legat |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 16 Пол: Мужской Реальное имя: Сергей Репутация: ![]() ![]() ![]() |
Необходимо реализовать трассировку лучей на OpenGl и C++, задача вроде проста, есть базовая сфера( радиус =1, центр в начале координат) необходимо ее отрисовать. У меня почти получилось, только вот точки пересечения не получается найти, по моему что-то с заданием направления луча. Может кто-то сталкивался с этим? Буду благодарен за код=)
Может кто знает, где можно найти книгу Лорен Хейни "Построение изображений метод слежения луча"? Сообщение отредактировано: Lapp - 3.03.2010 5:22 |
![]() ![]() |
legat |
![]()
Сообщение
#2
|
Новичок ![]() Группа: Пользователи Сообщений: 16 Пол: Мужской Реальное имя: Сергей Репутация: ![]() ![]() ![]() |
Пишу трассировку лучей по книге "Программирование компьютерной графики" Ф. Хилла
направление луча задается след. образом: Код float x=-W+(float)col*2*W/(float)nCols; float y=-H+(float)row*2*H/(float)nRows; //вычисляем направление луча theRay.setDir(-nearDist*n.x+x*u.x+y*v.x, -nearDist*n.y+x*u.y+y*v.y, -nearDist*n.z+x*u.z+y*v.z); вектора n, u, v - поля класса Camera а камеру задаю: Код Point3 eye(0,0,100); Point3 look(0,0,0); Vector3 up(0,1,0); Camera cam; cam.set(eye,look,up); может кто задавал параметры для камеры? а то с моими получается, что луч никогда не пересекает даже хотя бы базовую сферу ![]() (а вот весь код, который у меня есть) |
![]() ![]() |
![]() |
Текстовая версия | 31.07.2025 19:20 |