Jump to content

Animated shaders and workflow


YouGroove
 Share

Recommended Posts

LE3 in V3.1 uses now "animated shaders"

That means animated models won't animate if you don't use some "animated shader"

 

Never seen that elsewhere, specific shaders for animated characters or models.

 

This is related to shadows on animated models or because of skinning done on shaders ?

Ot it is some big programming shortcut ?

 

Usually like done previously, any shader worked with models could they be animated or not.

This just downgrade the possibilities, as any new material like Glow, or new one you write could not work on animated models or would need to be converted.

 

Animation or shadows even if done on GPU should be separated from rendering at maximum.

 

If one evolve like animation or shadosw, the impact will be too great : change all shaders.

I just hope LE3 to come back on the track and allow any shader on animated characters.

Stop toying and make games

Link to comment
Share on other sites

Ah your talking about the skinning shader

 

Rich source of confusion that skinning and animation means differenting to shaders than to modelers ^^

 

http://en.wikipedia.org/wiki/Skeletal_animation

 

"In most state-of-the-art graphical engines, the skinning process is done on the GPU thanks to a shader program"

 

Basically its done on a shader because due to parallelization it's much, much faster than doing it on cpu - or as Josh likes to claim it's free, that is not entirely true but it's close enough

 

 

 

Edited to fix wikipedia quote screwing up the post

Edited by Guppy

System:

Linux Mint 17 ( = Ubuntu 14.04 with cinnamon desktop ) Ubuntu 14.04, AMD HD 6850, i5 2500k

Link to comment
Share on other sites

Perhaps but why not keep it separate ?

1- Skinning shader

2- Graphic shader

Two calls instead of one is not what will really make a difference , as 3.1 don't have any optimization systems for now.

This really break down a lot the possibilities for characters or any animated models and shaders.

 

Shader Workflow and portability broken down caus skinning is "mixed" with graphic display.

 

shaderSkin_fullLayer.jpg

Stop toying and make games

Link to comment
Share on other sites

Skinning is done in a shader because it is multiple times faster than on cpu.

Nearly any modern engine uses seperate shaders for skinned animation.

On most of them you might not notice it because they preparse shader code and use #define statements or other methods

to branch one shader into multiple ones.

This was the way LE2 did it. While it is easier for the enduser to just have one shader (sometimes called "ubershader" or "godshader") it is not that easy to implement the correct branching and parsing structure. Also you are mainly dependend from one shader and everything needs to be included in it. So just creating a eg. phong shader and share it with the community wouldn't be that easy.

  • Upvote 1
  • Intel® Core™ i7-8550U @ 1.80 Ghz 
  • 16GB RAM 
  • INTEL UHD Graphics 620
  • Windows 10 Pro 64-Bit-Version
Link to comment
Share on other sites

Nearly any modern engine uses seperate shaders for skinned animation.

 

 

All engines have Skinned performed by hardware than CPU from lot of years.

That's the point any modern engine use a separate shader for skinned animation , and they use separate shaders for graphic rendering also.

 

 

On most of them you might not notice it because they preparse shader code and use #define statements or other methods

to branch one shader into multiple ones.

This was the way LE2 did it. While it is easier for the enduser to just have one shader (sometimes called "ubershader" or "godshader") it is not that easy to implement the correct branching and parsing structure. Also you are mainly dependend from one shader and everything needs to be included in it. So just creating a eg. phong shader and share it with the community wouldn't be that easy

 

Actually the problem is MERGING Skinning and graphic rendering on same shader

That's not the way UDK works for example.

 

 

Unfortunatelly, People using LE3 are mainly coders and actually will use Diff/Norm/Spec shader for characters, so it won't be needs for other character shaders like light scattering , glow or other stuff ....

 

So let it be like that.

Stop toying and make games

Link to comment
Share on other sites

UDK makes the same as LE, but under the hood. UDK has a really advanced material-system which generates the shader on demand. Their material system is more or less a bunch of multiple scripts which are later compiled to the target shader language. (like the flowgraph in LE) Under the hood UDK as well has several (if not much much more ) predefined shader templates which are used depending if the model is animated, opaque or something completely different.

 

Could Leadwerks do the same? Yes, theoretically. To be honest i believe such a system needs a lot of manpower and time to make it stable and usable. (the things needs to be optimized, optional compilation pathes based on gpu, etc. ) So currently Leadwerks is going the easy and stable way, instead of delivering something unfinished which might be more complicated than the system right now.

 

PS: Leadwerks is not UDK and will never be.

  • Upvote 2
  • Intel® Core™ i7-8550U @ 1.80 Ghz 
  • 16GB RAM 
  • INTEL UHD Graphics 620
  • Windows 10 Pro 64-Bit-Version
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...