You are an experienced programmer and have a problem with the engine, shaders, or advanced effects? Here you'll get answers. No questions about C++ programming or topics which are answered in the tutorials!
by the way, i just saw your screenshots over at frecle dot com, it looks pretty good.
though i probably would not be able to help you in rendering lightmaps. i don't want to spend buying gile[s], i'm ok with blender at the moment, it can output baked texture, ambient occlusion and normals. enough for me to experiment with shaders.
what i could do is simply make mesh models with no textures. then you can put the textures and bake them in gile[s].
i'll just post these mesh files on my sourceforge account for free.
here's another screen shot taken from a realtime render. i had to pick-up my jaw after seeing this running in realtime.
You could perhaps bake the global illumination. Shadows should be baked too. Since I'm using about 50-60 lights in there for all the level. Perhaps you could take the exterior part with the park (1 light), put your pavillon somewhere in the park, bake the Global Illumination So it look the same. If the global illumination could be baked as a separate map, then it could be used as a lightmap.
Another thing that you could do. Take IRRedit and use the global illumination from there. It should generate you the Lightmaps needed. An IRRedit is free.
/*
Since version 1.1, Irrlicht is able to save and load
the full scene graph into an .irr file, an xml based
format. There is an editor available to edit
those files, named irrEdit on http://www.ambiera.com/irredit,
which can also be used as world and particle editor.
This tutorial shows how to use .irr files.
Lets start: Create an Irrlicht device and setup the window.
*/
#include <irrlicht.h>
#include <iostream>
using namespace irr;
#pragma comment(lib, "Irrlicht.lib")
int main()
{
// ask user for driver
video::E_DRIVER_TYPE driverType;
printf("Please select the driver you want for this example:\n"\
" (a) Direct3D 9.0c\n (b) Direct3D 8.1\n (c) OpenGL 1.5\n"\
" (d) Software Renderer\n (e) Burning's Software Renderer\n"\
" (f) NullDevice\n (otherKey) exit\n\n");
char i;
std::cin >> i;
switch(i)
{
case 'a': driverType = video::EDT_DIRECT3D9;break;
case 'b': driverType = video::EDT_DIRECT3D8;break;
case 'c': driverType = video::EDT_OPENGL; break;
case 'd': driverType = video::EDT_SOFTWARE; break;
case 'e': driverType = video::EDT_BURNINGSVIDEO;break;
case 'f': driverType = video::EDT_NULL; break;
default: return 1;
}
// create device and exit if creation failed
IrrlichtDevice* device =
createDevice(driverType, core::dimension2d<s32>(640, 480));
if (device == 0)
return 1; // could not create selected driver.
device->setWindowCaption(L"Load .irr file example");
video::IVideoDriver* driver = device->getVideoDriver();
scene::ISceneManager* smgr = device->getSceneManager();
/* Now load our .irr file.
.irr files can store the whole scene graph including animators, materials
and particle systems. And there is also the possibility to store arbitrary
user data for every scene node in that file. To keep this
example simple, we are simply loading the scene here. See the documentation
at ISceneManager::loadScene and ISceneManager::saveScene for more information.
So to load and display a complicated huge scene, we only need a single call
to loadScene().
*/
// load the scene
// Demo Montreal Level
device->getFileSystem()->addZipFileArchive("../../media/Station.pk3");
// Load the scene file from the archive
smgr->loadScene("level.irr");
/*
That was it already. Now add a camera and draw the scene
*/
// add a user controlled camera
smgr->addCameraSceneNodeFPS();
// and draw everything.
int lastFPS = -1;
while(device->run())
if (device->isWindowActive())
{
driver->beginScene(true, true, video::SColor(0,200,200,200));
smgr->drawAll();
driver->endScene();
int fps = driver->getFPS();
if (lastFPS != fps)
{
core::stringw str = L"Load Irrlicht File example - Irrlicht Engine [";
str += driver->getName();
str += "] FPS:";
str += fps;
device->setWindowCaption(str.c_str());
lastFPS = fps;
}
}
device->drop();
return 0;
}
If the global illumination could be baked as a separate map, then it could be used as a lightmap.
in blender? yep can be done. Only at higher res, so to resize to smaller later: AO bakes dont take yet with antialiasing, I think.
If the coder is able to mount the lightmap thingie once in the engine, is only then a matter of artist exporting mesh with its UVs and its base textures, and then mesh with its lightmaps UVs having asigned to it the baked lightmap texture as a standard texture, after was generated.(with not the real textures messing around in that scene)
by the way, this map is only part of the design doc, the actual playable map will be assembled using irredit, i want to test how far irredit can go, though.
plotti Yes. I had the same problem (didnt evaluated OGL in 1.4)
In 1.3.1 it's less apparent.
The ground surface is there, but the lighting is taken differently from DirectX (Darker) and OpenGl(Lighter). Just remove in IRRedit the LIGHTING flag on the surface attribute for theses surfaces. (It's actually activated and looked good in 1.3.1). After you done this, it should look the same in DX and OGL. The lighting seem to be treated a lot different in 1.4 than 1.3.1. There was some changes in there.
I'm really not sure we could consider this a bug.
dlangdev For the seams; search for seamless textures. That's the way I fixed the problem!
dlangdev wrote:ok, i think i'm getting a feel how seams are likely to be made to prevent nasty looking textures.
the uv unfold shoould be cut the right way, though.
it looks easy but somehow the uv map should be crafted correctly.
thanks for the comment.
Wow dlangdev, that level looks amazing.
UV mapping isn't all that hard once your figure the greatest feature of Blender's uv-mapping ever...pinning!
@christianclavet: By the way, how many polys is your demo level? Because I made need to implement a simple culling system for Summertime since its levels are filled with hallways, and things.
Personally I recommend normal maps. I don't know how people generated them before the times of high resolution maps, but for some reason my normal maps never seem to look as good as Gears of War.