Why do game companies use custom texture formats instead of the DDS format?

Started by
84 comments, last by Zipster 15 years, 7 months ago
Quote:Original post by Zipster
I don't know if I'd trust a full-blown artist to write shaders though. Shaders can truly be time-critical code if you're GPU-bound, and in my experience artists will use every single feature they possibly can to achieve a better visual effect unless you pull back on the reins a bit.

There was a presentation from Epic a while back which included how they let artists create custom shaders via a gui tool to wire together prefabbed shader fragments. This gives them a heap of flexibility without having to pester a programmer for every little change. Nearer to the end of development when the look and effects are nailed down they go back and have programmers hand-optimise any generated shaders that are too slow. This seems like a nice trade-off between artist control and performance to me (although there's obviously a big chunk of work in creating the tool for the artists in the first place).
Advertisement
Quote:Original post by Yann L
Quote:Original post by Numsgil
Do your artists create their art in huge canvases of 8192x8192, feed it in to your pipeline, and have your pipeline set a more sane resolution?

Yes, pretty much. Not 8k, but usually around 4k, and never below 2k. Our artists are not allowed to make any decision for the final texture resolution used in the 3D scene. The technical team does that.

Seriously, I don't trust an artist to do any kind of technical decision anymore. Their job is to do *artwork*. Involving them into technical issues is like letting your programmers mess around the 3D designs in Maya. I've seen senior artists using a 1024*1024 texture that had the same constant green colour in every pixel. Another one downsampled our customers coporate logo, which was given to us in 16384 resolution (!) to a 128*32 texture. He thought that the huge corporate name display above the building entrance was 'not too important'...

And it gets worse if you let them mess around with shaders. Never let your artists mess with actual shader code. Artists do not understand if you tell them 'look, we have these great new curved local reflections ! But they're quite heavy on the pipeline, so please use them sparingly and only where they're really well visible !'. Yeah, right... After two minutes, every single object in your 3D scene uses blurred curved reflections, because the artists thought they'd look better than glossy speculars...

Artists are a bit like women - they behave in strange and seemingly irrational ways, but we just can't live without them [grin]


Hey I'll have you know I'm a programmer and I know a lot about Maya. Your probably working with those kinda artist who are really stupid but are good at what they do. If your company would hire all around acknowledgeable people this would not be a issue but I guess they don't...
This is your life, and it's ending one minute at a time. - Fight club
Quote:Original post by Numsgil
It's not a decision they'll have to remake every time the texture is changed. If it was DXT5 before it should probably still be DXT5. And the artists are going to save their PSDs separate from their textures for the pipeline anyway. Unless your pipeline can accept PSD files (and if it can, serious kudos to you. I looked in to it briefly but there didn't seem an easy way to do it.)
It isn't that bad.

You don't need to interpret the entire PSD file, just the parts you need. Extracting images based on layer names isn't *THAT* hard. Time consuming to write for the first time, yes, but once you've got the basic psd reading done, it's a very simple process.
Quote:Original post by Yann L
Quote:Original post by Numsgil
Do your artists create their art in huge canvases of 8192x8192, feed it in to your pipeline, and have your pipeline set a more sane resolution?

Yes, pretty much. Not 8k, but usually around 4k, and never below 2k. Our artists are not allowed to make any decision for the final texture resolution used in the 3D scene. The technical team does that.


Heh, that's... not the way things are where I work :) Not that all our artists are all that technically minded, of course, but generally they're the ones deciding on compression and resolution.

Yeah, I guess if you're insulating your artists entirely from all technical considerations, DXT compression would be included in that.

Quote:
And it gets worse if you let them mess around with shaders. Never let your artists mess with actual shader code. Artists do not understand if you tell them 'look, we have these great new curved local reflections ! But they're quite heavy on the pipeline, so please use them sparingly and only where they're really well visible !'. Yeah, right... After two minutes, every single object in your 3D scene uses blurred curved reflections, because the artists thought they'd look better than glossy speculars...


Yes, I'm familiar with this phenomenon. The trick we use here is to pull up perfhud, check which draw commands are taking too long, and ream the artist(s) responsible. It's usually the same one or two artists, and they (slowly) learn their lessons and don't do that again.

But we're a small company. In a larger project, I'm sure it quickly gets out of hand. If only the demand for artists wasn't higher than the supply, and we could afford to be picky and only pick artists with some basic technical understanding. I mean, these are real time programs. They have technical limitations. It's different from working for Pixar or doing graphic design.

Ultimately the best pipeline is where artists don't make the mistakes in the first place. Whether because they can't (but then you have to burn programmer time (which is more expensive than artist time) setting texture resolutions and shaders. And then the artists come whining to you when their model doesn't look the same in the game as it does in Max.), or because they're just smart enough not to (hard to find artists like this).

Quote:Original post by frob
You don't need to interpret the entire PSD file, just the parts you need. Extracting images based on layer names isn't *THAT* hard. Time consuming to write for the first time, yes, but once you've got the basic psd reading done, it's a very simple process.


The problem is that most PSD readers I've seen never quite read the PSD the same way that photoshop does. Opening a PSD in Gimp, for instance, is always a pain. There's always some layer or effect that gets gimped (pun intended).

Is there a way to automate Photoshop on the command line? I could see doing something like: photoshop -convert someFile.PSD someFile.PNG
[size=2]Darwinbots - [size=2]Artificial life simulation
Quote:Original post by EmptyVoid
Hey I'll have you know I'm a programmer and I know a lot about Maya. Your probably working with those kinda artist who are really stupid but are good at what they do. If your company would hire all around acknowledgeable people this would not be a issue but I guess they don't...

There aren't an infinite supply of people to hire, you know. ;)

Quote:Original post by OrangyTang
There was a presentation from Epic a while back which included how they let artists create custom shaders via a gui tool to wire together prefabbed shader fragments. This gives them a heap of flexibility without having to pester a programmer for every little change. Nearer to the end of development when the look and effects are nailed down they go back and have programmers hand-optimise any generated shaders that are too slow. This seems like a nice trade-off between artist control and performance to me (although there's obviously a big chunk of work in creating the tool for the artists in the first place).

I said I'd never let them write shaders (ala HLSL/Cg code), but I'd certainly let them design shaders using a tool similar to UE3's material editor [smile] At least that way we'd have control over the final code an be able to write optimization algorithms and hand-tweak them afterward. We almost went down that route, but like you said there's an initial cost in creating the tool that we didn't deem worth the effort. We already had all our effects from our last game and the artists were completely happy with them. Any tweaks they needed could be done in under an hour by one of the graphics programmers.

This topic is closed to new replies.

Advertisement