Я делаю изображение с использованием Python.Но затенение по Ламберту не работает.
Сначала изображение сохраняется таким образом. введите описание изображения здесь
Но когда я перевернул нормальный вектор сферы, изображение сохраняется следующим образом. введите описание изображения здесь
Этомой код затенения.
v = -m*ray
if s == 'Sphere':
n = view.viewPoint - list[idx].c - v
n = -n / np.sqrt(np.sum(n*n))
for i in light:
l_i = v + i.position - view.viewPoint
l_i = l_i / np.sqrt(np.sum(l_i * l_i))
x = list[idx].s.d[0] * i.intensity[0] * max(np.dot(l_i, n), 0)
y = list[idx].s.d[1] * i.intensity[1] * max(np.dot(l_i, n), 0)
z = list[idx].s.d[2] * i.intensity[2] * max(np.dot(l_i, n), 0)
list - это список сфер, а idx - номер ближайшей сферы.Буду благодарен, если кто-нибудь сможет мне помочь.Я занимаюсь этим уже неделю