Hi people
Here at the studio we are working on a really big monster for our game (a finger is more or less the size of a character). The problem we face is that we want the character to get really close to it and of course we want to put very good textures on it.
We have had a small brainstorm and we think that no less than ten 2048 textures are needed, but honestly, we do not know if that would kill the machine when playing ingame.
What are your approaches and thoughts about this?
Thanks!
Replies
I´m amazed on how in Resident Evil 4 they put those incredible and big monsters on screen and even with their low res textures they look damn good in a close view.
Edit: Xenobond, tiling is something i would like use as the last resource. The big guy has a lot of parts and stuff that needs tons of custom detail. I was thinking on using tiles and over it all some kind of decal work to add details, but i really would like to treat it as a character. I know the limits of the machine and our engine, but i still think that there must be a way to make it without having to get trought the programmers pipe :P
Later
I´m trying to approach the big guy with the art in mind over the technical things. I know that at the end what programmers say is what goes (do not take me wrong, i talk with programmers everyday), but i believe in art over technical things, and that is what i want to have.
Sorry, i do not have time to write more, i´ll try to put the ideas more clear later. I hope someone can understand this topic
Thanks!
You could always set up a 'detail' system that changed depending on what sort of texture you were looking at, loads in a detail texture for cloth, leather, metal and so on (gawd knows how you'd do that).
There's also the possible trick of having alpha-test hair- or fur-planes grow in height as the surfaces get near to the viewer. This way the hair geometry seems to fade in as you get close, and fades out nicely as it recedes. Battlefield 2 did this with its grass, works fairly well, and you only really notice it when you're specifically looking for it.
If the character is enormous and standing infront of you, use the highest LOD foot texture (since it's in your face) and low for the head since it's far away. If he reaches to pick you up, use the highest hand LOD etc.
Is that possible?
1) Use texture tiling ( aka texture wrapping UVs )
2) Use procedural textures ( noise, wood, skin shaders ) and composited layers.
3) Use texture compression ( DXT1 for color maps + 3Dc/A8L8 for normalmaps )
4) Detail mapping ( detail=signed grayscale texture tiled )
5) Fur fins to hide the base texture
6) Use JC's "megatexture approach" ( basically divide a 32kx32k texture into 1k chunks and repeat it... but only good for terrains ) but requires constant AGP/PCI bus speed transfers so bad performance.
And forget the ten 2048x2048 textures... that cannot be stored inside any midrange graphics card without wiping the FPS. Better make a 2048x2048 atlas for all the monster ( but quality will suffer ).... and remember... the PS2 has only 768Kb for textures ( in case you wanna port your game )
If the character is enormous and standing infront of you, use the highest LOD foot texture (since it's in your face) and low for the head since it's far away. If he reaches to pick you up, use the highest hand LOD etc.
[/ QUOTE ]
Mipmapping already does some of this, although the full mipmap chain will stay in graphics memory. If it didn't, there would be awful things happening to performance every time the card needed to load mipmap 0 of a 2048^2 map.
I'm gonna go with "as many 2048's as you can reliably fit in memory, plus detail texturing". Worked for painkiller.
Hmm, could you use a LOD system for different parts of the mesh?
If the character is enormous and standing infront of you, use the highest LOD foot texture (since it's in your face) and low for the head since it's far away. If he reaches to pick you up, use the highest hand LOD etc.
Is that possible?
[/ QUOTE ]
You can do it with levels because they are pretty much static and you can pre-cache the textures depending on which direction the player travels in.
But the monster moves around and player moves around thus you cant predict what you need to pre-cache.
BTW the Might and Magic fps has some huge monsters, there should be one in the demo too, so just dl it and figure out how they did it
Has anybody made a shader that blurs and refilters the texture (like the filter options on emulators "super eagle" etc. )? Maybe add a map that adjusts the level of refiltering?
You can just redesign the critter. In Shadow of the Colossus they put hair on everything and it looked great.
In case you don't know the game(Shadow of the Colossus), it's a game in which you kill monsters of great sizes.
Other than that, I think using detail textures is the way to go too. I don't know about your game but if it's a really big monster, probably the player won't be able to see all of its body on the screen all the time, so you may have one(or many) repeating detail textures.
If your hardware limits the use of so many textures and you can't/won't go down the tiling workflow it may mean the original design was way off track.
Revisit the original concept, carve it back to what you wanted this actor to represent in terms of gameplay visuals and emotion and see how you can adjust it too suit your constraints without destroying the feel of the character.
Ask yourself wether all the detail is needed, can you simplify aspects to re use parts of the texture helping to reduce your load on the hardware.
Secondly, determine which parts of the monster will be seen up close. Give those more texture space than the parts that will never be seen up close.
That way you can minimize your texture memory usage, and still keep good detail.
Also from an art standpoint, paint it well. A well done texture will beat a higher rez texture any time.
The thing about the hair seems to be a good trick. I know the giants from Shadow of the Colossus and yes, they look great The problem is that this monster is flesh, metal and stone. I would love to show you some concept art, but for sure someone would kill me :P
Using lods for different parts of the mesh is a very good idea. Since the monster is not accessible in the top part, that would be a good trick to save a hell of geometry and texture there. Something new to talk with buddies :P
Precaching depending on where the monster is gonna go and what is gonna do is a good idea. The problem is that if you want to re-use it later, you would end up facing the same problem but with less time to do it :P
I personally think that the lighting is going to play a very important role in this baby. In Resident Evil 4 that is something that catches my eye in some monsters. Despite they look great with their lighting, I would have go for a more dramatic
way in some of them.
I would like to thank you for your time writting your ideas and experiences with this topic. I´m very new to this kind of character and I would love to do a great job. I have always believed that technology is the weapon of the art, and art must prevail over all the technical things.
Later
I have always believed that technology is the weapon of the art, and art must prevail over all the technical things.
[/ QUOTE ] Wrong way to look at it, IMHO. If you stick to this idea, you're always going to be at odds with the other half of your team (the coders). If you work _with_ them instead, you'll find a lot more doors open in your direction. You'll end up with better art tech too. Make peace with the beast!
While I'm an artist and totally believe in artistic integrity and story being the motivating factor thas driving development you should never feel like the coders are there for the artists whims.
As I said previously, you may need to look at the original concept again with an honest crtical eye, design needs to work with code not feel superior, coders will shut you down if they feel you are belittling them, fair enough too.
If the art and code depts. discuss openly and honestly the pros and cons of what the original design was and you still find its not doable its the artists who need to look at wether they went way off scope.
A good artist needs to be able to understand the constraints they are working under.
When you don't know the boundries you are working in its a dangerous and unstable, unstatifying place to be. You always end up having to dumb down your creation, rework it, or just plain axe it for something simpler.