Показать сообщение отдельно
Старый 06.11.2013, 22:43   #9
Devilox
ПроЭктировщик
 
Аватар для Devilox
 
Регистрация: 14.01.2012
Адрес: Зеленоград
Сообщений: 192
Написано 5 полезных сообщений
(для 9 пользователей)
Ответ: Работа с треугольниками

Блин, зачем я матрицы вычислял... В blitz-е уже всё есть
Function CreateLightmap()
	For m = 1 To CountSurfaces(sphere)
		surf = GetSurface(sphere,m)
		For n = 1 To CountVertices(surf)
							
			i# = VertexNX(surf,n)
			j# = VertexNY(surf,n)
			k# = VertexNZ(surf,n)
			
			x# = EntityX(lamp) - VertexX(surf,n)
			y# = EntityY(lamp) - VertexY(surf,n)
			z# = EntityZ(lamp) - VertexZ(surf,n)
			
			CosA# = (x * i + y * j + z * k) / (Sqr(x^2 + y^2 + z^2) * Sqr(i^2 + j^2 + k^2))
			
			If CosA <= 0
				VertexColor(surf,n,0,0,0)
			Else
				VertexColor(surf,n,255 * CosA,255 * CosA,255 * CosA)
			EndIf
		Next
	Next
End Function
Только вот при использовании максовских моделек появляются вывернутые наизнанку вертексы
Да и вообще стало неправильно работать, матрицы считать лучше, но MAV часто вылетает
__________________
(Offline)
 
Ответить с цитированием