New Hornet model

Discuss the Wing Commander Series and find the latest information on the Wing Commander Universe privateer mod as well as the standalone mod Wasteland Incident project.
DualJoe
ISO Party Member
ISO Party Member
Posts: 387
Joined: Tue Mar 21, 2006 2:37 pm
Location: Netherlands
Contact:

Post by DualJoe »

I'm baking a normal-map now to see how the engine part holds up.
1220 tris isn't that bad, so there's some room left for the engine.

How many LOD's do you need with what kind of polycounts? I now have this one practically finished which is about 17% of the original.
Btw mirroring increases the polycount significantly on very lowpoly models, due to the mandatory cut along the mirrors edge.

I just saw that xNormal also supports baking of texturemaps from high->lowpoly. This means we can use the GI-maps on the LOD.
klauss
Elite
Elite
Posts: 7243
Joined: Mon Apr 18, 2005 2:40 pm
Location: LS87, Buenos Aires, República Argentina

Post by klauss »

Well, I've seen numbers that meshes below 500 polies can't be rendered efficiently without instancing.
Since we don't do instancing yet (and though I'd like to do it, and have some ideas, I have no plans of immediately including "automatically managed" instancing. ie, transparent instancing, without artist/modeller intervention), I'd say anythin below 500 polies is just wasting time. Having that in mind, I'd say 1200 is fairly close enough.
Oíd mortales, el grito sagrado...
Call me "Menes, lord of Cats"
Wing Commander Universe
DualJoe
ISO Party Member
ISO Party Member
Posts: 387
Joined: Tue Mar 21, 2006 2:37 pm
Location: Netherlands
Contact:

Post by DualJoe »

Made a new LOD-engine, but that brought the tri-count up to 1618.

Used Xnormal to bake all the textures to the LOD, you can download the model with textures here

EDIT
Ran it to a lot of problems during the baking stage. Two tips for anyone wanting to do this.
1. Make the LOD fit entirely in or- outside the High-poly-version especially when you've got floating geometry, or
2. spend a lot of time editing the raytrace-cages in xNormal.

If you don't than you can expect some odd results, like parts of wings appearing on top of the engine.
klauss
Elite
Elite
Posts: 7243
Joined: Mon Apr 18, 2005 2:40 pm
Location: LS87, Buenos Aires, República Argentina

Post by klauss »

DualJoe wrote: Ran it to a lot of problems during the baking stage. Two tips for anyone wanting to do this.
1. Make the LOD fit entirely in or- outside the High-poly-version especially when you've got floating geometry, or
2. spend a lot of time editing the raytrace-cages in xNormal.
The LOD should contain the detailed model (ie - the detailed version should fit inside), according to how Parallax mapping works.
Parallax mapping does "need" the detailed surface to be towards the backface of polygons, or the reverse, but not mixing both (violating the rule won't create a serious problem though, just minor inconsistencies). But since either variant needs a different shader, let's settle on what I said: LOD wraps the detailed version.

Dual: If you did it the other way, don't worry, I can fix the heightmap I think. I've done it a few times.
Oíd mortales, el grito sagrado...
Call me "Menes, lord of Cats"
Wing Commander Universe
DualJoe
ISO Party Member
ISO Party Member
Posts: 387
Joined: Tue Mar 21, 2006 2:37 pm
Location: Netherlands
Contact:

Post by DualJoe »

Well normalmapping is not as easy as I had hoped it would be. I've had to redo parts of the High-poly-version and I've had to redo the LOD a couple of times.

I've updated the archive I posted earlier. The LOD is now 1504tris including a simplified engine. I've made a composite of all the textures from the results of Braybaker and xNormal.

Klauss I need your help to test if the texturepack is working. I've included several versions of the normalmap for each of the tools I used and some edited versions. I can't move the lights or the model in Rendermonkey so I can't see which one of the normalmaps works best.
spiritplumber
Developer
Developer
Posts: 1831
Joined: Mon Mar 07, 2005 10:33 pm
Contact:

Post by spiritplumber »

sexi :shock:


server back up btw..
My Moral Code:
- The only sin is to treat people as if they were things.
- Rules were made for people, not the other way around.
- Don't deceive. Real life is complicated enough.
- If all else fails, smash stuff.
klauss
Elite
Elite
Posts: 7243
Joined: Mon Apr 18, 2005 2:40 pm
Location: LS87, Buenos Aires, República Argentina

Post by klauss »

Sorry for the timelag. I've been really busy lately, and will keep like that for a week or two. Or three. I dunno, finals are closing.

Anyway, I'll try to check it out tonight, and I'll let you know how it goes.
Oíd mortales, el grito sagrado...
Call me "Menes, lord of Cats"
Wing Commander Universe
DualJoe
ISO Party Member
ISO Party Member
Posts: 387
Joined: Tue Mar 21, 2006 2:37 pm
Location: Netherlands
Contact:

Post by DualJoe »

In the mean time I'll see if I can do 1 or 2 more LODs, make some textures for the current engine and work on the cockpit, maybe even texture it.

Something I've run into:
I've tried replacing existing models with my hornet in the current engine, but I can't figure out how the specularity works.
Even with a black specmap the model is extremely shiny.
The strangest part is that the specmaps seems to work on the shadow part of the model, but not on the illuminated side. :?
The only way I could get it to look right is if I set "Specular Per Pixel Lighting" instead of "Reflective Per Pixel Lighting".
Any ideas on what I am doing wrong here?
klauss
Elite
Elite
Posts: 7243
Joined: Mon Apr 18, 2005 2:40 pm
Location: LS87, Buenos Aires, República Argentina

Post by klauss »

DualJoe wrote:The only way I could get it to look right is if I set "Specular Per Pixel Lighting" instead of "Reflective Per Pixel Lighting".
Any ideas on what I am doing wrong here?
Ah... yes.
Reflective per-pixel makes specularity go weird. The real catch is to enable an option which has now been enabled in VS, but I bet WCU didn't get that config change: there's a variable out there (maybe it's not in the config, you'd have to add it): "specmap_with_reflection" - set it to true, in the "graphics" section. That will enable a new algorithm that, besides looking better, makes more sense.
Oíd mortales, el grito sagrado...
Call me "Menes, lord of Cats"
Wing Commander Universe
DualJoe
ISO Party Member
ISO Party Member
Posts: 387
Joined: Tue Mar 21, 2006 2:37 pm
Location: Netherlands
Contact:

Post by DualJoe »

Ah thanks, will do that later.

I've just about finished the second LOD. I've already baked everything I could from high- to very low-poly, but these textures will definitely require a lot of manual-adjustments (some area's don't come out right in the bakings). The most difficult part would be the DAO-POS and NEG-maps I figure.

Before I start with that I have another question.
I've made a completely mirrored unwrap, but this requires a split in the model. If I remove this split I can get the tri-count down from 550 to 500, but it would also mean that I can't make a completely mirrored unwrap.
Should I keep the current mirrored-uv with the additional 50 tris, or should I go for the unmirrored one?

I'll post some pics later.

EDIT
Here's a comparison with 6826 tris on the left, 1504 in the middle and 550 on the right..
Image

>highres Image<

As I said the one on the right still needs some work on the textures.
klauss
Elite
Elite
Posts: 7243
Joined: Mon Apr 18, 2005 2:40 pm
Location: LS87, Buenos Aires, República Argentina

Post by klauss »

Dang - you beat me to it.
I was just about to post this set of shots.

Ok. Sorry for the delay, then.

I didn't think DAO + selfshadows would make that much of a difference. I'm impressed, if I may say so myself.

I see you've corrected the cockpit problem. If you didn't (some shaders have it, some don't), it's the PRT - since it's used for self-shadowing, a black zone in the PRT means full shadow no matter what - not just ambient, direct lighting too. That is: you can't avoid baking any part of the PRT.

About some bugs that are evident in my set ( not yours :P ), those are derived from mirrored PRT unwraps. There's a way to avoid that problem without unmirroring the other maps: separate UVs. But, if you want to unmirror - go ahead. However... however... texture efficiency in a LOD is more important, I'd say, than 50 polies. I'd keep the mirror for everything but the PRT.

Oh... I didn't get a heightmap. So I couldn't try parallax. I bet parallax will do wonders for the engines. Mind posting a heightmap? If you can?
Oíd mortales, el grito sagrado...
Call me "Menes, lord of Cats"
Wing Commander Universe
DualJoe
ISO Party Member
ISO Party Member
Posts: 387
Joined: Tue Mar 21, 2006 2:37 pm
Location: Netherlands
Contact:

Post by DualJoe »

Well your shots are better than mine, because they show the engine area with lighting.

Which one of the normalmaps worked best? (There were three different ones in the package you used)
Is it possible to move lights/models in Rendermonkey so I can see how they look?
How do I make/save those separate uv's for PRT? The only way I can think of, is by making a copy and doing a different unwrap on that one.

Darn, I completely forgot the heightmaps. I'll post them right away. Ermm, any ideas on how I can make them btw?
Sofar I've only been able to generate heightmaps with xNormal. However I'm not that impressed with xNormals results. BRaybaker and ATINormalmapper both result in far more detailed maps. Unfortunately I can't get the latter two the spit out heightmaps.

Does anyone know how to use ORB or Melody with Blender-models? They seem to be the only two tools left, but they both die on me when I try to load my models as obj/3ds-files.

I'll reboot to Windows and see if I can get one of the tools to play ball. I really hope that Blender will be able to do this stuff in the near future.

BTW
Blender runs through WINE, so you can use the NMF-plugin with Blender running completely inside WINE. I can't believe I haven't thought about that before now.
chuck_starchaser
Elite
Elite
Posts: 8014
Joined: Fri Sep 05, 2003 4:03 am
Location: Montreal
Contact:

Post by chuck_starchaser »

Klauss, sorry to be the one saying so, but...

Image

a) There are dark seams where the forward ailerons meet the body and sharp contrasts where the vertical ailerons attach to the wings... and...
b) the Hornet looks very, VERY fat here...

Something's wrong, and I wonder if it isn't the PRT baking method... I've had a bad feeling since the time I showed you my shoebox PRT setup and you told me to make it more spherical. I don't know what the functions you're using for GI look like, but it would seem to me you'd want something that ranges from full illumination when a facet faces the light, to total darkness when at 90 degrees to the light. IOW, a "light at infinity", which would give you illumination proportional to the cosine of the angle, and which I would approximate with a radiant sqare or disk of the size of the ship and placed some distance away. Sorry, I had to get this out; been keeping me awake at night :D
Such cosine function could then be squared in the shader to get a function that is like 1-cos(2*angle)...
DualJoe
ISO Party Member
ISO Party Member
Posts: 387
Joined: Tue Mar 21, 2006 2:37 pm
Location: Netherlands
Contact:

Post by DualJoe »

I've posted a new normalmap with the heightmap in the alpha-channel and it can be downloaded here.
It's the one for the first LOD.

Can the bumpmap I made for the highres-hornet be modified into a heightmap?

The fatness off the Hornet is also the effect of the extreme fisheye-camera in Rendermonkey. Also I still have to make a proper PRT-unwrap and baking.
klauss
Elite
Elite
Posts: 7243
Joined: Mon Apr 18, 2005 2:40 pm
Location: LS87, Buenos Aires, República Argentina

Post by klauss »

chuck_starchaser wrote:a) There are dark seams where the forward ailerons meet the body and sharp contrasts where the vertical ailerons attach to the wings... and...
PRT, I bet. When the raytracing fails to hit anything, it outputs gray. That can be gimped-out.
chuck_starchaser wrote:b) the Hornet looks very, VERY fat here...
Ya... fisheye.
chuck_starchaser wrote:Something's wrong, and I wonder if it isn't the PRT baking method...
Yes. UV unwrapping must be non-overlapping, otherwise it gets weird. Weird shadows mostly, since ambient lighting is rather subtle to notice the inconsistencies.
The spherical comment was to keep environment contributions uniform. In a true PRT baking, rays are cast from the surface and integrated uniformly around the sphere, so shoebox or not doesn't matter. But with this PRT-ish baking method, if you use a shoebox, points further from the mesh will contribute less and thus create an uneven lighting field, which turns into unjustified variations in ambient lighting.
Remember what PRT says: how much ambient light from general direction X ends up contributing to each pixel.
Oíd mortales, el grito sagrado...
Call me "Menes, lord of Cats"
Wing Commander Universe
chuck_starchaser
Elite
Elite
Posts: 8014
Joined: Fri Sep 05, 2003 4:03 am
Location: Montreal
Contact:

Post by chuck_starchaser »

What I was trying to express is my concern about the *direction* of light rays. It would seem to me they should be as parallel as possible. How about I put the plane REALLY far away from the model, so that there are no appreciable differences in illumination due to distance, AND no appreciable changes of direction either, to boot? After all, I'm having to put the emissiveness of the material really low, so how about I move it a mile away instead?

That's NOT fisheye, btw. I'm no fisherman, but I know a fish eye when I see one :D There's definitely shading AND reflections denoting strong *local* curvature in the wing, specially the far wing (looks like a camel's heap); as well as on the roof behind the cockpit. Look again:

Image

The roof is completely flat. Why is the nearer half darker than the far half?
klauss
Elite
Elite
Posts: 7243
Joined: Mon Apr 18, 2005 2:40 pm
Location: LS87, Buenos Aires, República Argentina

Post by klauss »

chuck_starchaser wrote:What I was trying to express is my concern about the *direction* of light rays. It would seem to me they should be as parallel as possible. How about I put the plane REALLY far away from the model, so that there are no appreciable differences in illumination due to distance, AND no appreciable changes of direction either, to boot? After all, I'm having to put the emissiveness of the material really low, so how about I move it a mile away instead?
Because Blender's radiosity solver doesn't work well in those situations - it generates too much aliasing. I tried.
chuck_starchaser wrote:That's NOT fisheye, btw. I'm no fisherman, but I know a fish eye when I see one :D There's definitely shading AND reflections denoting strong *local* curvature in the wing, specially the far wing (looks like a camel's heap); as well as on the roof behind the cockpit. Look again:
Oh... that.
I bet it got exacerbated by the low polyness, but the high-poly hornet also exhibits that in some places in RM. It's triangle winding issues, it inverts the tangents at some points, and makes tangent-space normalmaps misbehave. It shouldn't happen when you have the same tangents that your baking tool used - obviously, RM computes them differently.
I guess it's a matter of finding the right way to compute them, or getting the normalmapper to export a tangent coordinate set? I dunno.
In any case, it's a minor problem for this model. A LOD won't be looked at from close enough for that to be noticeable, I think.

The back, though, is another problem: Dual, you merged the vertices, but they're seams in the texture (they invert tangentspace), they should be separated.
In short, at any mirroring point, you can't have merged vertices.

Huh... perhaps it would be easier not to have mirroring...
Oíd mortales, el grito sagrado...
Call me "Menes, lord of Cats"
Wing Commander Universe
chuck_starchaser
Elite
Elite
Posts: 8014
Joined: Fri Sep 05, 2003 4:03 am
Location: Montreal
Contact:

Post by chuck_starchaser »

If those beveling lines near the edges got merged with the edges, this would explain shading issues IF the tool used to bake the normal maps fails to take smooth shading into account... That is, if it fails to interpolate the low detail mesh normals the way the gpu does...
klauss
Elite
Elite
Posts: 7243
Joined: Mon Apr 18, 2005 2:40 pm
Location: LS87, Buenos Aires, República Argentina

Post by klauss »

chuck_starchaser wrote:That is, if it fails to interpolate the low detail mesh normals the way the gpu does...
You may be onto something.
Interpolation varies according to how quads get tesselated.
Dual: you're our guinnea pig, sorry. Could you try... if you didn't do it that way already... converting all quads to triangles before baking? (and export a triangles-only obj)
Oíd mortales, el grito sagrado...
Call me "Menes, lord of Cats"
Wing Commander Universe
DualJoe
ISO Party Member
ISO Party Member
Posts: 387
Joined: Tue Mar 21, 2006 2:37 pm
Location: Netherlands
Contact:

Post by DualJoe »

Ehm, you lost me guys.
What do you mean by welding vertices at the back? It's the one area with the least changes.
Should I separate smoothgroups on the LOD's?
Which versions do you want in triangles? Which textures need to be redone?
Would save a lot of time if I don't have to redo everything.
If you want everything unmirrored I won't be able to finish them tonight. Because I'll have to redo all the unwraps including all the textures.
It would have made texturing incredibly more easy, if I didn't have to make a mirrored version. :evil:
Nevermind, it has been a learning experience and making new textures will be much faster. BTW I can always bake the old textures onto a new non-mirrored version.
chuck_starchaser
Elite
Elite
Posts: 8014
Joined: Fri Sep 05, 2003 4:03 am
Location: Montreal
Contact:

Post by chuck_starchaser »

While you wait for klauss' right answer, my wrong interpretation (probably) is that the vertices along the middle (mirroring) line should be two, rather than one vertex. I.e.: highlight half the ship and Y split. And I think what he meant by turning quads into triangles is like A - Ctrl-T for the meshes prior to baking the normal map.

As for whether he wants smoothing groups split, I donno; but in the meantime, what I'm going to try, for an experiment, is to flat-shade my low-poly version; and let the normal map handle all of the smoothing.
DualJoe
ISO Party Member
ISO Party Member
Posts: 387
Joined: Tue Mar 21, 2006 2:37 pm
Location: Netherlands
Contact:

Post by DualJoe »

Dammit, just over dinner this pops up on the Blender updates.
I can't believe how fast Blenders featurelist is growing. :shock: I can't keep up. From version 2.42 to 2.43 the Blenderdevs have added all the functions I wished for and then some: Zbrush like sculpting, tangent-normalmap support, texture-baking, multi-uv's and the list is still growing.

I've been working on a new hornet-set. The mirror modifier welds the two halves in the middle. I've now given the three models smoothgroups, split the halves and converted them to tris. I'm now in the process of rendering the normal- and displacement-maps. I'll see how easy blenders shiny new texturebaker tools work and then I'll add all the other textures in one package.

I don't know how multi-uv's work yet, so the unmirrored unwrap will have to wait and so will the PRT-maps.
klauss
Elite
Elite
Posts: 7243
Joined: Mon Apr 18, 2005 2:40 pm
Location: LS87, Buenos Aires, República Argentina

Post by klauss »

chuck_starchaser wrote:While you wait for klauss' right answer, my wrong interpretation (probably) is that the vertices along the middle (mirroring) line should be two, rather than one vertex. I.e.: highlight half the ship and Y split. And I think what he meant by turning quads into triangles is like A - Ctrl-T for the meshes prior to baking the normal map.
Exactly.
chuck_starchaser wrote:As for whether he wants smoothing groups split, I donno; but in the meantime, what I'm going to try, for an experiment, is to flat-shade my low-poly version; and let the normal map handle all of the smoothing.
Ouch. Don't. Flatshading gets implemented on video cards by assigning each triangle its own 3 vertices. That spells disaster for the vertex cache.
Oíd mortales, el grito sagrado...
Call me "Menes, lord of Cats"
Wing Commander Universe
chuck_starchaser
Elite
Elite
Posts: 8014
Joined: Fri Sep 05, 2003 4:03 am
Location: Montreal
Contact:

Post by chuck_starchaser »

Ouch is right; didn't think of that. Ok, I'll smoth-shade it all then. :)
klauss
Elite
Elite
Posts: 7243
Joined: Mon Apr 18, 2005 2:40 pm
Location: LS87, Buenos Aires, República Argentina

Post by klauss »

It was a good idea though... if it wasn't for that tiny detail.
Oíd mortales, el grito sagrado...
Call me "Menes, lord of Cats"
Wing Commander Universe
Post Reply