Разработчик
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений (для 60 пользователей)
|
Ответ: Советы по оптимизации
УРААА!! Получилось! Вот я тугодум, два дня втыкал. Оказывается надо tForm для каждой координаты добавлять.
Мне кажется код нихрена не оптимальный. Ну хотя бы работает )

Function CloudCreate(x#,y#,z#,scale#=1,rotx#=0,roty#=0,rotz#=0)
cloud.cloud=New cloud
cloud\x=x : cloud\y=y : cloud\z=z
cloud\scale=scale
cloud\rotx=rotx : cloud\roty=roty : cloud\rotz=rotz
cloud\surface=surf
xPositionEntity transPivot,cloud\x,cloud\y,cloud\z
xRotateEntity transPivot,cloud\rotx,cloud\roty,0
xScaleEntity transPivot,cloud\scale,cloud\scale,cloud\scale
xTFormPoint(-1,1,0,transPivot,0)
cloud\vertex[0]=xAddVertex(cloud\surface,xTFormedX(),xTFormedY(),xTFormedZ(),0,0)
xTFormPoint(1,1,0,transPivot,0)
cloud\vertex[1]=xAddVertex(cloud\surface,xTFormedX(),xTFormedY(),xTFormedZ(),1,0)
xTFormPoint(1,-1,0,transPivot,0)
cloud\vertex[2]=xAddVertex(cloud\surface,xTFormedX(),xTFormedY(),xTFormedZ(),1,1)
xTFormPoint(-1,-1,0,transPivot,0)
cloud\vertex[3]=xAddVertex(cloud\surface,xTFormedX(),xTFormedY(),xTFormedZ(),0,1)
tr1=xAddTriangle(cloud\surface,cloud\vertex[0],cloud\vertex[1],cloud\vertex[2])
tr2=xAddTriangle(cloud\surface,cloud\vertex[0],cloud\vertex[2],cloud\vertex[3])
tr3=xAddTriangle(cloud\surface,cloud\vertex[2],cloud\vertex[1],cloud\vertex[0])
tr4=xAddTriangle(cloud\surface,cloud\vertex[3],cloud\vertex[2],cloud\vertex[0])
End Function
Function CloudUpdate(cloud.cloud)
xPositionEntity transPivot,cloud\x,cloud\y,cloud\z
xRotateEntity transPivot,cloud\rotx,cloud\roty,cloud\rotz
xTFormPoint(-1,1,0,transPivot,0)
xVertexCoords(cloud\surface,cloud\vertex[0],xTFormedX(),xTFormedY(),xTFormedZ())
xTFormPoint(1,1,0,transPivot,0)
xVertexCoords(cloud\surface,cloud\vertex[1],xTFormedX(),xTFormedY(),xTFormedZ())
xTFormPoint(1,-1,0,transPivot,0)
xVertexCoords(cloud\surface,cloud\vertex[2],xTFormedX(),xTFormedY(),xTFormedZ())
xTFormPoint(-1,-1,0,transPivot,0)
xVertexCoords(cloud\surface,cloud\vertex[3],xTFormedX(),xTFormedY(),xTFormedZ())
End Function
Доделал пример, не окончательный но 70к мешиков вытянул, местами подлагивает..
На качество травы не обращайте внимание, для примера, та же текстура только АльфаРеф накинул)
Качаем, комментируем!!
__________________
|