Jump to content

Jardar

Members
  • Posts

    76
  • Joined

  • Last visited

Posts posted by Jardar

  1. Hello

     

    now i make mini game mrtg online mode 2.5D and

    i need import model by 3D-Coat to leadwerks,

    ...

     

    You will first have to make sure your model is ready to be exported, then export as FBX format. From there you can easily import models to leadwerks.

  2. I can think of at least one example of a game where a unified mesh of the trees would save some akwardness, but perhas not remove it entirely.

    Gothic3 had trees with intersecting branches, some trees had sway to simulate wind. The result in Gothic3 was that the trees and branches moved slightly out of sync, making it look really odd, that the branches seemed to slide around on the trunk.

    That is just one example of a possible implication of intersecting branches over that of a unified mesh.

  3. Honestly, I think it is a stellar idea. But it really doesnt need to be "latest news" and all that here on Leadwerks. Rather it should be a video or two, a gallery and a description with a link to the project's website if it got one.

    That way, Josh can have a show of projects using the leadwerks engine, and the project's owners doesnt need to update so much on two seperate sites. Also the community around a project wouldnt be confused as to where they belong or where they should get information most specific for them.

    It is also a good idea in that it can generate a small boost of traffic for all projects, as a user can be interested in one thing, and see a bunch of other things that might interest them as well.

  4. Alright alright, let me come in with a reminder here.

    I do not plan to have 128x128x128 chunks, but rather 128x128x2(or3), seeing as the character will only ever walk on one cubes width, left and right, and only ever interact with two cubes width, the walkable area and that right behind it.

    I believe that cuts down quite a bit on the polycounts wether it is standalone enteties or large solid meshes generated with marching cubes.

    All in all, I am not looking to create a minecraft clone as much as I want to create a terraria clone.

     

    So, ive looked at this polyvox library, and the documentation is sorely lacking. I hope I can figure things out with some effort.

    noiselib was lovely documented, dont know if I will need it now if polyvox does noise by itself.

  5. Alright so I attempted to do the instancing of all the blocks, but I run into the same issue of a huge FPS drop when I try to have 128x128 blocks generated.

     

    What I do is to make 1 base body box with 1 cube mesh parented to it. I then move the base body out behind the camera.

    I then loop over a genrated heightmap and for every value over -0.08 i place a copy of the body box at the coordinates.

    If I generate a heightmap of 128x128 and place blocks like stated above my FPS drops to 1-2, with 64x64 i get 60 FPS, and so forth.

     

    Is this still doable?

     

    Ill provide the code here: (its not pretty)

    // ====================================================================
    // This file was generated by LEBuilder
    // http://leadwerks.com/werkspace
    // ====================================================================
    #include "engine.h"
    #include <iostream>
    #include <string>
    #include <noise/noise.h>
    #include <noise/noiseutils/noiseutils.h>
    using namespace noise;
    const int  ScreenWidth = 800;
    const int  ScreenHeight = 600;
    const char* MediaDir =  "C:/LE/LESDK";
    const char* AppTitle = "Shadows";
    void ErrOut( const std::string& message ) { std::cerr << message << std::endl; }
    // -------------------------------
    int main( int argn, char* argv[] )
    {
    // Initialize
    if( !Initialize() )
     return 1;
    SetAppTitle( AppTitle ) ;
    RegisterAbstractPath( MediaDir );
    
    // Set graphics mode	   
    if( !Graphics(ScreenWidth,ScreenHeight) )
    {
     ErrOut( "Failed to set graphics mode."  );
     return 1;
    }
    
    // Create framework object and set it to a global object so other scripts can access it
    TFramework fw = CreateFramework();
    if( fw == NULL )
    {
     ErrOut( "Failed to initialize engine." );
     return 1;
    }	   
    
    // Set Lua framework object	   
    SetGlobalObject( "fw", fw );
    
    // Set Lua framework variable	   
    BP lua = GetLuaState();
    lua_pushobject( lua, fw );
    lua_setglobal( lua, "fw" );
    lua_pop( lua, 1 );
    TMaterial material = LoadMaterial( "abstract::cobblestones.mat" );
    /*WORLD GENERATION HERE*/
    float worldSizeX = 64;
    float worldSizeY = 64;
    //Create some noise!
    module::Perlin noiseModule;
    utils::NoiseMap heightMap;
    utils::NoiseMapBuilderPlane heightMapBuilder;
    heightMapBuilder.SetSourceModule(noiseModule);
    heightMapBuilder.SetDestNoiseMap(heightMap);
    heightMapBuilder.SetDestSize(worldSizeX, worldSizeY);
    heightMapBuilder.SetBounds(0.0, 5.0, 0.0, 5.0);
    heightMapBuilder.Build();
    
    utils::RendererImage noiseRenderer;
    utils::Image noiseImage;
    noiseRenderer.SetSourceNoiseMap(heightMap);
    noiseRenderer.SetDestImage(noiseImage);
    noiseRenderer.Render();
    //Base Blocks
    TBody dirtBody = CreateBodyBox();
    TMesh dirt = CreateCube();
    EntityParent(dirt, dirtBody);
    PositionEntity(dirtBody, Vec3(0, 0, -50));
    EntityType(dirtBody, 1);
    PaintEntity(dirt, material);
    //propogate world with blocks!
    double countX;
    double countY;
    for (countY = -(worldSizeY/2); countY <= (worldSizeY/2); countY++) {
    
     for (countX = -(worldSizeX/2); countX <= (worldSizeX/2); countX++) {
    
      double value = heightMap.GetValue(countX+32, countY+32);
      //std::cout <<"Value is:" << value <<"at coordinates" << countX << "-" << countY <<"\n";
      if ( value >= -0.08 && countY <= 14 ) {
    
       //Create a Dirt Block for testing
       TMesh dirtBlock = CopyEntity(dirtBody);
       PositionEntity(dirtBlock, Vec3(countX, countY, 0));
       //std::cout << "Made a block here! \n";
      }
     }
    }
    // Get framework main camera	   
    TCamera camera = GetLayerCamera( GetFrameworkLayer(0) );
    PositionEntity( camera, Vec3(0,123,-10) );
    
    /*// Create ground
    TMesh ground = CreateCube();
    TBody groundBody = CreateBodyBox();
    ScaleEntity( groundBody, Vec3(100,1,10) );
    ScaleEntity(ground, EntityScale(groundBody) );
    EntityParent(ground, groundBody);
    PositionEntity( groundBody, Vec3(0,-2, 0) );
    EntityType(groundBody, 1);
    PaintEntity( ground, material );*/
    // Lets create our player controller and visible mesh
    int playerMass = 80;
    TController controls = CreateController(1.8, 0.4, 0.0, 45.01, 0.8);
    EntityType(controls, 2);
    SetBodyMass(controls, playerMass);
    PositionEntity( controls, Vec3(0, 120, 0) );
    EntityParent(camera, controls);
    float move = 0.0;
    float jump = 0.0;
    float crouch = 0.0;
    
    // Add some light
    TLight light = CreatePointLight();
    PositionEntity(light, Vec3(0, 121.5, 0));
    EntityParent(light, controls);
    /*//Lets make some obstacles here
    TMesh obs1Mesh = CreateCube();
    TBody obs1Body = CreateBodyBox();
    ScaleEntity(obs1Mesh, Vec3(1,1,1));
    ScaleEntity(obs1Body, EntityScale(obs1Mesh));
    EntityParent(obs1Mesh, obs1Body);
    EntityType(obs1Body, 1);
    PositionEntity(obs1Body, Vec3(5, -1, 0));
    TMesh obs2Mesh = CreateCube();
    TBody obs2Body = CreateBodyBox();
    ScaleEntity(obs2Mesh, Vec3(1,1,1));
    ScaleEntity(obs2Body, EntityScale(obs1Mesh));
    EntityParent(obs2Mesh, obs2Body);
    EntityType(obs2Body, 1);
    PositionEntity(obs2Body, Vec3(7, 0, 0));*/
    //CollisionTypes
    Collisions(1,2, true);
    //DEBUGS
    DebugPhysics(false);
    
    // Spin cube until user hits Escape
    while( !KeyHit() && !AppTerminate() )
    {  
     move=KeyDown(KEY_D)-KeyDown(KEY_A);
     if(KeyDown(KEY_RSHIFT)||KeyDown(KEY_LSHIFT)){
      move = move*3;
     }
     if(KeyDown(KEY_LCONTROL)){
      crouch = 1;
     }else{
      crouch = 0;
     }
     jump = jump = KeyDown(KEY_SPACE) * (!ControllerAirborne(controls)) * 5.5;
     UpdateController(controls, 0.0, 0, move*2, jump, 10, 1, crouch);
    
     UpdateFramework();
     RenderFramework();
     Flip( 0 );
    }
    
    return Terminate();
    }
    

  6. Im having an issue, I LOVE Leadwerks, and I LOVE this community as it is helpful and generally lighthearted. But after trying for a while to build a generated world of blocks I seem to have come to a crossroad. My attempts at generating a large number of blocks makes my game chug extremely. Infact generating 32x32 blocks makes the game slow enough.

    So, question is, and im asking, because I actually want to stick around with Leadwerks, and hope that this is a solvable issue.

     

    Can Leadwerks reasonably handle 4096x4096x2 blocks, complete with physics bodies?

    Each block being 6 sided, 12 polygons?

    If my calculations are correct, just the blocks would prove to be 402,653,184 polygons in total. Of course that isnt true as there would be air pockets around underground and above ground would be largely empty of blocks.

     

    Does anyone have any thoughts around this?

     

    here is a download link to a video of my prototype

    http://dl.dropbox.com/u/4815187/shadows_prototyping_003.avi

  7. I need to generate random worlds at reasonable speeds, and from what everything tells me, Perlin or Simplex noise algorithms are the best approaches.

    However, both are quite a bit over my poor litle web developer head.

    Anyways, the world I want to generate needs only X and Y coordinates. Do anyone have insights into implementing this in LUA?

  8. So I have a start.lua file that loads beautifully, everything seems to work, but once i started getting into moving something around inside of the game world, I notice the keyboard isnt working when running the app.

    I have no idea why this would be, however, I hope someone could point it out for me.

     

    Please keep in mind that this is the first I see of LUA and my first return to Leadwerks in a couple of years, so any other pointers would be greatly appreciated as well.

     

    Code(start.lua):

    --Function for creating our blocks
    local function createBlock(object)
    
    local block = CreateCube()
    block:SetScale( Vec3(1,1,1) )
    block:SetPosition( object.coords )
    block:Paint(object.material)
    
    return block
    end
    
    --Function to place our physics bodies on blocks
    local function createPhy(object)
    
    local body = CreateBodyBox(1,1,1)
    body:SetPosition( object.coords )
    body:SetMass(0)
    body:SetCollisionType(COLLISION_SCENE)
    
    return body
    end
    
    --Function for creating our world
    local function createWorld(materials)
    
    --our world size
    local worldSize = Vec2( 1024,2 )
    
    --our empty world object
    local worldObject = {}
    
    --Fill our world
    for y = 1, worldSize.y do
    
    	worldObject.y = {}
    
    	for x = 1, worldSize.x do
    
    		local xcoord = -1*(worldSize.x/2)+x
    		local ycoord = -1*worldSize.y+y
    
    		local block = {
    			coords = Vec3( xcoord, ycoord, 0 ),
    			material = materials.dirt
    		}
    
    		--Insert our block
    		block.entity = createBlock(block)
    		block.phy = createPhy(block)
    		worldObject.y.x = block
    
    	end
    
    end
    
    return worldObject
    end
    
    
    
    --[[
    Here our actual game starts
    ]]--
    
    --Register the abstract path
    RegisterAbstractPath("")
    
    --Set the graphics mode
    Graphics(800, 600, 32)
    
    --Create a framework object
    fw = CreateFramework()
    
    --set the camera
    local camera = fw.main.camera
    camera:SetPosition( Vec3(0,3,-10) )
    
    --Create Light
    local light = CreatePointLight(10)
    light:SetPosition( Vec3(2, 6, -3) )
    
    --Load our materials
    --DIRTY HACK need better execution for easier debugging
    local materials = {}
    materials.dirt = LoadMaterial("abstract::dirt.mat")
    
    --Generate our world
    createWorld(materials)
    
    --Create a character body
    controller = CreateController(2, 0.45, 0.5, 45)
    controller:SetMass(1)
    controller:SetCollisionType(COLLISION_CHARACTER)
    controller:SetPosition( Vec3(0,4,0) )
    --create a cylinder for our controller
    local playerMesh = CreateCube()
    playerMesh:SetScale( Vec3(1, 2, 1) )
    playerMesh:SetPosition( controller )
    playerMesh:Move( Vec3(0, 0.5, 0) )
    playerMesh:SetParent(controller)
    
    --define movement
    move = 0
    local jump = 0
    
    --attach camera to controller
    camera:SetParent(controller)
    
    DebugLights(1)
    DebugPhysics(1)
    
    --define collisions
    Collisions(COLLISION_CHARACTER, COLLISION_SCENE, 1)
    
    --Main loop
    while AppTerminate() == 0 do
    
    --Movement
    move = KeyDown(KEY_D)-KeyDown(KEY_A)
    print(move)
    --jump = KeyHit(KEY_SPACE)*10
    
    --Update Controllers
    controller:Update(0, move, move, jump, 40, 10)
    
    --Update world
    fw:Update()
    --Render world
    fw:Render()
    
    --Flip the buffers
    Flip(0)
    
    end
    

  9. true indeed that that the texture is a bit of an overkill, but it is also the texture for the rope.

    I modeled the pole in modo and painted it in 3dcoat. I dont know how to assing the texture properly in either one of them appart for how I did it.

    I used obj2gmf to convert from obj to gmf, and fbx2gmf for the fbx version. Same results, only fbx version became a thousand times larger when converted to gmf, heh.

  10. First, let me say that I remember this question to be asked earlier, but after hours of looking, i gave up on finding the topic.

     

    I have a model of a simple pole for a rope railing typically used with galleries, movie theaters and so on.

    This pole works fine with textures in any modeling application i load it in, so the UVs are correct, it also works fine in THREE.js

    However, when loading the model in the modelViewer, it appears completely grey and if I expand the material, it says <none>.

    I have created a pole.mat file which is a near copy of the oildrum.mat file, with no luck.

    I have now converted obj and fbx versions of this pole for hours without gaining any ground.

     

    here is the material file in plain text:

    texture0="abstract::pole.dds"

    texture1="abstract::poledot3.dds"

    shader="abstract::mesh_diffuse_bumpmap.vert","abstract::mesh_diffuse_bumpmap_specular.frag"

     

    and the model and textures packaged as attachement.

    I really hope someone can help me understand what im missing here..

  11. A very talanted designer at work made a christmas song and music video. It never cought on, but it is still good music and a funny video :P

    If you think the singer in this video lipsyncs, you are deffinately right. They had fun changing up on the instruments. So nobody in the video does what they actually do when they play.

     

    Merry Christmas!

     

  12. I ran this at 1920x1080, everything turned on - wireframe at 29FPS, turning things off didnt increase framerate much.

     

    Very beautiful, and excellent showcase. However if I turned around quickly everything was dark and then popped into light.

  13. I used to have this problem as well, this was first at 2.30 then at 2.31 the problem went away. However, then the shadows started doing the same thing. Now I havent used leadwerks in a while so I do not how it is now.

×
×
  • Create New...