Теперь использую максовские нормали. В аттаче скриншоты для сравнения. Сцена осталась та же, разные только нормали.
Вот кусок кода экспорта нормалей.
fn WriteVector3 vec3 =
(
-- write vertex according to X - right, Y - up, Z - forward
cacheWriteFloat file ( vec3.x)
cacheWriteFloat file ( vec3.z)
cacheWriteFloat file (-vec3.y)
)
...
-- write faces
for f = 1 to mesh.numfaces do
(
local face = polyop_getFace mesh f
WriteFace face
if ( numTVerts != 0 ) then
WriteFace ( polyop_getTVFace mesh f )
else
WriteFace face
if (textures.count > 1) then
writeLong file ((polyop_getFaceMatID mesh f) - 1)
else
writeLong file 0
if( getFaceSmoothGroup mesh f != 0 ) then
(
local normals = meshop.getFaceRNormals mesh f
WriteVector3 normals[1]
WriteVector3 normals[2]
WriteVector3 normals[3]
)
else
(
local faceNormal = getFaceNormal mesh f
WriteVector3 faceNormal[1]
WriteVector3 faceNormal[2]
WriteVector3 faceNormal[3]
)
)
В некоторых местах стало гораздо лучше - пропала "бесконечная" глубина бампа( был как-то скрин с жестоким бампом - так вот его теперь нет ).
Но в меню какая-то наркомания. Мне больше нраицца первый вариант с рассчитанными нормалями, но оставлю максовские - там их изменить хотя бы можно.
P.S. А я смотрю вы тут без меня не скучаете
