Показать сообщение отдельно
Старый 29.09.2006, 23:00   #18
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Re: терайн глючный

Сообщение от HolyDel
Так например можно получить mesh из террайна

Function MakeMeshFromTerrain(t)
size=TerrainSize(t)
m=CreateMesh()
s=CreateSurface(m)
For j=0 To size-1
For i=0 To size-1
v0=AddVertex(s,i,TerrainHeight(t,i,j),j,0,0)
v1=AddVertex(s,i+1,TerrainHeight(t,i+1,j),j,1,0)
v2=AddVertex(s,i,TerrainHeight(t,i,j+1),j+1,0,1)
AddTriangle(s,v0,v1,v2)
v0=AddVertex(s,i+1,TerrainHeight(t,i+1,j),j,1,0)
v1=AddVertex(s,i+1,TerrainHeight(t,i+1,j+1),j+1,1, 1)
v2=AddVertex(s,i,TerrainHeight(t,i,j+1),j+1,0,1)
AddTriangle(s,v0,v1,v2)
Next
Next
UpdateNormals m
FlipMesh m
Return m
End Function
С этой функцией каждый квад получает текстурные координаты равные концам текстуры, что очень неудобно, плюс самая неоптимальная генерация ландшафта: по три вертекса на треугольник! Такой террейн тормозить будет... надо хотябы использовать по четыре вертекса на квад если хотите использовать тайловый ландшафт... если же тайловый ландшафт не требуется, то используйте мою функцию для генерации ландшафта, она находится вот в этой теме (про нее Diplomat говорил ): http://www.boolean.name/showthread.php?t=154
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием