
Модератор: 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 в этот диапазон.
 А по другому нельзя? Я использую туман, как написано в SDK, тот, который писал Юрич.
  А по другому нельзя? Я использую туман, как написано в SDK, тот, который писал Юрич. 
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4