Multipkle UV's
by Adrian Tysoe · in Torque Game Engine Advanced · 03/04/2005 (11:30 am) · 17 replies
Since TSE is an evolution of TGE with a revamped render engine, will it be supporting multiple UV's and blend modes, giving 3d artists more multitexturing flexibility when modeling and texturing from outside the editor using tools like 3dsmax, maya, lightwave etc?
2 -3 UV channels is pretty standard in many modern AAA game engines, particularly since the arrival of Xbox and the Geforce 3 with pixel and vertex shaders, and this is a feature that I would very much like to see avaliable to artists using Torque in the future.
PS. Damn lol can't edit the topic
2 -3 UV channels is pretty standard in many modern AAA game engines, particularly since the arrival of Xbox and the Geforce 3 with pixel and vertex shaders, and this is a feature that I would very much like to see avaliable to artists using Torque in the future.
PS. Damn lol can't edit the topic
#2
03/07/2005 (5:53 pm)
Yeah, just thought I'd mention it here since this was the proper place to post, and no one else had mentioned multiple UV's.
#3
03/09/2005 (10:54 am)
I feel like I've witnessed an entire, though very short, dialogue...and yet I have no more insight than I did before I read this thread.
#4
[edit] ... because there are a few more people interested in the answer to the question Adrian dared to ask.
03/09/2005 (11:36 am)
Brian, would you mind post the essence of your mail here?[edit] ... because there are a few more people interested in the answer to the question Adrian dared to ask.
#5
I'm still a little confused about why you are wanting this Adrian. The typical reason is for lightmapping. For that, we're on it, we want it. I can't talk about implementations or timeframes, but we're going to get there.
I assume you might want more UV's for other multi-texture effects on interiors? I could see where that might be useful in some cases. For characters or other objects that you would typically use MAX/Maya for, I would not say that is a typical feature that is widely supported or used.
There are a few reasons for this. First, an extra set of UV's takes up space and a little shader processing time. Second, for multitexturing, you can usually just use the original UV's for each pass. No need for different mappings. Third, just having a more detailed base texture is almost always going to be faster than dinking around with extra UV channels and multi-texturing. Some games like MMOG's go as far as to composite clothing layers into one texture on the CPU before rendering it.
03/09/2005 (12:09 pm)
I was just a little disappointed in Adrian because I took the time out to answer his question in email and he's asked several times since. I'm over it now though ;)I'm still a little confused about why you are wanting this Adrian. The typical reason is for lightmapping. For that, we're on it, we want it. I can't talk about implementations or timeframes, but we're going to get there.
I assume you might want more UV's for other multi-texture effects on interiors? I could see where that might be useful in some cases. For characters or other objects that you would typically use MAX/Maya for, I would not say that is a typical feature that is widely supported or used.
There are a few reasons for this. First, an extra set of UV's takes up space and a little shader processing time. Second, for multitexturing, you can usually just use the original UV's for each pass. No need for different mappings. Third, just having a more detailed base texture is almost always going to be faster than dinking around with extra UV channels and multi-texturing. Some games like MMOG's go as far as to composite clothing layers into one texture on the CPU before rendering it.
#6
As for your disappointment, I found out that these forums have an implicit (yet unknown to me) codex of people getting to be personae non grata. So I am very glad you got over it and this thread still exits.
[edit] a little bit off topic: Brian, I also have to say that the water implementation of you .plan file is absolutely stunning. Is there some flic available by any chance somewhere?
03/09/2005 (12:34 pm)
Thanks, Brian. And you are right: I for one am interested in multiple UVs because of lightmapping. Maybe I'll ask John Kabus whether he might be including this in the Lighting Pack because I guess he's the #1 to know how to do it.As for your disappointment, I found out that these forums have an implicit (yet unknown to me) codex of people getting to be personae non grata. So I am very glad you got over it and this thread still exits.
[edit] a little bit off topic: Brian, I also have to say that the water implementation of you .plan file is absolutely stunning. Is there some flic available by any chance somewhere?
#7
But a most simple example would be building an interior in your 3D app of choice in the TDS format,
generic brick texture tiles in both directions with UV1
Grime/dirt/slimy/wet texture etc, tiled horizontaly, either multiitextured or masked with UV2
UV3 for user created Lightmap produced any which way they like. (you can also add some other details in your lightmap by hand this way too)
UV2 can have a greyscale mask for a specular or reflection map , which might be watter running down the walls, or wear in corroded steelfloors where feet have trodden frequently.
you can use these kinds of texturing techniques for any number of complex surface types, but you need more than one UV to get the most from it.
It gets even better if you can use it for outdoor environemnts like I have done in the past on Xbox.
Anyway, thats a brief example of where 3 UV's can be really handy and will look better than standard brushes.
like if you had a ruin tiled floors, in a desert, you could use UV1 for the tiled sand thats your top surface texture
UV2 could be a mask that masks between the sand and whatever lies beneath, this would be a simple planar map if its for a floorplan, the mask woudl be a greyscale map that is used put sand in areas that sand naturaly collects or where wear from people passing through the level would leave a worn trail that shows what lies underneath. The thing is with unique UV's you also have a lot of freedom.
Like a race track thats on a terrain, in the desert again, create the track geometry by extruding a cross section along a spline in yourt favourite 3D app. map it so the texture follows the splines UV's, attach your terrain seamlesly to the edges of the track. apply your base textures to UV 1 on the track geometry and the terrain geometry, on the terrain this would be what lies underneath the sand
so your terrain may have patches of stone, paving, rock,
take your entire terrain apply your tiled sand texture on UV2 over the whole thing,
add your mask with UV3 and paint in where you want the sand to be worn out. like on corners of the track where the racing line is, and also where vehicles have left the track and hit the soft shoulder, throw some sand on the track.
there's tons of things you can do with this fairly cheaply, particularly if your new TSE engine is primarily for shader 2+ video cards as your demo suggests.
I actually managed to do this in DX7 using 2UV channels and multipass rendering in a simple scene.
UV1 dirt tile texture, grass tile texture
UV2 lightmap and mask
Multipass rendering so surface1 has grass tile with alpha and 2X multiply to richen the lighting
surface 2 has the shiny mud texture and they are both drawn simultaniously (hence the multipass rendering) which gives you the mask and the shiny mud masked in were I want it.
Of course this can be dne a lot better now with shaders if something like TSE alowed more freedom with art pipeline so artists can use their own art tools.
s93153354.onlinehome.us/rot.wmv 503k WMV
not a great example, but it does show what I mean, you just have to use your imagination :). I'm sure a lot of artists would love to have this kind of flexibility. And some of it could be gotten with some fairly minor modifications to the DTS format.
03/09/2005 (12:52 pm)
Lightmapping is one thing, being able to create your own outside of the ingame editor is a big plus.But a most simple example would be building an interior in your 3D app of choice in the TDS format,
generic brick texture tiles in both directions with UV1
Grime/dirt/slimy/wet texture etc, tiled horizontaly, either multiitextured or masked with UV2
UV3 for user created Lightmap produced any which way they like. (you can also add some other details in your lightmap by hand this way too)
UV2 can have a greyscale mask for a specular or reflection map , which might be watter running down the walls, or wear in corroded steelfloors where feet have trodden frequently.
you can use these kinds of texturing techniques for any number of complex surface types, but you need more than one UV to get the most from it.
It gets even better if you can use it for outdoor environemnts like I have done in the past on Xbox.
Anyway, thats a brief example of where 3 UV's can be really handy and will look better than standard brushes.
like if you had a ruin tiled floors, in a desert, you could use UV1 for the tiled sand thats your top surface texture
UV2 could be a mask that masks between the sand and whatever lies beneath, this would be a simple planar map if its for a floorplan, the mask woudl be a greyscale map that is used put sand in areas that sand naturaly collects or where wear from people passing through the level would leave a worn trail that shows what lies underneath. The thing is with unique UV's you also have a lot of freedom.
Like a race track thats on a terrain, in the desert again, create the track geometry by extruding a cross section along a spline in yourt favourite 3D app. map it so the texture follows the splines UV's, attach your terrain seamlesly to the edges of the track. apply your base textures to UV 1 on the track geometry and the terrain geometry, on the terrain this would be what lies underneath the sand
so your terrain may have patches of stone, paving, rock,
take your entire terrain apply your tiled sand texture on UV2 over the whole thing,
add your mask with UV3 and paint in where you want the sand to be worn out. like on corners of the track where the racing line is, and also where vehicles have left the track and hit the soft shoulder, throw some sand on the track.
there's tons of things you can do with this fairly cheaply, particularly if your new TSE engine is primarily for shader 2+ video cards as your demo suggests.
I actually managed to do this in DX7 using 2UV channels and multipass rendering in a simple scene.
UV1 dirt tile texture, grass tile texture
UV2 lightmap and mask
Multipass rendering so surface1 has grass tile with alpha and 2X multiply to richen the lighting
surface 2 has the shiny mud texture and they are both drawn simultaniously (hence the multipass rendering) which gives you the mask and the shiny mud masked in were I want it.
Of course this can be dne a lot better now with shaders if something like TSE alowed more freedom with art pipeline so artists can use their own art tools.
s93153354.onlinehome.us/rot.wmv 503k WMV
not a great example, but it does show what I mean, you just have to use your imagination :). I'm sure a lot of artists would love to have this kind of flexibility. And some of it could be gotten with some fairly minor modifications to the DTS format.
#8
He works for a commercial developer that used TSE as the foundation for their own engine.Since then they threw out DTS and DIF completely, but he thinks he still has his modifications in his archives. If one of you guys is interested he says he would be willing to give it away.
Not much use to me as my programming skills are too basic. But on eof you might be able to do something with it.
BTE the point of this post originaly was just to make sure the request was out there in a relevent place, not to criticize. If I post on this forum where its most relevant it won't get lost in thousands of other threads that disappear within a couple of weeks. At least here there are fewer topics and peoples needs, wants and concerns can more easily be brought forward. And in a place where the actual developers making the engine may actually see it.
Something that I don't feel happens in the general forums. It's hard for an artist to have a voice and not get stomped on by a buch of coders, often without much understanding of things from an artist perspective.
In many ways the current torque art path is easier for non artists and coders to get by, and in this way its pretty conveninet. But in the course of being easy to use and modify it does limit creative freedom a fair bit and forces an experienced artist to work within a fairly limited framework of tools and techniques.
When people say, if you don't like something change it, you can get the full source for $100. that doesn't realy help artists very much and from being involved in communities with many artists coders some with programming knowledge. Often the one thing that puts them off to TGE and TSE is the art path.
Anyway, I've said what I wanted to say, I'll be quite now and see what happens. I still think I did the right thing posting my original topic. Shame I spelt multiple wrong lol.
03/09/2005 (1:18 pm)
BTW One of my ex coworkers added multiple UV's to DTS in less than a day, and created a max script that would export the DTS with multiple UV's. If your interested his name is Tim Rynes (not sure how you spell it) on GG. He did offer to give it to someone that was interested in picking it up and implementing it properly.He works for a commercial developer that used TSE as the foundation for their own engine.Since then they threw out DTS and DIF completely, but he thinks he still has his modifications in his archives. If one of you guys is interested he says he would be willing to give it away.
Not much use to me as my programming skills are too basic. But on eof you might be able to do something with it.
BTE the point of this post originaly was just to make sure the request was out there in a relevent place, not to criticize. If I post on this forum where its most relevant it won't get lost in thousands of other threads that disappear within a couple of weeks. At least here there are fewer topics and peoples needs, wants and concerns can more easily be brought forward. And in a place where the actual developers making the engine may actually see it.
Something that I don't feel happens in the general forums. It's hard for an artist to have a voice and not get stomped on by a buch of coders, often without much understanding of things from an artist perspective.
In many ways the current torque art path is easier for non artists and coders to get by, and in this way its pretty conveninet. But in the course of being easy to use and modify it does limit creative freedom a fair bit and forces an experienced artist to work within a fairly limited framework of tools and techniques.
When people say, if you don't like something change it, you can get the full source for $100. that doesn't realy help artists very much and from being involved in communities with many artists coders some with programming knowledge. Often the one thing that puts them off to TGE and TSE is the art path.
Anyway, I've said what I wanted to say, I'll be quite now and see what happens. I still think I did the right thing posting my original topic. Shame I spelt multiple wrong lol.
#9
OK, those are some good examples. That's what I was looking for Adrian; it's much more helpful than saying you want multiple UV's over and over ;)
I'm very open to critique, I know TSE is not perfect and I want it to keep up with the demands of developers. Since we have limited resources to throw at it though, we have to make sure that new features are going to benefit everybody, not a small custom solution.
Looks like I guessed right and what you want is interior/environment related. We're working on it. You will eventually be able to do what you are asking for. We are working towards it as fast as we can.
03/09/2005 (3:42 pm)
It's fine that you are asking about this in the appropriate forum. But it's not like you weren't being answered elsewhere. Asking a question, having it answered, and then asking it again is annoying, and time consuming for us.OK, those are some good examples. That's what I was looking for Adrian; it's much more helpful than saying you want multiple UV's over and over ;)
I'm very open to critique, I know TSE is not perfect and I want it to keep up with the demands of developers. Since we have limited resources to throw at it though, we have to make sure that new features are going to benefit everybody, not a small custom solution.
Looks like I guessed right and what you want is interior/environment related. We're working on it. You will eventually be able to do what you are asking for. We are working towards it as fast as we can.
#10
Yeah it's mainly useful for environments and static geometry, or certain types of effects that may have idependant animated UV's and for animating texture effects,
Typicaly you only need one UV for skinned characters/vehicles which is how torque is set up now.
03/09/2005 (3:44 pm)
Thanks Brian, I doubt I'll bring up the issue again ;)Yeah it's mainly useful for environments and static geometry, or certain types of effects that may have idependant animated UV's and for animating texture effects,
Typicaly you only need one UV for skinned characters/vehicles which is how torque is set up now.
#11
02/19/2008 (12:59 am)
Is multiple UV channel support in yet? I'm looking for it but not finding it. I have several reasons for wanting it, but mostly for lightmaps.
#12
02/19/2008 (7:13 am)
No, still only 1 UVW channel per node in a DTS shape.
#13
02/19/2008 (7:32 am)
I don't believe it has been added.
#14
One of the initial reasons I never really got into Torque and always ended up going elsewhere was the lack of multitexturing flexibility thats avaliable even in DX7. Thought it would have been implemented by now, at least in the shader engine.
You can see something I threw together with ben garneys B3D multitexturing in the Oust screenshots in my profile.
02/19/2008 (8:24 am)
I'm amazed this never got added. One time when I collaborated with ben garney on a B3D loader for Torque, he got multi UV, all the various fixed function blendmodes and rudimentary trimesh collisions implemented in a couple of weeks.One of the initial reasons I never really got into Torque and always ended up going elsewhere was the lack of multitexturing flexibility thats avaliable even in DX7. Thought it would have been implemented by now, at least in the shader engine.
You can see something I threw together with ben garneys B3D multitexturing in the Oust screenshots in my profile.
#15
02/19/2008 (8:36 am)
@Adrian - Can you recommend a good multi-platform gaming engine with a built-in network library that DOES support multi-UVs?
#16
We ended up building our own Ogre based engine, and havent really tackled Networking. We will probably use Raknet for networking in ours, the Torque network library is avaliable but costs more than the engines.
Multiple UV's are commonly used in shaders for ambient occlusion, lightmaps and what have you. I read somewhere that the next torque release will have proper trimesh collision support, maybe they will get multiple UV's in then.
02/19/2008 (9:04 am)
Networking is probably Torques biggest feature these days, I don't know of anything else avaliable out of the box that has it integrated so well. Can be a blessing or a curse depending on what kind of game your doing.We ended up building our own Ogre based engine, and havent really tackled Networking. We will probably use Raknet for networking in ours, the Torque network library is avaliable but costs more than the engines.
Multiple UV's are commonly used in shaders for ambient occlusion, lightmaps and what have you. I read somewhere that the next torque release will have proper trimesh collision support, maybe they will get multiple UV's in then.
#17
12/09/2008 (2:10 pm)
I've got a working solution to this problem, there's some detail in my plan files and on this website, and a working demo.
Torque Owner Brian Ramage
Black Jacket Games