Jump to content

Jardar

Members
  • Posts

    76
  • Joined

  • Last visited

Everything posted by Jardar

  1. Why not give Sculptris a go, it is free! Also very small download. I love sculptris myself, easy to use, and together with 3D Coat it is pure awesome. Excelent tutorial.
  2. I skipped the 3.0 version of LE, and I am not proud of that fact. But I have moved most of my work and play over to Linux and almost gave up on LE, until Josh started the kickstarter and got me intrigued again. I paid for the 2.3 update, and I will pay for 3.2 update as well, long as Linux support stays in and the features are worth the pricepoint. The high end/powered renderer is deffinately worth a 99$ upgrade in of itself, so I just don't know why people are even discussing this. Josh need to make a living, he is creating some awesome software for us and deserves getting paid for it. With an engine as cheap as LE is (200$ and no royalties) his payments has to come in through paid upgrades. Thats just my two cents.
  3. This looks really really good. Hope to see more in the future
  4. Broken record or not, you earned this!
  5. This is too awesome! I am so happy to see this
  6. 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.
  7. https://developer.mozilla.org/en-US/demosdetail/snappytree/launch This is a great litle tree generator that runs directly in your browser with no addon / plugins required Just thought id share
  8. Jardar

    Snow Day

    really now, turn down the motion blur please!
  9. 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.
  10. 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.
  11. Yeah I will look more into polyvox, as soon as my headaches subsides
  12. 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.
  13. That looks like an interesting library, thanks a lot Scott. Will experiment with this for a while later, now im on some 3d modeling work, need a break from the headaches
  14. This is getting more and more difficult, suren I have stuff to look into now. Thanks.
  15. 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(); }
  16. Well I did not expect this many answers in under a day, lovely to see a discussion come out of it as well Ok, so perhaps this is doable and im just doing things too stright forward and that is the problem. I have to look more into instancing Any good pointers to material on instancing with leadwerks?
  17. 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
  18. 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?
  19. That deffinately helped Rick, thanks
  20. 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
  21. After a lengthy and very helpful chat with Macklebee, the issue is solved. The problem was simply put that the .mtl file that was saved along with my .obj didnt have any material assigned with it. when exporting from 3dcoat for instance, it is a good idea to export the color texture along with the model, then it writes the path to the texture.
  22. 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.
  23. 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..
  24. Jardar

    No SOPA

    As a professional web developer, SOPA and PIPA feels like the biggest threats to my future income. If people cant legally obtain and run webservices, then I cant make money creating those webservices. This is a big issue, not just for me, but also for providers of alternate software, even operating systems, that today rely on the internet to not only deploy software, but even develop it! Imagine a world where software cant be freely distributed. For if the media can shut down entire sites, why wouldnt large software companies be able to as well? And would it even stop there? Im scared.... But is my fears unwarrented?
×
×
  • Create New...