• Advertisement
  • Popular Tags

  • Popular Now

  • Advertisement
  • Similar Content

    • By KarimIO
      Hey guys! Three questions about uniform buffers:
      1) Is there a benefit to Vulkan and DirectX's Shader State for the Constant/Uniform Buffer? In these APIs, and NOT in OpenGL, you must set which shader is going to take each buffer. Why is this? For allowing more slots?
      2) I'm building an wrapper over these graphics APIs, and was wondering how to handle passing parameters. In addition, I used my own json format to describe material formats and shader formats. In this, I can describe which shaders get what uniform buffers. I was thinking of moving to support ShaderLab (Unity's shader format) instead, as this would allow people to jump over easily enough and ease up the learning curve. But ShaderLab does not support multiple Uniform Buffers at all, as I can tell, let alone what parameters go where. 
      So to fix this, I was just going to send all Uniform Buffers to all shaders. Is this that big of a problem?
      3) Do you have any references on how to organize material uniform buffers? I may be optimizing too early, but I've seen people say what a toll this can take.
    • By ANIO chan
      Hi, I'm new here and would like to get some help in what i should do first when designing a game? What would you consider to be the best steps to begin designing my game? Give resources with it as well please.
    • By lucky6969b
      How do you handle situations where the physics engine produces a 129x129 height field which results in 2M vertexes for every frame. The frame rate suffers a lot, and drops to 2-3 fps.
      Is there a way to reduce the traffic or burden over the graphics card? Is the technique of LOD and progressive mesh still apply?
    • By stale
      I've just started learning about tessellation from Frank Luna's DX11 book. I'm getting some very weird behavior when I try to render a tessellated quad patch if I also render a mesh in the same frame. The tessellated quad patch renders just fine if it's the only thing I'm rendering. This is pictured below:
      However, when I attempt to render the same tessellated quad patch along with the other entities in the scene (which are simple triangle-lists), I get the following error:

      I have no idea why this is happening, and google searches have given me no leads at all. I use the following code to render the tessellated quad patch:
      ID3D11DeviceContext* dc = GetGFXDeviceContext(); dc->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST); dc->IASetInputLayout(ShaderManager::GetInstance()->m_JQuadTess->m_InputLayout); float blendFactors[] = { 0.0f, 0.0f, 0.0f, 0.0f }; // only used with D3D11_BLEND_BLEND_FACTOR dc->RSSetState(m_rasterizerStates[RSWIREFRAME]); dc->OMSetBlendState(m_blendStates[BSNOBLEND], blendFactors, 0xffffffff); dc->OMSetDepthStencilState(m_depthStencilStates[DSDEFAULT], 0); ID3DX11EffectTechnique* activeTech = ShaderManager::GetInstance()->m_JQuadTess->Tech; D3DX11_TECHNIQUE_DESC techDesc; activeTech->GetDesc(&techDesc); for (unsigned int p = 0; p < techDesc.Passes; p++) { TerrainVisual* terrainVisual = (TerrainVisual*)entity->m_VisualComponent; UINT stride = sizeof(TerrainVertex); UINT offset = 0; GetGFXDeviceContext()->IASetVertexBuffers(0, 1, &terrainVisual->m_VB, &stride, &offset); Vector3 eyePos = Vector3(cam->m_position); Matrix rotation = Matrix::CreateFromYawPitchRoll(entity->m_rotationEuler.x, entity->m_rotationEuler.y, entity->m_rotationEuler.z); Matrix model = rotation * Matrix::CreateTranslation(entity->m_position); Matrix view = cam->GetLookAtMatrix(); Matrix MVP = model * view * m_ProjectionMatrix; ShaderManager::GetInstance()->m_JQuadTess->SetEyePosW(eyePos); ShaderManager::GetInstance()->m_JQuadTess->SetWorld(model); ShaderManager::GetInstance()->m_JQuadTess->SetWorldViewProj(MVP); activeTech->GetPassByIndex(p)->Apply(0, GetGFXDeviceContext()); GetGFXDeviceContext()->Draw(4, 0); } dc->RSSetState(0); dc->OMSetBlendState(0, blendFactors, 0xffffffff); dc->OMSetDepthStencilState(0, 0); I draw my scene by looping through the list of entities and calling the associated draw method depending on the entity's "visual type":
      for (unsigned int i = 0; i < scene->GetEntityList()->size(); i++) { Entity* entity = scene->GetEntityList()->at(i); if (entity->m_VisualComponent->m_visualType == VisualType::MESH) DrawMeshEntity(entity, cam, sun, point); else if (entity->m_VisualComponent->m_visualType == VisualType::BILLBOARD) DrawBillboardEntity(entity, cam, sun, point); else if (entity->m_VisualComponent->m_visualType == VisualType::TERRAIN) DrawTerrainEntity(entity, cam); } HR(m_swapChain->Present(0, 0)); Any help/advice would be much appreciated!
    • By RenderPixel
      I have just started writing shaders recently (a couple of weeks ago.) (Background info in another post here.) I decided to start with a basic phong shader. I understand (I think) the implementation of the diffuse and specular refleections. 
      Diffuse reflection = (N.L)
      Specular reflection = (R.V)^S   where s = specular power. 
      Reflection vector = 2* (N.L)*N-L
      I have a shader put together for fx composer 2.5 that is an attempt at the phong lighting model. (Shader code linked.) I have not added in the texture sample to the pixel shader output yet since I am trying to debug lighting model issues. The diffuse reflection works fine, however, the specular reflection is giving me some trouble. 
      The problem I am experience is that the specular reflection (shown here) seems to affect the back of the sphere. 
      When I saturate the specular reflection value I get this: (If saturate clamps input to min=0 and max=1, I do not know where these values on the back are coming from since negative values should just get clamped to 0.)

      If I remove the saturate from the specular reflection and add the difuse reflection to the specular reflection I get this.  (I will post an image of my diffuse reflection below to show how it looks on its own. )

      Diffuse reflection by itself. 

      What am I missing here?
      Also, I am completely open to feedback on my shader. I am looking to learn anything I can here.  Thank you in advance for your time.

  • Advertisement
  • Advertisement

3D What is the most efficient way to manage facial animation?

Recommended Posts

Lip-syncing and believable facial expressions.

I have Maya licence for 3 years, but I haven't explored this aspect yet, as I've focused on mechanistic animations so far. I was wondering if there is a specialized software outside of Maya  that would make this very easy and quick. I would only need it for 3-5 characters, but I suppose I could use the exact same facial animation mechanism for all of them.

If you are an experienced Maya user, I would appreciate your response even more. If the easy and quick solution already exists in Maya 2018, I would hate the expenditure of an additional specialized software(also, how time-consuming would it be if you have about 1000 words of dialog).





Edited by Armantium

Share this post

Link to post
Share on other sites
3 hours ago, Armantium said:

What about specialized software?

Maya is specialized software. Maya has motion capture (so does Max, Blender and any 3D software worth having) all you need to do is spend a year or two learning how it works so that you can get AAA quality animations.

With just a month of practice you will be able to create usable animations.


There is motion capture software that is easier to use than Maya, it will unfortunately not help you as much as you think. Those kind of software is easier to use because it can't do much, you get very noisy results that have to be fixed by hand.

Then there is the problem of getting the animation into a form you can use. If you do the motion capture in Maya you can just render when done or export to game using FBX format that supports skinned animation and morph targets. Where the other software will need to be imported into Maya and then you will need to convert (often from animated vertices) to both bone animation and morph targets.


There is no easy go to tool for animations, if there was Mass Effect Andromeda would not have had the problems it did. If you want high quality animations and don't want to spend the time learning to make them then hire a artist who already did spend the time learning it.

Share this post

Link to post
Share on other sites
1 minute ago, Scouting Ninja said:

 Mass Effect Andromeda would not have had the problems it did

I thought that was due to rampant feminism and neomarxism, they actually hired a cosplaying SJW to do the animations.

Plus the talk about the engine not being good for RPG format.

Share this post

Link to post
Share on other sites
10 minutes ago, Armantium said:

I thought that was due to rampant feminism and neomarxism

No the artist where told to use a new animation tool as part of the tools marketing. So more than 70% of the animations where generated. Generated content uses noise to create the info that isn't there.

So you got weird lip snaring because of the noise and muscle spasms. The looking into the distance thing was caused because the key frames of the animation is to far apart and the tool then average out the result. So if you had a eye looking at a vector (0,1,0) and one at (0,0.5,0) then the tool would provide (0,0.75,0) for all in-betweens.

The idea was that Animators would only do a frame every X steps, motion capture would fill it and the tool would smooth it. This all happened because the largest part of any game team is the animation site.


You can research this on the web, it was big news when it happened.

Edit: Even if you had the worst actors in the world your animators can fix it. That is why voice actors went on strike because they where often told to also do motion capture.


Edited by Scouting Ninja

Share this post

Link to post
Share on other sites

Actually, I could use this trick instead - 

The smaller screens of the characters are in conversation loops, but in a subtle, barely noticable way.

The exact technique is used here too inside a combat mission -

There is obviously no lip-syncing but the "interference" effect on the screen covers for this.

What do you think, is this the most efficient way to solve this?

Share this post

Link to post
Share on other sites
9 hours ago, Armantium said:

What do you think, is this the most efficient way to solve this?

Solve it how you feel fits your game. There are many ways to go about this. On the technical level they will all be more or less the same.

The time it would take to lip-sync is fast unless you plan to mimic the words 100%. So you can go that way also.

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Advertisement