Oni Central Forum

A forum for the Oni community

You are not logged in.

#1 02/19/08 10:02

Iritscen
Moderator
From: NC, USA
Registered: 10/22/07

Poly Mods

And by "poly mods" I mean altering character models.  Okay, I took a shot at improving Griffin.  So I exported his ONCC using OniSplit and worked with it in my 3D app.  I wanted to make him look more like his portraits.

Now, I only did a little work, so don't judge it harshly, but I stopped well before I was done because I wanted to make sure it was going to be able to be imported into Oni.  Firstly, I tried to view it in obj_view and got nothing.  Literally, it's invisible.  Maybe someone can tell me what I'm doing wrong.  Attached, you'll find a zip file containing the modified OBJ, and an OBJ that links with a MTL file.  Griffin.obj is the output from my 3D app, blender.  You'll notice, if you compare it to what OniSplit outputs, that it's pretty whacked.  I don't know what blender's problem is.  I then edited it by hand to get Griffin2.obj, and edited Griffin2.mtl to make sure they matched each other in terms of the file and mtl names they use.  So why, when I tell obj_view to open these .objs, do I get nothing?  (Interestingly, I also get nothing when rendering the file in blender, even though I can see it just fine when working with it.)

Is there some obvious error in the files that I am missing?  Granted, things are ordered differently from OniSplit's output, but they seem functionally to be similar.  I am just learning this .obj thing and could use some help.

Edit: Also, does Oni have a maximum number of polys for characters, and will it hurt performance if I, say, doubled or quadrupled the poly count on a few key characters?

Edit 2: Oh yeah, and OniSplit can't import ONCCs yet, right?  How would I import/export individual body parts?

Last edited by Iritscen (02/19/08 10:02)


Check out the Anniversary Edition Seven at ae.oni2.net!

Offline

#2 02/19/08 11:02

EdT
Moderator
From: Los Angeles, CA
Registered: 01/13/07
Website

Re: Poly Mods

Well I'm using a demo version of Cheetah3D and I can see your model.

Offline

#3 02/19/08 12:02

Iritscen
Moderator
From: NC, USA
Registered: 10/22/07

Re: Poly Mods

Hmm!  Did you try obj_view?  I should make sure it's not just me for some reason.

Btw, look at him in profile; I'm restructuring his nose and his beard-goatee.  There's so many differences between model and artwork it's not even funny, so I thought I could close some of the gaps.


Check out the Anniversary Edition Seven at ae.oni2.net!

Offline

#4 02/19/08 18:02

geyser
Member
From: beyond the veil
Registered: 01/14/07
Website

Re: Poly Mods

The problem is with the "d" tag of your materials: it's the opacity. 0 is fully transparent, 1 (or anything larger than 1) is fully opaque.
I have no idea why your Blender sets d to 0.0 for all materials when exporting. I'd be surprised if there was no way for you to fix it.

Oni has a primary limitation of 2048 vertices per mesh (there may be others). That means it should be OK to split every triangle in 4.
(Oni's vertices list the XYZ, UV, and normals in parallel, so if you want to estimate the final vertex count, it's best to look at the UVs)
However, keep the performance in mind. Characters already represent the biggest load on the graphics engine and hardware by far.
So if you beef up Muro, Konoko, and Griffin by quadrupling their polys, it's as if you had added 9 minor characters to the final battle.

Nice take on the geometry, but I see you've broken a few seams while messing with the head. Better be careful about those later on.
The only way to import characters at the moment is to import single meshes (named ones), and then rewire the whole TRBS in OUP...
It's a totally unrecommendable waste of time, so you'd better wait until OniSplit supports TRBS import (it's going be Collada, not OBJ).


Behold the power of that which is yet unborn! For the swirling images that flow forth from the Chrysalis are only a shadow of the sleeper's true power.

Offline

#5 02/20/08 09:02

Iritscen
Moderator
From: NC, USA
Registered: 10/22/07

Re: Poly Mods

The problem is with the "d" tag of your materials: it's the opacity. 0 is fully transparent, 1 (or anything larger than 1) is fully opaque.
I have no idea why your Blender sets d to 0.0 for all materials when exporting. I'd be surprised if there was no way for you to fix it.

I knew you could find the problem.  Blender is retarded.  There's lots of options when exporting an OBJ, but none have to do with opacity.  Anyway, I can fix those by hand.

Oni has a primary limitation of 2048 vertices per mesh (there may be others).

That's... actually pretty high.

However, keep the performance in mind. Characters already represent the biggest load on the graphics engine and hardware by far.

Yes, that's an important consideration that EdT already warned me about.  I don't know why my modern Mac gets hosed by having a bunch of characters onscreen, but it does (probably has a lot to do with running PPC code on an Intel chip).  When I say quadrupling, I am assuming that that is what happens when I subdivide to an extra level of detail.  I'm still researching how different 3D apps subdivide, so I don't know if it always works out to x4 polygons.

But, here's an important point that I didn't make before: I don't really have to poly mod an entire character.  I could just do their head, and maybe a couple other body parts that are too blocky.  I know you would like to see Muro's face de-uglified.  If I feel that I have a good source (i.e., some art by Lorraine that you consider authoritative), I can tackle him at some point.

Nice take on the geometry, but I see you've broken a few seams while messing with the head.

Yes, that's a problem I'm aware of, although I'm not sure how to prevent it.  Apparently the top of the skull is not connected to the face, it's just tangent to it, so when I subdivided the mesh of the top of Griffin's head, it altered the vectors just a little and now you can see the seam.  I suppose I can fix it manually, if there's no way to prevent it.  I literally probably spent half an hour on Griffin after figuring out the tools; I am eager to see what a few hours will do.

The only way to import characters at the moment is to import single meshes (named ones), and then rewire the whole TRBS in OUP...
It's a totally unrecommendable waste of time, so you'd better wait until OniSplit supports TRBS import (it's going be Collada, not OBJ).

I see.  I found a Collada plug-in for Blender, so it looks like I can export to that format whenever I need to.


Check out the Anniversary Edition Seven at ae.oni2.net!

Offline

#6 02/20/08 13:02

geyser
Member
From: beyond the veil
Registered: 01/14/07
Website

Re: Poly Mods

"Blender is retarded." It's not Blender that's retarded, it's those bloody import-export Python scripts.
Their fixation on Python is no small problem. If they even screw up OBJ, what will it be with Collada?

The easiest way to subdivide a triangulated mesh is to add a vertex at the middle of every segment.
This splits every triangle into 4 smaller ones. As an option, it may move the old & new vertices a bit.

"I could just do their head, and maybe a couple other body parts that are too blocky." Good point.
"I know you would like to see Muro's face de-uglified." 2D art is not a consistent reference for 3D.
If you want to deuglify Muro, either do it intuitively, or have a look at the one in the 1999 trailer.

"Yes, that's a problem I'm aware of, although I'm not sure how to prevent it." Merge the vertices.
First do a subdivision to see where the seams are, then undo, select the pairs, and weldy-weld.
You could also tell the subdivision algorithm not to move any vertices: it ought to be optional.

"I found a Collada plug-in for Blender" It's flawed because of those bloody Python freaks.
There's a C++ SDK for Collada, with an MIT license, and they just stick with their Python.
Ultimately we'll probably provide a new Collada plugin, with all the proper specifications.


Behold the power of that which is yet unborn! For the swirling images that flow forth from the Chrysalis are only a shadow of the sleeper's true power.

Offline

#7 02/20/08 14:02

Iritscen
Moderator
From: NC, USA
Registered: 10/22/07

Re: Poly Mods

"Blender is retarded." It's not Blender that's retarded, it's those bloody import-export Python scripts.

I didn't realize you were so familiar with Blender.  Apparently more so than I am.

"I know you would like to see Muro's face de-uglified." 2D art is not a consistent reference for 3D.
If you want to deuglify Muro, either do it intuitively, or have a look at the one in the 1999 trailer.

Well, I know that Muro is not depicted consistently in the 2D art, so that's why I said I would need a specific image or two to work from.  But you're right, I might just watch the trailer again and use that as my reference.  I've had that movie on every computer I've owned since 1999.  I always knew it was worth hanging on to.

"Yes, that's a problem I'm aware of, although I'm not sure how to prevent it." Merge the vertices.
First do a subdivision to see where the seams are, then undo, select the pairs, and weldy-weld.

Interesting, I will have to learn how to do that.

Ultimately we'll probably provide a new Collada plugin, with all the proper specifications.

Cool.  It shouldn't be a problem then, if I continue to model in Blender's native format, right?


Check out the Anniversary Edition Seven at ae.oni2.net!

Offline

#8 02/21/08 10:02

Iritscen
Moderator
From: NC, USA
Registered: 10/22/07

Re: Poly Mods

Yeah, Muro looks tons better in the trailer.  I will get around to fixing his face sooner or later for sure.


Check out the Anniversary Edition Seven at ae.oni2.net!

Offline

#9 02/21/08 11:02

geyser
Member
From: beyond the veil
Registered: 01/14/07
Website

Re: Poly Mods

Oh, and I'm "aware of" Blender rather than "familiar with".
I never bothered to learn all the ropes and actually model.
As it is, I'm reinstalling it now after a many-year hiatus...

"Yeah, Muro looks tons better in the trailer."
Blame Chris Hughes for ruining the models.
I guess the one in the trailer is Alex Okita's.
There was some kind of revenge going on.


Behold the power of that which is yet unborn! For the swirling images that flow forth from the Chrysalis are only a shadow of the sleeper's true power.

Offline

#10 02/21/08 12:02

Iritscen
Moderator
From: NC, USA
Registered: 10/22/07

Re: Poly Mods

I remembered this quote in connection with the Muro issue:

There were some issues with a few of the original characters, specifically the way they were modelled and textured. When Chris Huges got around to redoing them to remove sorting issues and correct their "physiques" (which is an 3D animation term relating to the way the vertices interact during animation) he often changed their clothes from the outfits Alex Okita originally gave 'em. Chris and Alex had what you might call a "friendly rivalry" in the art department ;^>

Was that Hardy who said that?  Anyway, it's interesting that he says the clothes were changed (which they were, and I miss those from the trailer as well), but doesn't say the faces were changed.  Actually, only Muro's seemed to change, which is interesting.  I haven't noticed any model changes from the 1999 trailer aside from that; has anyone else?

In his interview, Chris says he modeled Konoko (http://oni.bungie.org/special/part2/chrish.html), and implies he modeled everyone, although perhaps based on Alex's designs.  That still doesn't tell us why he made Muro so ugly, though.


Check out the Anniversary Edition Seven at ae.oni2.net!

Offline

#11 02/21/08 12:02

geyser
Member
From: beyond the veil
Registered: 01/14/07
Website

Re: Poly Mods

Chris and Alex had what you might call a "friendly rivalry" in the art department

That's the quote I had in mind, yes. That rivalry seems at its most tragic in Muro's case.

Last edited by geyser (02/21/08 12:02)


Behold the power of that which is yet unborn! For the swirling images that flow forth from the Chrysalis are only a shadow of the sleeper's true power.

Offline

#12 03/04/08 17:03

geyser
Member
From: beyond the veil
Registered: 01/14/07
Website

Re: Poly Mods

I was rather slow to realize this, but a very interesting and straightforward thing to add to Oni's characters is cel-shading.
The poor man's cel-shading is just a black duplicate of the original mesh, facing inwards, so it only doubles the polycount.
Ideally, though, that shell is not just a scaled version of the original: it's supposed to be shifted outwards along the normals.
So the current idea is to auto-generate those. All that changes for you is that you'll have to limit yourself to, say, 1024 UVs.

Here's a sneak peek at a rudimentary implementation of cel-shading.
It's not perfect (and it's not in Oni), but... you get the general idea smile
ogcstest_.png
(click the image for the original screenshot)

Last edited by geyser (03/04/08 18:03)


Behold the power of that which is yet unborn! For the swirling images that flow forth from the Chrysalis are only a shadow of the sleeper's true power.

Offline

#13 03/05/08 09:03

Iritscen
Moderator
From: NC, USA
Registered: 10/22/07

Re: Poly Mods

geyser wrote:

I was rather slow to realize this, but a very interesting and straightforward thing to add to Oni's characters is cel-shading. [...]

Wow, that's interesting.  You said that's not in Oni... is that pic 'shopped?  If I understand your description of the method, you're saying that the "shadow" mesh would have to be scaled out to the sides from whatever your current perspective is, so in that shot, Konoko's shadow mesh would be a little wider than her actual body.  In a profile shot of Konoko, her shadow mesh would protrude from her chest and face, and from her back, to create the cel-shaded outline.

Is that correct?  Because you say something about auto-generating that... isn't that something Oni's engine would have to do in realtime?


Check out the Anniversary Edition Seven at ae.oni2.net!

Offline

#14 03/05/08 12:03

geyser
Member
From: beyond the veil
Registered: 01/14/07
Website

Re: Poly Mods

Here's a simple illustration of how this "shell-shading" works:
a2cstree_.png
Let's concentrate on that tree's trunk. There's basically a gray carrot and a black carrot.
The black carrot is larger, encloses the gray one completely, and has its normals flipped.
The half of the black carrot closest to us is simply backface-culled. Hence the "contour".
This trick would work exactly the same no matter where we look at our carrots from...
So, there is no reason to generate the black carrot at runtime (and actually we don't).

The screenshot I posted earlier is from Neo's OniGame (so close to Oni it's bluffing).
OniGame generates those extra black shells from the meshes automatically right now.
However, it would work just the same if every "carrot" included its own canned shell.

As for how the shells are constructed. For carrots, yes, you can get away with "scaling".
For non-convex or non-symmetric meshes, homogeneous scaling won't do the trick...
You want the shell to enclose the original mesh, at a margin distance from every face.
Right now, we shift every vertex outwards by a fixed amount along the local normal.

Last edited by geyser (03/05/08 13:03)


Behold the power of that which is yet unborn! For the swirling images that flow forth from the Chrysalis are only a shadow of the sleeper's true power.

Offline

#15 03/05/08 23:03

Iritscen
Moderator
From: NC, USA
Registered: 10/22/07

Re: Poly Mods

geyser wrote:

You want the shell to enclose the original mesh, at a margin distance from every face.
Right now, we shift every vertex outwards by a fixed amount along the local normal.

Which is a problem I'm familiar with from Oni's shield effect that simply scales up the geometry of the char. who is wearing it.  That's why some protruding polygons like hair spikes get left out of the field, because the field expanded the hair, etc., and its own protrusions don't cover the original polygons anymore.


Check out the Anniversary Edition Seven at ae.oni2.net!

Offline

Board footer

Powered by FluxBB