Help with creating a graphically nice world

Post your questions, suggestions and experiences regarding to Image manipulation, 3d modeling and level editing for the Irrlicht engine here.
Post Reply
Sollos
Posts: 9
Joined: Fri Oct 24, 2008 12:52 pm
Contact:

Help with creating a graphically nice world

Post 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);
JP
Posts: 4526
Joined: Tue Sep 13, 2005 2:56 pm
Location: UK
Contact:

Post 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.
Image Image Image
3DModelerMan
Posts: 1691
Joined: Sun May 18, 2008 9:42 pm

l3dt

Post 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.
That would be illogical captain...

My first full game:
http://www.kongregate.com/games/3DModel ... tor#tipjar
Mel
Competition winner
Posts: 2292
Joined: Wed May 07, 2008 11:40 am
Location: Granada, Spain

Post 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
"There is nothing truly useless, it always serves as a bad example". Arthur A. Schmitt
Sollos
Posts: 9
Joined: Fri Oct 24, 2008 12:52 pm
Contact:

Post 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.
Post Reply