Results 1 to 4 of 4

Thread: D3D9 fog problem

  1. #1

    D3D9 fog problem

    I'm using Clootie's headers for D3D in Delphi
    and was trying to make fog (just a simple linear fog)
    but it just won't appear...
    Here's what I did:
    Code:
    var
    fogStart, fogEnd: single;
    ...
    Device.SetRenderState(D3DRS_FOGENABLE, ITRUE);
    Device.SetRenderState(D3DRS_FOGTABLEMODE, D3DFOG_LINEAR);
    Device.SetRenderState(D3DRS_FOGCOLOR, $00ff0000);
    Device.SetRenderState(D3DRS_FOGSTART, PDWORD(@fogStart)^);
    Device.SetRenderState(D3DRS_FOGSTART, PDWORD(@fogEnd)^);
    After this the geometry is rendered normally without any fog... :roll:

    //edit: D3DRS_FOGSTART twice!!! How could I be so stupid !!!

  2. #2

    D3D9 fog problem

    Hi Dan,

    nice to hear from you

    I make it like this:

    Code:
    procedure TCommandoForm.draw_fog;
    var fogstart,fogend,fogdensity: single;
    begin
      fogstart:=0;//5
      fogend:=1200;  //64
      fogdensity:=0.002;
      xenscreen.Device.setrenderstate(d3drs_fogenable,1);
      xenscreen.Device.setrenderstate(d3drs_fogvertexmode,d3dfog_linear);
      xenscreen.Device.setrenderstate(d3drs_fogcolor,d3dcolor_xrgb(40,40,50));
      xenscreen.Device.setrenderstate(d3drs_fogstart,dword((@fogstart)^));
      xenscreen.Device.setrenderstate(d3drs_fogdensity,dword((@fogdensity)^));
      xenscreen.Device.setrenderstate(d3drs_fogend,dword((@fogend)^));
    end;
    Perhaps try much lower fogend value, I have a very big camera view field, try 50 for the beginning or something. And try different colors in Fogcolor!

    Helps?

    Firle

  3. #3

    D3D9 fog problem

    Device.SetRenderState(D3DRS_FOGSTART, PDWORD(@fogStart)^);
    Device.SetRenderState(D3DRS_FOGSTART, PDWORD(@fogEnd)^);

    I knew that it was supposed to be bloody simple!!!
    I just used D3DRS_FOGSTART twice!!!
    Thanks Firle

  4. #4

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •