Модератор: Mikle
d3drm писал(а):а лучше юзать клевый движок iRender! пример ландшафта есть на сайте ))
d3drm писал(а):если бы ты имел возможность разобраться с UT 2004, то ты бы не спрашивал как создать ландшафт )))
зачем нужны iBuf,vBuf и чем мы их заполняем
Public Sub Render(d3dDev As Direct3DDevice8, x As Single, z As Single, Ang As Single)
Dim x1 As Long, z1 As Long, x2 As Long, z2 As Long
Dim xx As Long, zz As Long, iz As Long, a As Single
xx = x / ScaleXZ
zz = z / ScaleXZ
a = Ang / Pi
Select Case a
Case 0.25! To 0.75!
x1 = xx - SizeOfFrame + 2&: x2 = xx + 1&
z1 = SizeOfFrame * 2! * (0.25! - a) + zz
z2 = z1 + SizeOfFrame - 1&
Case 0.75! To 1.25!
z1 = zz - SizeOfFrame + 2&: z2 = zz + 1&
x1 = SizeOfFrame * 2! * (a - 1.25!) + xx
x2 = x1 + SizeOfFrame - 1&
Case 1.25! To 1.75!
x1 = xx - 1&: x2 = xx + SizeOfFrame - 2&
z1 = SizeOfFrame * 2! * (a - 1.75!) + zz
z2 = z1 + SizeOfFrame - 1&
Case Else
If a > 1! Then a = a - 2!
z1 = zz - 1&: z2 = zz + SizeOfFrame - 2&
x1 = SizeOfFrame * 2! * (-0.25! - a) + xx
x2 = x1 + SizeOfFrame - 1&
End Select
If x1 < 0& Then x1 = 0&
If z1 < 0& Then z1 = 0&
If x2 >= SizeX Then x2 = SizeX - 1&
If z2 >= SizeZ Then z2 = SizeZ - 1&
numTri = (x2 - x1 + 1&) * 2&
numVertex = x2 - x1 + SizeX + 3&
d3dDev.SetVertexShader vFlag
If numTri > 0& Then
For iz = z1 To z2
d3dDev.DrawIndexedPrimitiveUP D3DPT_TRIANGLESTRIP, 0&, numVertex, numTri, iBuf(0&), D3DFMT_INDEX16, vBuf(x1, iz), SizeOfVertex
Next iz
End If
End Sub
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3