Модератор: Mikle
Dim Shadow As New classShadowVolume3D 'Объявляем наш теневой объем
Dim vLight As D3DVECTOR 'Позиция источника света
Dim bMesh As D3DXMESH 'Объект
...
sub Render() 'Прорисовка (каждый кадр)
Dim mat As D3DMATRIX 'Матрица объекта bMesh
...
Shadow.Reset 'Сброс буфера теневого объема
Shadow.BuildFromMesh bMesh, vLight 'Создание теневого объема из bMesh
SHADOW_MOD.RenderShadow Shadow, mat 'Отрисовка теневого объема в стенсильный буфер
SHADOW_MOD.DrawShadow 'Отрисовка тени в экранный буфер
...
end sub
Enum MATHVEC3_OPERATION
MATH_PLUS = 0
MATH_MINUS = 1
End Enum
Function MathVec3(a As D3DVECTOR, b As D3DVECTOR, operation As MATHVEC3_OPERATION) As D3DVECTOR
Select Case operation
Case 0:
MathVec3 = vec3(a.x + b.x, a.y + b.y, a.z + b.z)
Case 1:
MathVec3 = vec3(a.x - b.x, a.y - b.y, a.z - b.z)
End Select
End Function
Хакер писал(а):Это ты MathVec что-ли на С++ переписывал ради большей скорости?
Dim DispMode As D3DDISPLAYMODE
Dim d3dpp As D3DPRESENT_PARAMETERS
Set d3d = dx8.Direct3DCreate
d3d.GetAdapterDisplayMode D3DADAPTER_DEFAULT, DispMode
d3dpp.Windowed = True
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD
d3dpp.BackBufferFormat = DispMode.Format
d3dpp.BackBufferWidth = DispMode.Width
d3dpp.BackBufferHeight = DispMode.Height
d3dpp.BackBufferCount = 1
d3dpp.EnableAutoDepthStencil = True
d3dpp.AutoDepthStencilFormat = D3DFMT_D24S8
Set d3dDevice = d3d.CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, d3dpp)
Set Shadow = New classShadowVolume3D
Shadow.Reset
Shadow.BuildFromMesh bMesh, vLight
...
'Тут твоё создание объекта bMesh
Set bMesh = bMesh.CloneMeshFVF(0, D3DFVF_VERTEX, d3dDevice)
...
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 44