Jump to content

Non-instancing copy command


Niosop
 Share

Recommended Posts

I don't know how most MMOs do it, but I would not have entire character models just with different texture sets. I would cut the models up into body parts (arms, legs, torso, head, etc) and then put the model together with LUA scripting at runtime. That way you can have all the combinations you want and are interchangable at will.

 

i was thinking the same thing as well... but not even have the body cut up... just use separate textures instead of one combined texture for the body parts... I have a simple model that actually has 4 different material files right now calling out different textures all mapped to one model and it looks like its just one texture...

Win7 64bit / Intel i7-2600 CPU @ 3.9 GHz / 16 GB DDR3 / NVIDIA GeForce GTX 590

LE / 3DWS / BMX / Hexagon

macklebee's channel

Link to comment
Share on other sites

Aye. That would be simpler at the disadvantage of not being able to modify your models' polys (Say, for example, putting big chunky armor on your character). These solutions are the ones you want to be looking into Rick.

Programmer, Modeller

Intel Core i7 930 @ 3.5GHz | GeForce 480 GTX | 6GB DDR3 RAM | Windows 7 Premium x64

Visual Studio 2008 | Photoshop CS3 | Maya 2009

Website: http://srichnet.info

Link to comment
Share on other sites

Aye. That would be simpler at the disadvantage of not being able to modify your models' polys (Say, for example, putting big chunky armor on your character). These solutions are the ones you want to be looking into Rick.

 

for something like armor i would assume that you could just have that as separate model parented to a bone on the character model

Win7 64bit / Intel i7-2600 CPU @ 3.9 GHz / 16 GB DDR3 / NVIDIA GeForce GTX 590

LE / 3DWS / BMX / Hexagon

macklebee's channel

Link to comment
Share on other sites

for something like armor i would assume that you could just have that as separate model parented to a bone on the character model

 

Ah good point, that's a much more elegant solution.

Programmer, Modeller

Intel Core i7 930 @ 3.5GHz | GeForce 480 GTX | 6GB DDR3 RAM | Windows 7 Premium x64

Visual Studio 2008 | Photoshop CS3 | Maya 2009

Website: http://srichnet.info

Link to comment
Share on other sites

i was thinking the same thing as well... but not even have the body cut up... just use separate textures instead of one combined texture for the body parts.

 

That's exactly how they do it (and I have a model like this that I gave Nio to try and figure out how to do the shader way), BUT that still doesn't leave enough possible textures by doing it the shader way. Like he was saying you could probably have 200 or something possibilities. It's a limit that doesn't need to be there. You might say 200 is enough but huge MMO's could easily have more than that for shirts, pants, belts etc.

Link to comment
Share on other sites

how would that not give you tons of possibilites? lets say you just have four different materials for four areas on a character that uses niosop's method of textures that each have 16 different possibilities on one texture... you end up with about 60000 total possible characters looks...

Win7 64bit / Intel i7-2600 CPU @ 3.9 GHz / 16 GB DDR3 / NVIDIA GeForce GTX 590

LE / 3DWS / BMX / Hexagon

macklebee's channel

Link to comment
Share on other sites

Let's look at that a different way. Let's say you have 4 different textures you can have on a model. Let's say, pants area, shirt area, waist area, and gloves. Each area has it's own texture and with what Josh is saying you could have around 16 "pants" on 1 texture. Or 16 "shirts" on another texture. An MMO could have a few hundred different pant styles or shirt styles. It's not about the different combinations you can make with all the different texture parts of a model, it's about how many textures can I have for the shirt texture, or the pant texture. Generally in RPG's you make gear match. Let's say in an MMORPG there is an armor set called Rick's Might. It comes with a chest texture, pants texture, waist texture, and gloves texture. So that chest texture is taking up 1 slot of the 16 in my 1 texture file. That only leaves me with 15 more chest textures for that model. In an MMO you'd have more options than 16 chest textures and you'd need them because the odds you'll have 16 of the same character model on screen at once is likely and has to be handled.

Link to comment
Share on other sites

and thats where instancing would come in and Josh has already said he would look into implementing it but note that you will lose performance... so I don't know why you keep beating a dead horse... can you not be satisfied with anything or do you just like to complain?

Win7 64bit / Intel i7-2600 CPU @ 3.9 GHz / 16 GB DDR3 / NVIDIA GeForce GTX 590

LE / 3DWS / BMX / Hexagon

macklebee's channel

Link to comment
Share on other sites

and thats where instancing would come in and Josh has already said he would look into implementing it but note that you will lose performance... so I don't know why you keep beating a dead horse... can you not be satisfied with anything or do you just like to complain?

 

Calm down buddy. Rick was simply elaborating on his point, which we were disputing. Don't take it personally when he has a valid point you can't rebuke.

Programmer, Modeller

Intel Core i7 930 @ 3.5GHz | GeForce 480 GTX | 6GB DDR3 RAM | Windows 7 Premium x64

Visual Studio 2008 | Photoshop CS3 | Maya 2009

Website: http://srichnet.info

Link to comment
Share on other sites

edit--- youre right. My question might have come off less than sincere. My apologies. Yes, I am not disagreeing that instancing will solve some issues. But you combine instancing with niosops method and you can limit the performance hit and still have tons of possibilities.

Win7 64bit / Intel i7-2600 CPU @ 3.9 GHz / 16 GB DDR3 / NVIDIA GeForce GTX 590

LE / 3DWS / BMX / Hexagon

macklebee's channel

Link to comment
Share on other sites

16 textures per model. So why not make additional models even if it was manually copying them (and renaming them; armor_legs_1, etc.)? Kind of cheap I guess but you'd have a set amount of assets anyways.

 

But yeah, a non-instance copying method/function would be great.

Link to comment
Share on other sites

I saw your original post, and it takes character to edit it to what you did. I'm sorry if I come off as saying everything is broken. Generally when I see something wrong I post about it, and yes sometimes it is my fault, but that's what forums are for. To work things out. I'll try to be more aware of my posts.

Link to comment
Share on other sites

16 textures per model. So why not make additional models even if it was manually copying them (and renaming them; armor_legs_1, etc.)? Kind of cheap I guess but you'd have a set amount of assets anyways.

 

But yeah, a non-instance copying method/function would be great.

 

actually thats a good idea going back to what DJDD was suggesting where the separate body parts would all be combined via script... hmmm... that also opens up the ability to sever body parts as well... thats how CoD had done it at one time... Have basically one body and then the head was another model parented to the body...

Win7 64bit / Intel i7-2600 CPU @ 3.9 GHz / 16 GB DDR3 / NVIDIA GeForce GTX 590

LE / 3DWS / BMX / Hexagon

macklebee's channel

Link to comment
Share on other sites

actually thats a good idea going back to what DJDD was suggesting where the separate body parts would all be combined via script... hmmm... that also opens up the ability to sever body parts as well... thats how CoD had done it at one time... Have basically one body and then the head was another model parented to the body...

 

Aye its a decent solution IMO. But just in regards to the cutting up of models - LW can do dynamic model splicing anywho, as already demoed.

Programmer, Modeller

Intel Core i7 930 @ 3.5GHz | GeForce 480 GTX | 6GB DDR3 RAM | Windows 7 Premium x64

Visual Studio 2008 | Photoshop CS3 | Maya 2009

Website: http://srichnet.info

Link to comment
Share on other sites

? where is this demo?

 

Not sure if its here in WerkSpace yet but it was quite popular back in the old forum: http://leadwerks.com/forum/viewtopic.php?f=32&t=1370&hilit=cut+wood

Programmer, Modeller

Intel Core i7 930 @ 3.5GHz | GeForce 480 GTX | 6GB DDR3 RAM | Windows 7 Premium x64

Visual Studio 2008 | Photoshop CS3 | Maya 2009

Website: http://srichnet.info

Link to comment
Share on other sites

Best method I've found for cutting up a character is to model the whole character and save it out. Then cut it up in your modeling program and save each piece. When you want to chop off an arm for instance, you take the arm bone, scale it down to 0,0,0 which makes the arm disappear, and spawn the arm piece there so it can fall to the ground, or apply a force to have it shoot off in some direction.

Windows 7 x64 - Q6700 @ 2.66GHz - 4GB RAM - 8800 GTX

ZBrush - Blender

Link to comment
Share on other sites

just to be sure, rick, you realize that you can have a 4096X4096 texture atlas that could

theoretically hold 256 different shirt variations all at a 'usable' resolution of 256 pixels (image)

 

for higher resolution, your mileage decreases...but that's a lot of shirts in my book... :)

post-29-12626682682375_thumb.gif

Vista Ultimate SP1 64bit | Q6600 2.40 GHZ | 8GB RAM | 320MB Nvidia 8800GTS

Link to comment
Share on other sites

I agree that it is, but it's still limiting compared to the other that isn't. I also have to wonder if you start limiting graphic cards when you start getting so high in 1 texture size. I'm not sure if every graphics card that can run LE can make a texture size that large or not.

Link to comment
Share on other sites

OK Rick: After looking over the model you sent it looks like it would be possible to do what you want to do, just difficult. You'd be able to have a max of 4 of the body parts change, and would need a separate shader for each of the parts. So you'd have a pants shader and use that for the pants. This would use the red channel to determine which of the 256 pants to render. Then a shirts shader that would use the green channel. The other two could be skin and beard or something. The shader for that body part would look at it's assigned channel and use that to calculate the offset to use for the 256x256 texture atlas.

 

If you wanted to use a max of 16 different textures for each of the body parts then you could split each channel into 4 bit pairs and have 8 different body parts change instead. Or mix and match, 16 possible beard textures and 16 possible boot textures, then still have 3 channels available that would allow for 256 different textures on pants, shirts and skin.

 

The shaders could be generic and reusable, like atlas_diffuse_256_red.frag, atlas_diffuse_16_high_red.frag, atlas_diffuse_16_low_red.frag, etc...

 

There may be a better way to do it by setting the color of the material, but I don't know if that's per instance or global and the command doesn't appear to be exposed to Lua (or I couldn't figure out the syntax).

Windows 7 x64 - Q6700 @ 2.66GHz - 4GB RAM - 8800 GTX

ZBrush - Blender

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...