Home 3D Art Showcase & Critiques

3D Realtime Character [WIP]

1
For which Engine - XNA and M3G Application
Current Polycount -
Max Polycount - 10.000 for XNA, 1000 for M3G
Texture Size - 1024 or 2048 for XNA and 512 for M3G
Description of background information on piece - Realtime Character for my diploma thesis
Where are you looking to receive criticism - Especially Modelling and Edgeloops
_________________________________________________

Forword:
At the moment i´am writting my diploma thesis about Realtime Character Development with an implementation in XNA and M3G for Java. I have less experience in Character building and this should change with this project. I hope some poeple of you could help me with this.

My concept is based on the appleseed characters, because i´am not a skilled painter or drawer. The main aspect here is the modelling of the character, so it would be well animated and has less polycount.

Concept:
WipB.jpg
Image Planes:
WipA.jpg

I blocked the basic structre of the model. It would be very helpful, if you could help me with the edgeloops of the model.
Especially for the loops on the front of the hips down the foot. At the back of the Character down the foot. And the Loops at the back from the arms to the back.

At the moment the parts for the upper body, lower body, Head, armorplate and boots are seperated.

Insert Wireframe


Wip04.jpg


Wip05.jpg


Wip06.jpg

Best regards and thanks for your hopefully help.

Replies

  • Thegodzero
  • Art1977
    Options
    Offline / Send Message
    Thx, i allready downloaded some of this for reference. But there are new ones :-)

    Any suggestions about the edgeloops?
  • Art1977
    Options
    Offline / Send Message
    Small Update of the arms, the back and the backside

    Could need some help with the loops at these regions and the biceps and triceps.

    Wip07.jpg

    Wip08a.jpg

    Wip08b.jpg
  • Art1977
    Options
    Offline / Send Message
    I have to stop modelling at this point and go over to UVing and to Zbrush because lack of time.

    I made some deformation tests and the main problem area is at the moment between thigh and hip.

    Any suggestions before i go further:

    Wip09.jpg
  • Jeremy Lindstrom
    Options
    Offline / Send Message
    Jeremy Lindstrom polycounter lvl 18
    are by any chance using the gnomon head modeling for games tutorial?
  • Art1977
    Options
    Offline / Send Message
    Yes for the head.
  • Jeremy Lindstrom
    Options
    Offline / Send Message
    Jeremy Lindstrom polycounter lvl 18
    I knew I seen that head before I've built it several times. :D
  • Art1977
    Options
    Offline / Send Message
    Yes i made the tutorial a while ago.

    And now i used it, because lack of time. :-)
  • Lord McMutton
    Options
    Offline / Send Message
    Lord McMutton polycounter lvl 17
    I like the concept. Reminds me of a futuristic Leon Kennedy.
  • Art1977
    Options
    Offline / Send Message
    yes its a mixture of leon and appleseed. But i think i will make him with short hair because it´s easier. :-)
  • Ziodyne
    Options
    Offline / Send Message
    Sweet looking jacket!

    I admit that I do like the narrow waist in the first concept art, compared to more bulky front and back.
  • Art1977
    Options
    Offline / Send Message
    Thx for your comments.

    The Polycount at the moment is at about 9200 Tris.

    I should also mention that char has not to be 100% anatomically correct. Mayabe I will correct the issue of the shorter legs after my diploma thesis, but at the moment i actually completed the rig because i tested the deformation with this.

    At the moment i ´am thinking about how i could place my assets like ammopacks, holster etc... an how i could rig this on the final model ? Because i don´t know which bones should influence this additonal parts, so they move correct with the body.

    Wip10.jpg

    riggingProblem06.jpg

    The Translation of the description means: How to paint the weights of the underlaying vertices. Because the parts of the Object will be combined before the skinning process.

    riggingProblem07.jpg
  • Art1977
    Options
    Offline / Send Message
    Ok, i layed out the uvs, now it´s to make the decission, how to layout the parts and how many texture maps to make. Any suggestions for this:

    Wip11.jpg

    The duplicated pieces are overlapping at the moment, because they were just duplicated. I have to layout all of them too.

    Wip11b.jpg
  • butt_sahib
    Options
    Offline / Send Message
    butt_sahib polycounter lvl 11
    Looking great!
    But that kneepad is real dense. Also,push the groin out abit ;)
  • BradMyers82
    Options
    Offline / Send Message
    BradMyers82 interpolator
    For the layout I think it mainly depends on what the restrictions are on your character, but I always liked having all the uvs in one map making things as simple as possible.
    So if you go that route, I would save out one channel with uvs overlapping on mirrored parts and another with the overlapping parts aside. This way when you bake, you can quickly switch between the two, and don't get errors on your normals.
    Lastly, just cram them all in there as tight as you can, but be carfull that they arn't too close, so they don't collide at all on you lower resolution maps. Put the most important peices like the face in first with the size you want and build the other clusters around that.
    Nice work so far, I really like your approach and how you are taking the time to carfully plan things out. Most people make the mistakes first and ask questions later which certainly isn't the right way to do things. I look forward to seeing more!
  • Art1977
    Options
    Offline / Send Message
    Thx for your reply and sugesstions.

    Now i made for the xna - model 3 Maps. one for the assets including the armor pieces and the boots, one for the body including the shoulder plates and one for the head. It would be possible to include all in 2 texture maps, but i think there will be no problem in using 3 maps.

    I plan this wisley because my timeplan is very dense. I have to wrote the whole documentation after this (at the moment 96 pages, but there will follow a lot of pages about the xna and m3g part). My dateline for all of this is the 15. november. And unfortunately this blocks me in doing a properly well designed and detailled model. Maybe i will rework this model after this project.

    now i will start with the sculpting and detailling part in zbrush.
  • Art1977
    Options
    Offline / Send Message
    Started with Head Sculpting:

    Wip12.jpg
  • BradMyers82
    Options
    Offline / Send Message
    BradMyers82 interpolator
    Art, I like what you have done so far but I think you would see far better results if you rebuilt the low poly head based off the highpoly mesh. Originally, I assumed what you had there was simply for the purpose of a base mesh.
    That said, the high poly mesh looks really nice, and there is no reason that you can't capture that same look in your lowply with the polygon count you have currently on the low poly face. Using a program like polyboost in 3ds max can make this really easy. There are others also, you can retopologize in zbrush 3 (but it kind of sucks in my opinion) and if you can get on the beta testing crew, a really awsome program called topogun. Even, simply pushing verts just outside the high poly within your 3d app, could help a great deal.
    I know you said your time is limited, but I think if you took the steps to rebuild your low poly based soley on the high, you will get far more realistic models.
  • Art1977
    Options
    Offline / Send Message
    Thx Brad for your reply. Your advice is the same what i thought, but the main point is unfortunately the time factor. There are a lot of issues i would surly fix, but the time is running out. I will do this, when i´am finished and completly overwork the whole model. I think i will make a real Highpoly model with all assets and details i want.

    Unfortunately the mainbody area esspecially the arms are also not so good for the details i wanted to apply.
  • Art1977
    Options
    Offline / Send Message
    Progress of Sculpting:

    Wip13a.jpg

    Wip13b.jpg

    Wip13c.jpg
  • movento
    Options
    Offline / Send Message
    movento polycounter lvl 17
    Look pretty nice,but his legs look to short/small.
    The back seems to have to many poly's.I would get rid of those sharp edges on his nose,doesn't really look realistic IMO.
    The shape of the eyes needs work too.
    Keep it up.
  • Art1977
    Options
    Offline / Send Message
    Thanks for your advice.

    Little Update on the upper body.
    Wip14.jpg
  • Art1977
    Options
    Offline / Send Message
  • BradMyers82
    Options
    Offline / Send Message
    BradMyers82 interpolator
    Nice progress so far! Also, I am glad you fixed the chest area, because previously he looked like he had man boobs. I would probably lift his pecs up a bit more though. his chest looks a little off to me still. On the other hand it might look better once his arms are down in a more natural postion (once he is posed).
    Either way keep it up.

    Oh yeah, movento is right about the back, it can certainly be optimized more.
    You might be making the polycount but they can probably help more with the sillohete if placed in other areas.
  • Art1977
    Options
    Offline / Send Message
    Thx Brad for your advice. After your hint, i had the same opinion about the issue with the "boobs".

    I will try get the chest fixed, but i dont know if this possible. About the polycount in the back...i dont know, if could delete those edges without getting issues on my UVs, but i will try this afterwards. Unfortunately The heavy polycount on the back is a result of the edgeloops on the front.
  • Art1977
    Options
    Offline / Send Message
    Just a little more Update:

    Wip16a.jpg

    Wip16b.jpg

    Wip16c.jpg

    Wip16d.jpg

    Wip16e.jpg
  • Art1977
    Options
    Offline / Send Message
    I say good night and the next step will be textureing.

    But first some hours sleep:

    Wip17a.jpg

    Wip17b.jpg

    Wip17c.jpg

    Wip17d.jpg

    Wip17e.jpg
  • almighty_gir
    Options
    Offline / Send Message
    almighty_gir ngon master
    his torso looks very long for some reason... and his face looks a little strange, like he has this grimace that makes me feel like his face is being pulled back.
  • Art1977
    Options
    Offline / Send Message
    Thx almighty_gir for your tip. Unfortunately i can´t fix this at this stage. Maybe after the project, i will make a new head with some more gear on it.

    Ok, here the basic color + ao - pass and normal map. Any help / hint / crit. would be welcome:

    Wip18a.jpg
  • timwiese
    Options
    Offline / Send Message
    timwiese polycounter lvl 9
    I think at the moment the legs on the guy are looking a bit short, but I don't think it's because they are short I think it has a lot to do with the placement of the belt. The guys belt seems to be placed almost directly above his penis, while people usually wear their belts at their hips. Plus I think the muscles on the legs should run a little higher up they seem to connect a little too far down. all this is making the legs seem unnaturally short.

    As for the texture, I would say just keep working at the outfit it is looking nice so far, but for the face it's lacking a lot of natural skin tones such as yellows and reds and imperfections with the skin. Also the hairline and the eyebrows look too clean.
  • Art1977
    Options
    Offline / Send Message
    Thx Tim for your reply. Unfortunately major tweaking is very hard at this stage. I can´t place the belt at a higher position because of the bodyarmor.

    I updated the Head Texture.

    Head Update:

    Wip19.jpg
  • almighty_gir
    Options
    Offline / Send Message
    almighty_gir ngon master
    you're putting too much shadow detail into your texture, leave that to the normal map.
  • Art1977
    Options
    Offline / Send Message
    Ok thx, no problem. Thats just lowering the layerintensity of my AO-pass.
  • daslolo
    Options
    Offline / Send Message
    Technically an awesome model but you have lost the originality of your original drawing.
    Look at your proportions, I think that's where things changed.
    Also since you have nice UV, bake in a layer of Ambient Occlusion, tone down the color saturation of your texture maps and modulate them with the AO
  • Art1977
    Options
    Offline / Send Message
    daslolo wrote: »
    Technically an awesome model but you have lost the originality of your original drawing.
    Look at your proportions, I think that's where things changed.
    Also since you have nice UV, bake in a layer of Ambient Occlusion, tone down the color saturation of your texture maps and modulate them with the AO

    Thx for your help. Unfortunately at this stage it isn´t possible to change any major proportions and placements, because i started rigging.

    What i can do is changing textures. And i truly added the ambient occlussion to all of my parts. like here:

    AO_COLOR.jpg
  • Art1977
    Options
    Offline / Send Message
    Short riggingtest.

    i am already in the weighting progress:

    Rigging-Test
  • Art1977
    Options
    Offline / Send Message
    started with walkcycle, at the moment just the lower body:

    Walk Cycle
  • BradMyers82
    Options
    Offline / Send Message
    BradMyers82 interpolator
    Hey man, nice progress so far. Definitely do something with the texture on the eyes though. The whites of the eyes are way too white, making him look kinda like a doll. I think with just a few changes with the textures like the eyes, it should make a big difference. Nice work overall.
  • Art1977
    Options
    Offline / Send Message
    Thx man, unfortunately no time to fix this.

    I run into a major problem. I exported my skinned model as a fbx and tried to import it in my xna application, but i get this error:

    Fehler 1 Building content threw ArgumentOutOfRangeException: Das angegebene Argument liegt au
  • Art1977
    Options
    Offline / Send Message
    Unfortunately i will have stop at this state and start programming, because there are only 7 weeks remaining for all. (Writing the documentation included.)

    ProjectStop.jpg
  • lildragn
    Options
    Offline / Send Message
    lildragn polycounter lvl 17
    Art1977 wrote: »
    Thx Tim for your reply. Unfortunately major tweaking is very hard at this stage. I can´t place the belt at a higher position because of the bodyarmor.

    You won't be able to say that if an Art Director or higher ups wanted changes. Gotta learn to start scrapping things that aren't working. Never get attached to your creations ;) But I know I know it's for a thesis... tho it's an awful lot to put on one persons plate :S I kinda like the head without the NM, maybe reduce its intensity? Anyhoo good luck

    ~t
  • Art1977
    Options
    Offline / Send Message
    Oh no if i had the time, would be glad to do all the changes and tips from the poeple mentioned. Unfortunately i have to wrote my thesis and got to learn all the stuff from the beginning.

    I never modeled , textured, rigged and animated a complete char. Also i have to code a xna application AND a m3g application. Beside this, the writting of the thesis. At the moment i have 110 pages and this is about 1/3 of all which i have to write.

    Just 7 weeks remaining and a lot of stuff to do. I can Fix all these problems after i had done this project. For my thesis, a simple prototyp of a char would be enough. I think this stage is much more than a prototyp and enough work for thesis. Beside this fact, unfortunately the main focus on the grade for the thesis lies in the theoretical part and the writing of the thesis.
  • Art1977
    Options
    Offline / Send Message
    updated my post above.
  • Lonewolf
    Options
    Offline / Send Message
    Lonewolf polycounter lvl 18
    u might have some flipped UVs

    flip the uv of the wrong parts. bake and see if it helps
  • Art1977
    Options
    Offline / Send Message
    In Maya and Zbrush the Normalmap looks fine in my XNA - Applikation there are parts mirrored:
    XNA_NormalProblem01b.jpg

    XNA_NormalProblem01c.jpg


    XNA_NormalProblem01d.jpg
    //Deklaration und Initialisierung
    #define MaxBones 59 //setzt die Maximale Anzahl der verwendeten Bones fest
    float4x4 Bones[MaxBones];
    float4x4 View;
    float4x4 Projection;
    
    float3 lightDir1 = float3(1,1,1);
    float3 lightDir2 = float3(-1,-1,-1);
    
    //Vertexshader mit Tangent-Space Berechnung mit Rückgabewert output
    VS_OUTPUT VSNormals(VS_INPUT input)
    {
        VS_OUTPUT output;
        float4x4 skinTransform = 0;
        skinTransform += Bones[input.BoneIndices.x] * input.BoneWeights.x;
        skinTransform += Bones[input.BoneIndices.y] * input.BoneWeights.y;
        skinTransform += Bones[input.BoneIndices.z] * input.BoneWeights.z;
        skinTransform += Bones[input.BoneIndices.w] * input.BoneWeights.w;
        
        float4 pos = mul(input.Position, skinTransform);
        pos = mul(pos,View);
        pos = mul(pos,Projection);
        
        float3x3 tgtSpace;
        tgtSpace[0] = mul(input.Tangent, skinTransform);
      tgtSpace[1] = mul(cross(input.Tangent, input.Normal),skinTransform);
      tgtSpace[2] = mul(input.Normal, skinTransform);
      
      float3 tgtLightDir1 = mul(lightDir1, tgtSpace);
      float3 tgtLightDir2 = mul(tgtSpace, lightDir2);
          
      output.Position = pos;
        output.TexCoord = input.TexCoord;
        output.Data1 = normalize(tgtLightDir1);
        output.Data2 = normalize(tgtLightDir2);
        
        
        return output;
    }
    
    //Basis Normalmap - Shader
    float4 PSNormals(VS_OUTPUT input) : COLOR0 
    {
      float4 outColor = float4(1,1,1,1);
      float3 normal =  tex2D(N_Sampler, input.TexCoord);
        float diffuse = saturate(dot(normal, input.Data1)) +
                        saturate(dot(normal, input.Data2));
      return outColor * diffuse;
    }
    
    
    when i change the code to this:
    //Basis Normalmap - Shader
    float4 PSNormals(VS_OUTPUT input) : COLOR0 
    {
      float4 outColor = float4(1,1,1,1);
      [COLOR=Red][B]float3 normal = 2* tex2D(N_Sampler, input.TexCoord) -1.0;[/B][/COLOR]
        float diffuse = saturate(dot(normal, input.Data1)) +
                        saturate(dot(normal, input.Data2));
      return outColor * diffuse;
    }
    
    i get this render:
    XNA_NormalProblem01e.jpg

    XNA_NormalProblem01f.jpg

    When i map just my normalmap texture to the model everything is facing correct .

    XNA_NormalProblem01g.jpg
  • Art1977
    Options
    Offline / Send Message
    i can´t flip the uvs anymore. because i then i had to do all the baking, skinning, weighting, animation new.

    In Maya the Normals are all facing the in the same direction, but i rotated some pieces in the normalmap. like you can see here:

    http://www.d-mack.de/tmp/tmpPics/thesisWIP/XNA_NormalProblem01c.jpg[/img]

    I´am new to xna and hlsl shading programming. I think the calculation of the normals results in the light direction and the colors in the normal map.

    The colors in the normal map facing the right direction like you can see here:
    XNA_NormalProblem01g.jpg

    i would think the problem lies in the calculation in the tangent space normals and the light direction which will be done here:

    float3x3 tgtSpace;
    tgtSpace[0] = mul(input.Tangent, skinTransform);
    tgtSpace[1] = mul(cross(input.Tangent, input.Normal),skinTransform);
    tgtSpace[2] = mul(input.Normal, skinTransform);

    float3 tgtLightDir1 = mul(lightDir1, tgtSpace);
    float3 tgtLightDir2 = mul(tgtSpace, lightDir2);

    output.Position = pos;
    output.TexCoord = input.TexCoord;
    output.Data1 = normalize(tgtLightDir1);
    output.Data2 = normalize(tgtLightDir2);


    return output;

    and here:
    //Basis Normalmap - Shader
    float4 PSNormals(VS_OUTPUT input) : COLOR0
    {
    float4 outColor = float4(1,1,1,1);
    float3 normal = 2* tex2D(N_Sampler, input.TexCoord) -1.0;
    float diffuse = saturate(dot(normal, input.Data1)) +
    saturate(dot(normal, input.Data2));
    return outColor * diffuse;
    }

    before i layout out my uvs it looked so:
    I flipped the uvs for the red parts because the were duplicates of the right half of the character. And all pieces were blue before i layed out my uvs within the 0 and 1 coordinates. So i think, this is not the problem. (Correct me if i am wrong). But after i correct all, all uvs facing the same direction and were shaded blue.
    Wip11b.jpg

    if i compare to this pic
    de4_2.jpg
    this could not be the problem.

    Heres the layout of the final char with the uvs and the w- component all facing the same direction:
    XNA_NormalProblem01h.jpg
  • BradMyers82
    Options
    Offline / Send Message
    BradMyers82 interpolator
    Wow, Okay I have no idea what all this stuff you are showing means, but have you tried flipping the normals that are facing the wrong way in photoshop. If you have issues with one side and not the other, (like right side is good left side is bad) this will only invert which side is bad. But if you have both sides bad it should help. To do this I think its simply a matter of inverting the green value on the channles tab.
    I'm pretty sure I could help you with flipping the uv's if it was 3ds max, in maya I have no clue. Someone here on polycount has an answer though I'm sure.
  • Art1977
    Options
    Offline / Send Message
    I tried to use a custom shader in fx composer and also there the normal map looks fine with an other preset hlsl normal shader:

    XNA_NormalProblem01i.jpg

    when its right in maya (but its openGL) and right in fx composer (with directX), there should be a way to correct this within my shader.fx file.

    But unfortunately i very new to shader programming and have no clue where the fault in calculation for my normal map lies.

    In the XNA Forum i got this hint for solving the problem but because i just started with HLSL Shader Programming i don´t have the clue how to solve this:
    The problem is that you're re-constructing the tangent basis using a cross product, which doesn't take the flipped triangles into account. If you instead send all three (normal, tangent, and binormal/bitangent) to the vertex shader, and use them as-is, then it'll probably solve your problem, at the expense of 12 bytes per vertex (for a total of 36 bytes just for tangent basis)

    Some hard-core programmers store the entire tangent basis as a quaternion in four normalized signed shorts, with the sign of the W telling whether it's inverted or not, should you feel ambitious :-)

    Here´s my complete shader.fx code:
    //SkinnedModel HLSL - Shader Datei 
    
    //Deklaration und Initialisierung
    #define MaxBones 59 //setzt die Maximale Anzahl der verwendeten Bones fest
    float4x4 Bones[MaxBones];
    float4x4 View;
    float4x4 Projection;
    
    float3 lightDir1 = float3(1,1,1);
    float3 lightDir2 = float3(-1,-1,-1);
    
    //Deklariert die ColorTextur des Models
    texture Texture;
    sampler C_Sampler = sampler_state 
    {
      Texture = <Texture>; MinFilter = Linear; MagFilter = Linear; MipFilter = Linear;
    };
    
    //Deklariert die Normalmap-Textur des Models
    texture N_Texture;
    sampler N_Sampler = sampler_state 
    {
      Texture = <N_Texture>; MinFilter = Linear; MagFilter = Linear; MipFilter = Linear;
    };
    
    //struct-Definition für Vertexshader input
    struct VS_INPUT 
    {
    	float4 Position : POSITION0;
    	float2 TexCoord : TEXCOORD0;
    	float3 Normal : NORMAL0;
    	float3 Tangent : TANGENT0;
    	
    	float4 BoneIndices : BLENDINDICES0;
    	float4 BoneWeights : BLENDWEIGHT0;
    };
    
    //struct-Definition für Vertexshader output
    struct VS_OUTPUT 
    {
    	float4 Position : POSITION0; 
    	float2 TexCoord : TEXCOORD0;
    	float3 Data1: TEXCOORD1;
      float3 Data2: TEXCOORD2;
    };
    
    //Basis Vertexshader mit Rückgabewert output
    VS_OUTPUT VSBasic(VS_INPUT input)
    {
    	VS_OUTPUT output;
    	float4x4 skinTransform = 0;
    	skinTransform += Bones[input.BoneIndices.x] * input.BoneWeights.x;
    	skinTransform += Bones[input.BoneIndices.y] * input.BoneWeights.y;
    	skinTransform += Bones[input.BoneIndices.z] * input.BoneWeights.z;
    	skinTransform += Bones[input.BoneIndices.w] * input.BoneWeights.w;
    	
    	float4 pos = mul(input.Position, skinTransform);
    	pos = mul(pos,View);
    	pos = mul(pos,Projection);
    	float3 nml = mul(input.Normal, skinTransform);
    	nml = normalize(nml);
      output.Position = pos;
    	output.TexCoord = input.TexCoord;
    	output.Data1 = nml;
    	output.Data2 = 0;
    	
    	return output;
    }
    
    //Vertexshader mit Tangent-Space Berechnung mit Rückgabewert output
    VS_OUTPUT VSNormals(VS_INPUT input)
    {
    	VS_OUTPUT output;
    	float4x4 skinTransform = 0;
    	skinTransform += Bones[input.BoneIndices.x] * input.BoneWeights.x;
    	skinTransform += Bones[input.BoneIndices.y] * input.BoneWeights.y;
    	skinTransform += Bones[input.BoneIndices.z] * input.BoneWeights.z;
    	skinTransform += Bones[input.BoneIndices.w] * input.BoneWeights.w;
    	
    	float4 pos = mul(input.Position, skinTransform);
    	pos = mul(pos,View);
    	pos = mul(pos,Projection);
    	
    	float3x3 tgtSpace;
    	tgtSpace[0] = mul(input.Tangent, skinTransform);
      tgtSpace[1] = mul(cross(input.Tangent, input.Normal),skinTransform);
      tgtSpace[2] = mul(input.Normal, skinTransform);
      
      float3 tgtLightDir1 = mul(tgtSpace, lightDir1);
      float3 tgtLightDir2 = mul(tgtSpace, lightDir2);
      	
      output.Position = pos;
    	output.TexCoord = input.TexCoord;
    	output.Data1 = -2 * normalize(tgtLightDir1) +1;
    	output.Data2 = normalize(tgtLightDir2);
    	
    	
    	return output;
    }
    
    //Basis Pixelshader mit Textur
    float4 PSBasic(VS_OUTPUT input) : COLOR0 
    {
      float4 outColor = tex2D(C_Sampler, input.TexCoord);
    	return outColor;
    }
    
    //Diffuse Pixelshader mit 2 Lichtern
    float4 PSDiffuse(VS_OUTPUT input) : COLOR0
    {
      float4 outColor = tex2D(C_Sampler, input.TexCoord);
      float diffuse = saturate(dot(input.Data1, normalize(lightDir1)))+
                      saturate(dot(input.Data1, normalize(lightDir2)));
      return outColor * diffuse;
    }
    
    //Basis Normalmap - Shader
    float4 PSNormals(VS_OUTPUT input) : COLOR0 
    {
      float4 outColor = float4 (1,1,1,1);
      float3 normal =  tex2D(N_Sampler, input.TexCoord) ;
    	float diffuse = saturate(dot(normal, input.Data1)) +
    	                saturate(dot(normal, input.Data2));
      return outColor * (diffuse);
    }
    
    //Basis Normalmap - Shader als einfache Textur 
    float4 PSNormalsTexture(VS_OUTPUT input) : COLOR0 
    {
      float4 outColor = tex2D(N_Sampler, input.TexCoord);
    	return outColor;
    }
    
    //Definition der verwendeten Techniken. 
    
    //Grundtechnik mit Pixelshader und Vertexshader Version 1.1 
    technique SkinnedModelTechnique
    {
    	pass SkinnedModelPass
    	{
    		VertexShader = compile vs_1_1 VSBasic();
    		PixelShader = compile ps_1_1 PSBasic();
    	}
    }
    
    //DiffusTechnik mit Vertexshader 1.1 und Pixelshader 2.0
    technique DiffuseMap
    {
      pass Pass1
      {
        VertexShader = compile vs_1_1 VSBasic();
        PixelShader = compile ps_2_0 PSDiffuse();
      }
    }
    
    //Normalmap Technik mit Vertexshader 1.1 und Pixelshader 2.0
    technique BumpAsTexture
    {
      pass Pass1
      {
        VertexShader = compile vs_1_1 VSBasic();
        PixelShader = compile ps_2_0 PSNormalsTexture();
      }
    }
    
    //Normalmap Technik mit Vertexshader 1.1 und Pixelshader 2.0
    technique Bump
    {
      pass Pass1
      {
        VertexShader = compile vs_1_1 VSNormals();
        PixelShader = compile ps_2_0 PSNormals();
      }
    }
    
  • Art1977
    Options
    Offline / Send Message
    This is the problem which causes it all.XNA_NormalProblem01j.jpg


    But how could i calculate the Tangents, BiTangents and Normals correctly?
  • woogity
    Options
    Offline / Send Message
    Hey im new to the forum and was avoiding introducing myself until someone made a maya post on which i could be help. to alter your proportions at this stage in the game is a pain caus you have your skin rigged and animated already. but if you have a comprehensive skin and you took the time to set your retargeting pose to your base pose then its cake ( tho it will take a lil tweaking to clean it up).

    1.unskin your mesh.
    2.Select the parts of the mesh you want to change the scale on wether its in one mesh or multiples.
    3.combine them( this is temporary, it will not affect the uvs at all). 4.Selelct the vertxes in the now combined mesh to which the change is relevent.
    5.go animation menu create deformers and lattuce with the desired number of control points.
    6.once you achive your desired change in proportion select the mesh delete history and separate to get your armor pieces back to thir own meshes.

    go ahead and use the
    skeleton>edit smooth skin> move skinned joints tool to correct your rig for the new proportions.


    hope this was at least a lil helpful, like i said ti will take a lil tweaking but it does work. the company im with now is disorganized and i have to alter skinned models all the time.

    -gl
1
Sign In or Register to comment.