Jump to content

SpiderPig

Members
  • Posts

    2,407
  • Joined

  • Last visited

Posts posted by SpiderPig

  1. I've made this simple program based on the Post-Processing tutorial which works fine until I set a shader which causes the end result to be a solid grey image. I'm positive it's a problem somewhere when setting the shader because it all rendered fine before I added that code. I've tried 'abstract' file system as well as loading each file directly.

    Can anyone help? Here's the code :

     

    #include "engine.h"
    
    
    int main(int argc,char** argv)
    {
    
    Initialize();
    Graphics(640,480);
    
    TWorld world=CreateWorld();
    
    
    TEntity MainCam=CreateCamera();
           MoveEntity(MainCam,Vec3(0,5,-20));
    CameraClearMode(MainCam,BUFFER_DEPTH);
    
    //creat a render buffer for lighting
    TBuffer gbuffer=CreateBuffer(640,480,BUFFER_COLOR|BUFFER_DEPTH|BUFFER_NORMAL);
    //create a buffer for post processing effects
    TBuffer postbuffer=CreateBuffer(640,480,BUFFER_COLOR);
    
    //creat a directional light, e.g. the sun
    TLight light=CreateDirectionalLight();
    RotateEntity(light,Vec3(45,45,0));
    
    
    //create the skybox
    TWorld background=CreateWorld();
    TMesh skybox=CreateCube();
    TCamera skycam=CreateCamera();
    FlipMesh(skybox);
    PaintEntity(skybox,LoadMaterial("FullskiesBlueClear0016_2_L.mat"));
    SetWorld(world);
    
    
    
    TTerrain terrain=CreateTerrain(64);
    ScaleEntity(terrain,Vec3(5,5,5));
    
    
    TEntity Oak=LoadModel("Oak/Oak.gmf");
    PositionEntity(Oak,Vec3(-40,0,-30));
    
    
    TShader postfilter=LoadShader("abstract::postfilter.vert","abstract::postfilter_desaturate.frag");
    
    
    
    TTexture grass1=LoadTexture("terrain_forest_grass.dds");
    SetTerrainTexture(terrain,grass1,0,0);
    SetTerrainTextureScale(terrain,6,0);
    
       TVec3 camrotation=Vec3(0);
       float mx=0;
       float my=0;
       HideMouse();
       MoveMouse(GraphicsWidth()/2,GraphicsHeight()/2);
    
    
    while(!KeyHit(KEY_ESCAPE))
    {
    
      mx=Curve(MouseX()-GraphicsWidth()/2,mx,6);
      my=Curve(MouseY()-GraphicsHeight()/2,my,6);
      MoveMouse(GraphicsWidth()/2,GraphicsHeight()/2);
    
      camrotation.X=camrotation.X+my/10.0;
      camrotation.Y=camrotation.Y-mx/10.0;
      RotateEntity(MainCam,camrotation);
    
      if(KeyDown(KEY_W))
      {
    	  MoveEntity(MainCam,Vec3(0.0,0.0,0.2));
      };
      if(KeyDown(KEY_S))
      {
    	  MoveEntity(MainCam,Vec3(0.0,0.0,-0.2));
      };
    
    
    
    
      UpdateAppTime();
      UpdateWorld();
    
             SetBuffer(gbuffer);
    
      //render the background
      RotateEntity(skycam,EntityRotation(MainCam));
      SetWorld(background);
      RenderWorld();
    
      SetWorld(world);
      RenderWorld();
    
      SetBuffer(postbuffer);
      RenderLights(gbuffer);
    
      SetBuffer(BackBuffer());
    
      SetShader(postfilter);
      DrawImage(GetColorBuffer(postbuffer),0,GraphicsHeight(),GraphicsWidth(),-GraphicsHeight());
    
    
    
    
      Flip();
    
    }
    
    Terminate();
    return 0;
    
    
    }

  2. I want to make my own terrain generator/editor with LOD levels, and the built in surface commands are two slow for me..so I'm going to use OpenGL. But before I go any further with it...would it be possible to set up the terrain model some how to accept leadwerks collision commands, with vehicles and controllers? Everything..?

     

    I havn't gone far with this project yet...jsut want to see if its all possible..=]

     

    Thanks=]

  3. I'm useing both a directional light and several points - they all have the same problem.

     

    Thanks for your thoughts Flexman, I was thinking along similar lines.

    Floating point errors? So they're a game engine thing? Not a C++ thing? Hasn't anyone tried fixing them?

     

    Thanks for the replys..=]

  4. Hey everyone,

     

    I'm fairly new to Leadwerks, so go easy on me =]

    I'm not sure if I'm doing something wrong or not...but I had a building, and lights with the centre at : (0,0,0)

    Everything was fine until I moved it a huge distance away : (10000,0,10000) - because I have a huge island...

     

    Every time The camera moves the shadows are very jumpy, and even some of the objects seem to have the jitters...

    but when the camera stops so do the jitters...it seems to be less jittery the closer I move everything to the worlds centre..

     

    Any Ideas? or is the answer stareing me in the face?? =]

    Thanks

  5. You know, just as I posted that I thought, "I know how to fix that," :unsure:

    At the beginning of the code (before 'main') i added : TEntity Tailgate;

     

    Then when I load the model instead of TEntity TailGate=LoadModel("TailGate.gmf");

    I just used : TailGate=LoadModel("TailGate.gmf");!!!!

    And it works fine....(I feel stupid)

    Thanks though!! :blink:

  6. Here's The code I'm using,

    Everything else works fine. It just doesn't know what 'TailGate' is,

     

    
    

    #include "engine.h"

    void UdateTailGate(void);
    int TailGateAngle=0;
    int TailGateStatus=0;

    int main(int argc,char** argv)
    {

    Initialize();
    Graphics(1024,768);
    CreateWorld();


    TEntity MainCam=CreateCamera();
    PositionEntity(MainCam,Vec3(0,6,-7));
    RotateEntity(MainCam,Vec3(30,0,0));


    TLight MainLight=CreateSpotLight(20.0);
    TLight MainLight2=CreateSpotLight(20.0);
    PositionEntity(MainLight,Vec3(0,12,6));
    PositionEntity(MainLight2,Vec3(0,12,-6));

    SetShadowmapSize(MainLight,2000);
    SetShadowmapSize(MainLight2,2000);
    RotateEntity(MainLight,Vec3(90,0,0));
    RotateEntity(MainLight2,Vec3(90,0,0));


    TEntity Floor=CreatePlane();
    ScaleEntity(Floor,Vec3(10,1,10));
    TEntity Car=LoadModel("JeepMain.gmf");

    TEntity Bonnet=LoadModel("Bonnet.gmf");
    PositionEntity(Bonnet,Vec3(0.012,3.177,-1.297));
    EntityParent(Bonnet,Car);

    int BonnetAngle=0;
    int BonnetStatus=0;//0-closed,1-open,2-opening,3-closeing



    TEntity TailGate=LoadModel("TailGate.gmf");
    PositionEntity(TailGate,Vec3(-1.105,2.249,4.578));
    EntityParent(TailGate,Car);


    TEntity SpareWheel=LoadModel("Wheel.gmf");
    PositionEntity(SpareWheel,Vec3(0,2.293,5));
    EntityParent(SpareWheel,TailGate);



    TEntity LeftDoor=LoadModel("LeftDoor.gmf");
    PositionEntity(LeftDoor,Vec3(1.975,2.669,-0.618));
    EntityParent(LeftDoor,Car);





    TBuffer Buffer=CreateBuffer(1024,768,BUFFER_COLOR|BUFFER_DEPTH|BUFFER_NORMAL);//buffer for teh lights
    float CarAng=0.0;



    while(!KeyHit(KEY_ESCAPE))
    {

    if(KeyHit(KEY_:unsure:==1)
    {
    if(BonnetStatus==0)
    {
    BonnetStatus=2;
    }
    else
    {
    if(BonnetStatus==1)
    {
    BonnetStatus=3;
    }
    }



    }

    if(BonnetStatus==2)
    {
    if(BonnetAngle<60)
    {
    BonnetAngle++;
    RotateEntity(Bonnet,Vec3(BonnetAngle,0,0));
    }
    else
    {
    BonnetStatus=1;//open
    }
    }

    if(BonnetStatus==3)
    {
    if(BonnetAngle>0)
    {
    BonnetAngle--;
    RotateEntity(Bonnet,Vec3(BonnetAngle,0,0));
    }
    else
    {
    BonnetStatus=0;//closed
    }
    }


    UdateTailGate();



    RotateEntity(Car,Vec3(0,CarAng,0));
    CarAng=CarAng-0.2;

    UpdateWorld(1);
    SetBuffer(Buffer);


    RenderWorld(RENDER_ALL);
    SetBuffer(BackBuffer());
    RenderLights(Buffer);
    SetBuffer(BackBuffer());


    Flip(1);

    }

    Terminate();
    return 0;

    }





    void UdateTailGate(void)
    {

    if(KeyHit(KEY_T)==1)
    {
    if(TailGateStatus==0)
    {
    TailGateStatus=2;
    }
    else
    {
    if(TailGateStatus==1)
    {
    TailGateStatus=3;
    }
    }
    }


    if(TailGateStatus==2)
    {
    if(TailGateAngle<100)
    {
    TailGateAngle++;
    RotateEntity(TailGate,Vec3(0,TailGateAngle,0));//Tailgate is an undeclared Identifier
    }
    else
    {
    TailGateStatus=1;//open
    }
    }

    if(TailGateStatus==3)
    {
    if(TailGateAngle>0)
    {
    TailGateAngle--;
    RotateEntity(TailGate,Vec3(0,TailGateAngle,0));
    }
    else
    {
    TailGateStatus=0;//closed
    }
    }
    };
    
    

  7. I'm using C++ 2010, and I'm trying to make a function to rotate a car door, but the door model is loaded in the "main" function so that makes it local only to that function right?

    How do I get other functions to recognize it too?

    I've tried Initializing, setting up the graphics and loading the door before "main", but it doesn't work...

    Any suggestions? :unsure:

    (I'm rather new to both C++ and LeadWerks)

     

    Thanks

×
×
  • Create New...