Блин, зачем я матрицы вычислял... В 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 часто вылетает