Показать сообщение отдельно
Старый 27.07.2009, 22:40   #1
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Глобальные волны синусом

надо бы сделать чтоб синус делал одинаковые волны вне зависимости от позиции меша воды
у меня в цикле так делаются волны
y#=Sin(z#*1000)
на каждый вертекс

надо чтоб меш двигался а волны на нём были как в глобальном пространстве
если делать
TFormPoint x#,y#,z#,mesh,0
gz#=TFormedZ#()
y#=Sin(gz#*1000)

то чето чем дальше я меш от нуля отодвигаю по z тем быстрей эти волны по нему двигаются) т.е. через пару координат уже со скоротсю света летят

ничего не понимаю

graphics3d 1280,1024,32

cam=createcamera()
moveentity cam,250,10,0
CameraClsColor cam,100,100,100

lit=createlight()

Global height#=1

high=CreateLODedWater()

pointentity cam,high

Wireframe 1

While Not KeyHit(1)

If KeyDown(KEY_W) moveentity cam,0,0,1
If KeyDown(KEY_S) moveentity cam,0,0,-1

If KeyDown(KEY_A) moveentity high,0,0,-.1
If KeyDown(KEY_D) moveentity high,0,0,.1

UpdateWater2(high)

renderworld
text 0,0,TrisRendered()
Flip
Wend


Function CreateFace(segs,double,parent)
;segs=24
mesh=CreateMesh()
surf=CreateSurface( mesh )
stx#=-.5
sty#=stx
stp#=Float(1)/Float(segs)
y#=sty
For a=0 To segs
x#=stx v#=a/Float(segs)
For b=0 To segs
u#=b/Float(segs)
AddVertex(surf,x,0,y,u,v)
x=x+stp
Next
y=y+stp
Next
For a=0 To segs-1
For b=0 To segs-1
v0=a*(segs+1)+b:v1=v0+1
v2=(a+1)*(segs+1)+b+1:v3=v2-1
AddTriangle( surf,v0,v2,v1 )
AddTriangle( surf,v0,v3,v2 )
Next
Next

Scaleentity mesh,50,height#,50
;rotateentity mesh,180,0,0
Return mesh
End Function

Function UpdateWater2(m)

surf=GetSurface(m,0)

cnt=CountVertices(surf)-1
For k=0 To cnt
x#=VertexX(surf,k)
z#=VertexZ(surf,k)
TFormPoint x#,0,z#,m,0
gz#=TFormedZ#()
y#=Sin((Float(gz#)*1000))*1
VertexCoords surf,k,x,y,z
Next


End Function


Function CreateLODedWater()
height#=1
high=CreateFace(24,0,0)
Return high
End Function
кнопки A,D - двигать меш
__________________
бложик | geom.io | твиттер | faded | демо 1 2 | роботы | лайтмаппер
(Offline)
 
Ответить с цитированием