Texturing work, critiques wanted please

Member
Posts: 27
Joined: 2007.10
Post: #1
Just wanted some opinions on my texturing work, these are for a road sign to be placed into the Unity engine.

Color:

[Image: St_Peters_sign_Color.png]

Specular:

[Image: St_Peters_sign_Specular.png]

Normal:

[Image: St_Peters_sign_Normal.png]

Incandescence:

[Image: St_Peters_sign_Incandescence.png]
Quote this message in a reply
Member
Posts: 283
Joined: 2006.05
Post: #2
Looks very nice to me. What's with all the colours in the specular map on the sign face?

And can we see it on the model?
Quote this message in a reply
Moderator
Posts: 681
Joined: 2002.11
Post: #3
I believe the colors are there to make it sparkly in colors besides white, like a real road sign.

My web site - Games, music, Python stuff
Quote this message in a reply
Member
Posts: 338
Joined: 2004.07
Post: #4
Looks like very polished work. Nice. Also seconding the request to see the model in action!

Justin Ficarrotta
http://www.justinfic.com
"It is better to be The Man than to work for The Man." - Alexander Seropian
Quote this message in a reply
Member
Posts: 27
Joined: 2007.10
Post: #5
diordna Wrote:I believe the colors are there to make it sparkly in colors besides white, like a real road sign.

This is correct. It is to fake the refraction of light due to the tiny particles of silica embedded in reflective paint.

JustinFic Wrote:Looks like very polished work. Nice. Also seconding the request to see the model in action!

I am working with the Unity guys to do this; the issue I am having is that, using the built in shaders, you can only have greyscale maps for the specular pass (by embedding it into the alpha channel of the color map, this is generally called a 'gloss map'); usually this is fine, but due to needing the color in the spec map for the lettering effect, this will not do, so we are working on making a shader that will allow a full color image for the specular pass. To be honest, I have found that using slightly desaturated color in the spec map overall looks better than using a greyscale map anyway (hence the color on the bolts as well as the wood in the spec map). Once this is done, I will upload a link so you can load this into your browser via the Unity web player and manipulate the model in real time on your machine. For now, here is a nice high quality real time view from Maya (slightly older versions of the textures, basically without the embedded ambient occlusion), which should be just like the final output in Unity when we get this shader issue fixed:

[Image: 1729962745_1c47522872_o.png]
Quote this message in a reply
Member
Posts: 27
Joined: 2007.10
Post: #6
Just a heads up, Aras (the developer of Unity) has written me back, and it would appear he is going to write a shader to allow for full color specular mapping! (I think I am about the 50th person to request this, maybe because I sent him an image using a colored spec map to show some fancy effects that can be achieved with it) At any rate, as soon as this is done, I will build my Unity project into a WebApp so you guys can check it out. As I make more content, I will be using this method to show off my work, for, if a picture is worth a thousand words, an interactive demo has to be worth millionsWacko

Quote:From Aras via the Unity Dev forums: There's no built-in shader that does this. It's possible to write a custom one. Would you need a bumpmapped version, or just specular one?
Quote this message in a reply
Moderator
Posts: 522
Joined: 2002.04
Post: #7
I don't think the textures are high resolution enough, or that there are enough of them. ;-)

Really, it's just a sign. Is it that important in the game? Does it warrant ~4 megabytes of texture memory? If those answers are "yes" then nice work Smile

To be critical, the deteriorated look of it is a bit extreme, and I can't imagine how a sign naturally would rust like that.

Cheers,
-Jon
Quote this message in a reply
Member
Posts: 27
Joined: 2007.10
Post: #8
aarku Wrote:I don't think the textures are high resolution enough, or that there are enough of them. ;-)

Really, it's just a sign. Is it that important in the game? Does it warrant 4 megabytes of texture memory? If those answers are "yes" then nice work Smile

Cheers,
-Jon

To answer your question, actually, this is the *first* thing you will see in the game after emerging from a snowstorm, and being that the game is called 'The St. Peters Project', it is actually very important that the sign look absolutely sharp. As for the texture memory use, these are uncompressed PNG files; Unity automatically applies DXT compression when you build a project, so that 4MB of texture RAM drops to around a half MB; also, the game will provide for automagically scaling the texture resolution for your graphics hardware; these textures are meant for the highest end hardware (256/512MB and higher cards), as well as print resolution promotional work.

Thanks for the comments, at Fullsail they did have a game content course, but the majority of this stuff I have had to learn on my own as their course was geared for older technology and methods.
Quote this message in a reply
Member
Posts: 27
Joined: 2007.10
Post: #9
aarku Wrote:To be critical, the deteriorated look of it is a bit extreme, and I can't imagine how a sign naturally would rust like that.

Cheers,
-Jon

Agreed, however, this is done intentionally. Once I have it placed in an environment (that is equally decayed), it will make more sense. As for a sign actually deteriorating like that, the rust is actually from a photo of a real life road sign that had decayed that way. (Not trying to justify my work per se, just pointing out that, left in a state of disrepair long enough, everything will decay in extremusRasp) I appreciate your criticism though, it is always needed to improvve my work, and any artist that denies that is not 'really' an artist.
Quote this message in a reply
Member
Posts: 27
Joined: 2007.10
Post: #10
Shader got finished today. You can go here if you want to check it out. Once I get my project code done (a simple viewer with a user draggable light source via the mouse and the ability to rotate the object via the arrow keys), I will upload a link to a Unity WebPlayer so you can see and manipulate the sign in your browser.

(You can go here to check out some live demos using the web player)

As an addendum to the previous discussion about texture VRAM use, as far as Unity's texture compression goes, to calculate compression, the equation is:

Code:
(([i]w*h[/i])*[i]b[/i])

Where w=width and h=height (both in pixel measurements), and b=bits per pixel. b is variable, depending on whether you use DXTC1 compression (no alpha channel, b=.5) or DXTC3 compression (8-bit alpha channel, b=1), so, by example, a 1024x1024 non alpha map (like the textures I linked to at the beginning of this thread) would be ((1024*1024)*.5)=524288 bits, or 0.0625 megabyte; so, for 4 textures at 1024*1024 with no alpha like the street sign, you would be looking at .25, or one-quarter of one megabyte of texture use; thus, even if you are generous and assume only using half of the memory of a 256MB card for texture VRAM you could still hold 2048 textures of this type and resolution in memory at once; in my experience you would never need anywhere near this many textures loaded in a given scene, thus making the idea of using four maps of this size on a single object quite realistic. Of course, if you need alpha channels, these numbers get cut in half, but 1024 textures is still a very high number and not likely to be reached in a given scene. This does not even take into account optimizations like utilizing smaller maps for less important objects, not to mention UV mapping multiple objects to a single texture map for further reduction of VRAM use.

TL;DR: modern texture compression along with high VRAM accelerators negates the need to use crappy textures on all but the most important objects in a scene and allows for the modern and beautiful high quality graphics we have all come to take for granted in the HD generation. Ninja
Quote this message in a reply
Member
Posts: 283
Joined: 2006.05
Post: #11
That's fascinating. I'm not too into 3D programming, but I'd never heard of anything like that.

I'd often wondered if you could use modern GPUs to uncompress textures on the fly. I'd kinda assumed that that was what id's 'megatexture' technology was about.

But do you really mean that you can store a full colour image with less than one bit per pixel? Because that sounds incredible. And it would be much smaller than the 8:1 ratio you described earlier.
Quote this message in a reply
Moderator
Posts: 522
Joined: 2002.04
Post: #12
maximile Wrote:That's fascinating. I'm not too into 3D programming, but I'd never heard of anything like that.

I'd often wondered if you could use modern GPUs to uncompress textures on the fly. I'd kinda assumed that that was what id's 'megatexture' technology was about.

But do you really mean that you can store a full colour image with less than one bit per pixel? Because that sounds incredible. And it would be much smaller than the 8:1 ratio you described earlier.

http://en.wikipedia.org/wiki/Texture_compression
http://www.opengl.org/registry/specs/EXT...n_s3tc.txt
Quote this message in a reply
Moderator
Posts: 522
Joined: 2002.04
Post: #13
You've got your calculations wrong, there. It's bytes per pixel, not bits per pixel.

So three 1024x1024 DXT1s is 1572864 bytes, one 1024x1024 Alpha (Incandescence map) is 1048576, giving you 2621440 bytes == 2.5 megabytes. Add 33% for mipmaps is about 3.3 megabytes.

Also know that there is significant graphics memory usage with all the buffers (framebuffer and what not), and a whole lot of graphics memory usage if you're using Unity's real-time shadows.

-Jon
Quote this message in a reply
Member
Posts: 27
Joined: 2007.10
Post: #14
maximile Wrote:That's fascinating. I'm not too into 3D programming, but I'd never heard of anything like that.

I'd often wondered if you could use modern GPUs to uncompress textures on the fly. I'd kinda assumed that that was what id's 'megatexture' technology was about.

But do you really mean that you can store a full colour image with less than one bit per pixel? Because that sounds incredible. And it would be much smaller than the 8:1 ratio you described earlier.

It would appear, as Jon has said, that I calculated this wrong, using bits as opposed to bytes. As for the megatexture stuff, I am not sure, but the idea that they are decompressing textures on the fly does sound like what they *might* be doing; keep in mind I am no graphics programmer (hence the need to have Aras write a shader for the colored specs in Unity). I would thing though, that with modern GPU's, that this would be possible.

aarku Wrote:Also know that there is significant graphics memory usage with all the buffers (framebuffer and what not), and a whole lot of graphics memory usage if you're using Unity's real-time shadows.

-Jon

Jon, thank you for your clarification of my math. It just goes to show you, don't do this sort of thing when you have been up for 20 hoursRasp
I have often wondered, what are the best ways to deal with texture VRAM limits? We are looking to target fragment program capable GPU's (so, 9500/GeForce FX class cards) with a minimum of 128MB, so is it unrealistic to use 512x512 maps for most textures (using 1024 maps for character bodies, 512's for heads)? I just don't know enough on the hardware/programming side of things to determine this.
Quote this message in a reply
Member
Posts: 27
Joined: 2007.10
Post: #15
Thanks to Jon's math, I was able to add a VRAM use calculator to our internal asset management database. Again, thanks Jon!

[Image: ConText.png]

Of course this assumes power of two textures.
Quote this message in a reply
Post Reply 

Possibly Related Threads...
Thread: Author Replies: Views: Last Post
  Critiques? whogben 3 2,849 Sep 14, 2003 01:30 PM
Last Post: whogben