Jump to content
Niosop

Non-instancing copy command

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...

Share this post


Link to post

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.

Share this post


Link to post

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

Share this post


Link to post

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.

Share this post


Link to post

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.

Share this post


Link to post

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...

Share this post


Link to post

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.

Share this post


Link to post

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?

Share this post


Link to post

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.

Share this post


Link to post

I was simply responding to what you guys were talking about and stating why it doesn't work that way in certain situations. No need to get all pissy man, damn.

Share this post


Link to post

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.

Share this post


Link to post

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.

Share this post


Link to post

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.

Share this post


Link to post

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...

Share this post


Link to post

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.

Share this post


Link to post

But just in regards to the cutting up of models - LW can do dynamic model splicing anywho, as already demoed.

 

? where is this demo?

Share this post


Link to post

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.

Share this post


Link to post

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

Share this post


Link to post

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.

Share this post


Link to post

I think 4096^2 is fairly standard, it's when you go higher that it might start getting unsupported.

Share this post


Link to post

Then I'd say given the 256 resolution parameter then yes 256 textures is a solid number, but still a limitation.

Share this post


Link to post

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).

Share this post


Link to post
Guest
This topic is now closed to further replies.
×
×
  • Create New...