Модератор: Mikle
Yurich писал(а):Кажись это:
Dim D3DPp As D3DPRESENT_PARAMETERS ' Параметры отображения
D3DPp.AutoDepthStencilFormat = D3DFMT_D16 или D3DFMT_D32
вобщем, там параметров куча
Vovik писал(а): Я уже это пробовал, но он мне выдаёт ошибку...
Mikle писал(а):А ты, случайно, не в оконном режиме битность пытаешься менять?
Public Sub InitD3D(WinMode As Boolean, FogFlag As Boolean, WinDx As Integer, WinDy As Integer, Bpp As Integer, TL As Boolean)
Dim MatProjection As D3DMATRIX
Dim DispMode As D3DDISPLAYMODE
Dim d3dpp As D3DPRESENT_PARAMETERS
Dim tmp As Long
Set d3d = DirX8.Direct3DCreate
Call d3d.GetAdapterDisplayMode(D3DADAPTER_DEFAULT, DispMode)
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD
If WinMode Then
d3dpp.Windowed = True
d3dpp.BackBufferFormat = DispMode.Format
Else
d3dpp.Windowed = False
d3dpp.BackBufferWidth = WinDx
d3dpp.BackBufferHeight = WinDy
If Bpp = 16 Then
d3dpp.BackBufferFormat = D3DFMT_R5G6B5
Else
d3dpp.BackBufferFormat = D3DFMT_X8R8G8B8
End If
End If
d3dpp.BackBufferCount = 1
d3dpp.EnableAutoDepthStencil = True
d3dpp.AutoDepthStencilFormat = D3DFMT_D16
If TL Then
Set d3dDevice = d3d.CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, frmD3D.hWnd, D3DCREATE_HARDWARE_VERTEXPROCESSING, d3dpp)
Else
Set d3dDevice = d3d.CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, frmD3D.hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, d3dpp)
End If
tmp = &H3C000000 + 335544 * FogDens
If FogFlag And (FogDens > 0) Then
d3dDevice.SetRenderState D3DRS_FOGCOLOR, FogColor
d3dDevice.SetRenderState D3DRS_FOGDENSITY, tmp
d3dDevice.SetRenderState D3DRS_FOGTABLEMODE, D3DFOG_EXP
d3dDevice.SetRenderState D3DRS_FOGENABLE, True
End If
d3dDevice.SetRenderState D3DRS_LIGHTING, False
d3dDevice.SetTextureStageState 0, D3DTSS_MIPFILTER, D3DTEXF_LINEAR
d3dDevice.SetTextureStageState 0, D3DTSS_MINFILTER, D3DTEXF_LINEAR
d3dDevice.SetTextureStageState 0, D3DTSS_MAGFILTER, D3DTEXF_LINEAR
End Sub
Mikle писал(а):Я экспериментально нашел диапазон изменений для плотности тумана, пригодных в моей программе. Эсли сильно изменить масштабы - изменится и диапазон. У меня глубина обзора от 0.1 до 100.
tmp = &H3C000000 + 335544 * FogDens
переводит значения диапазона 0...100 в этот диапазон.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 28