Page 1 of 1

Help with creating a graphically nice world

Posted: Fri Oct 24, 2008 1:00 pm
by Sollos
I'm programming an RTS/FPS combination game as my independent study for my school. It's coming along fine on that respect, but my game graphically looks like crap, specifically my terrain.

Here's a simple image of what my map looks like with a valley, http://img232.imageshack.us/my.php?image=temp1xm9.jpg.

My game will consist of large outdoor environments, and so my original thought and execution has been to use height maps. Unfortunately, I'm currently just using free one's I've found online since I myself am extremely artistically, creatively, graphically retarded. I was wondering, if there was any assistance I could get. Maybe a recommendation for a program, a recommendation for another file format, recommendation for code that may graphically help such as lighting, or someone that would be willing to help me out (I'm willing to compensate, PM me).

This is the extent of the amount of code I have that deals with graphics.

Code: Select all

        irr::video::E_DRIVER_TYPE driverType = irr::video::EDT_OPENGL;

        irr::IrrlichtDevice* device = irr::createDevice(driverType, irr::core::dimension2d<irr::s32>(windowWidth, windowHeight));

        irr::video::IVideoDriver* driver = device->getVideoDriver();
        irr::scene::ISceneManager* smgr = device->getSceneManager();
        irr::gui::IGUIEnvironment* env = device->getGUIEnvironment();

        driver->setTextureCreationFlag(irr::video::ETCF_ALWAYS_32_BIT, true);

        irr::scene::ICameraSceneNode* camera = smgr->addCameraSceneNodeFPS(0, 100.0f, 1200.f);
        camera->setPosition(irr::core::vector3df(7200, 4210, 9000));
        camera->setTarget(irr::core::vector3df(2397*2,343*2,2700*2));
        camera->setFarValue(120000.0f);

        device->getCursorControl()->setVisible(false);

        irr::scene::ITerrainSceneNode* terrain = smgr->addTerrainSceneNode(
                "heightmap.bmp",
                0,
                -1,
                irr::core::vector3df(0.f, 0.f, 0.f),
                irr::core::vector3df(0.f, 0.f, 0.f),
                /*irr::core::vector3df(200.f, 15.f, 200.f)*/irr::core::vector3df(80.f, 60.f, 80.f),
                irr::video::SColor(255, 255, 255, 255),
                500,
                irr::scene::ETPS_17,
                15
                );

        terrain->setMaterialFlag(irr::video::EMF_LIGHTING, false);

        terrain->setMaterialTexture(0, driver->getTexture("terrain-texture.jpg"));
        terrain->setMaterialTexture(1, driver->getTexture("detailmap3.jpg"));

        terrain->setMaterialType(irr::video::EMT_DETAIL_MAP);

        terrain->scaleTexture(1.0f, 20.0f);

Posted: Fri Oct 24, 2008 1:32 pm
by JP
The texture is completely wrong for that heightmap to start with as it has shadows embedded into the colour map and the shadows don't match your terrain.

For creating the heightmaps themselves you can use a program like Photoshop, Gimp or Milkshape3D (i'm sure there are many more). For the texture you just need to find a nice texture which represents the type of terrain you want, like grass or rock or something. You should be able to google up some decent textures fairly easily.

In one of my games i used Terragen to get the textures for my terrain, simply by rendering straight down onto a flat terrain in Terragen and using the resulting image as the texture. Also tiling the texture across the heightmap is a good idea if they heightmap is large, otherwise the texture will be poor quality. You then need to have a texture that tiles nicely, this can be done fairly easily in something like Photoshop, and presumably Gimp.

l3dt

Posted: Fri Oct 24, 2008 2:14 pm
by 3DModelerMan
L3DT allows you to generate heightmaps with different parameters, it's why I use it, I like how I can get my heightmap generated basicly and then terraform it. Also L3DT is free to use in commercial products, it just won't export tiled maps.

Posted: Mon Oct 27, 2008 4:17 pm
by Mel
Also, if you want a good and artistically nice looking world, you should take also references of what you want to get, and work the art assets as good as you program with the library. Irrlicht is a rendering engine, it only "draws" stuff, you must provide the best stuff to Irrlicht so it render a "graphically Nice" world XD

Posted: Wed Nov 12, 2008 8:21 pm
by Sollos
Thanks for your help!

Image

I've gotten a nicer looking terrain, [I couldn't take a nice screenshot of the whole terrain because these schools computers do not render out that far using the OpenGL driver] but you can't see it from here. But I like it, and I took a nice shot of the ground, featuring bitplane's grass.