Home Technical Talk

Direct x 11 Tesellation and parallax map question

polycounter lvl 14
Offline / Send Message
NAIMA polycounter lvl 14
Hi I have seen the awesome videos of tessellation enabled environments with direct x 11 , tough my question is what does it need to achieve those reliefs? A normal parallax map or there is a new entry in the subject like a tessellation map or what?

Replies

  • Surfa
    Options
    Offline / Send Message
    Surfa polycounter lvl 12
    You would use a displacement map in order to take advantage of all the nice new geometry.
  • NAIMA
    Options
    Offline / Send Message
    NAIMA polycounter lvl 14
    of what kind? black and white? Normal map ? PArallax map ? Or a new one?
  • [HP]
    Options
    Offline / Send Message
    [HP] polycounter lvl 13
    I'm not really sure if I understand your question, but for us artists all we need is a height map in the alpha channel of the normal map, the engine / shader does the rest.

    But yes, you do need a dx11 graphic card.
  • Ben Apuna
    Options
    Offline / Send Message
    Here's to hoping they will be vector displacement maps, rather than "pain old" displacement maps.
  • NAIMA
    Options
    Offline / Send Message
    NAIMA polycounter lvl 14
    Ben Apuna wrote: »
    Here's to hoping they will be vector displacement maps, rather than "pain old" displacement maps.

    isnt this vector displacement the same as normal map?
  • BeatKitano
    Options
    Offline / Send Message
    BeatKitano polycounter lvl 16
    Probably what HP said for the time being, when the majority of customers are equipped with dx11 cards maybe we'll see vector maps and such.
  • r_fletch_r
    Options
    Offline / Send Message
    r_fletch_r polycounter lvl 9
    NAIMA wrote: »
    isnt this vector displacement the same as normal map?
    similar ideas but not the same thing. A normal map only going to give you the direction, not the distance to displace.

    Out of interest to those who have experience with the subject, is the displacement storable in the magnitude of the vector? kind of like a bent normal map.
  • EarthQuake
    Options
    Offline / Send Message
    A "parallax" map is just a standard displacement map.
  • HAL
    Options
    Offline / Send Message
    HAL polycounter lvl 13
    r_fletch_r wrote: »

    Out of interest to those who have experience with the subject, is the displacement storable in the magnitude of the vector? kind of like a bent normal map.

    hmmm you would need to add two steps in order to do that, first get the length ( the length would be the magnitude of the displacement) of the vector (for now called n, n € R^3) by calculating |n| and then calculate your normalized normal vector by dividing it with |n| again ( n0= n/|n| ) I guess it would be better for the performance to just store it in a texture :poly121:

    e:// on the other hand you would save memory... I dont know does anybody of you know if this is applicable or if it is used anywhere?
  • CrazyButcher
    Options
    Offline / Send Message
    CrazyButcher polycounter lvl 18
    HAL, what you say sounds a bit weird, in the end you want

    position + displacement

    why would you need to mess with the vector at all? just like r_fletch_r said you can use the magnitude of the normal just as is. It's mostly a matter of precision, but essentially your normal-map stores "direction + length".
  • HAL
    Options
    Offline / Send Message
    HAL polycounter lvl 13
    Hm then I got something wrong, I thought that the normal maps vectors are normalized?!

    When they are what you say they are, sure both of you are right sry for me messing things up here XD

    and yeah you can get that displacement then :)
  • r_fletch_r
    Options
    Offline / Send Message
    r_fletch_r polycounter lvl 9
    HAL wrote: »
    Hm then I got something wrong, I thought that the normal maps vectors are normalized?!

    When they are what you say they are, sure both of you are right sry for me messing things up here XD

    and yeah you can get that displacement then :)

    Yes, but if you didn't normalise them and instead stored a displacement value in the magnitude of the vector. You would have direction and magnitude. It doesnt need to be normalised if its not being used for lighting.
  • JValencia
    Options
    Offline / Send Message
    JValencia polycounter lvl 10
    How can we get/render Vector Displacement maps? They look helpful for sculpting in Mudbox, as shown in the Polycount wiki: http://wiki.polycount.com/VectorDisplacementMap
  • r_fletch_r
    Options
    Offline / Send Message
    r_fletch_r polycounter lvl 9
    Mudbox can bake them :P

    aside from that off the top of my head Modo, 3D Coat, X Normal
  • SpeCter
    Options
    Offline / Send Message
    SpeCter polycounter lvl 14
    I don´t know about Mental Ray or Scanline, but with Vray you can use VRayVectorDisplBake
    to render out Vector Displacement Maps.
  • JValencia
    Options
    Offline / Send Message
    JValencia polycounter lvl 10
    Well Xnormal/Mudbox seems to be what I can probably use from those options. Thanks! Hmmm... I wonder if we could use them in Unreal =) Time to test
  • SpeCter
    Options
    Offline / Send Message
    SpeCter polycounter lvl 14
    I think you need a special shader for that(Correct me if Unreal Engine comes with VDM support)
  • r_fletch_r
    Options
    Offline / Send Message
    r_fletch_r polycounter lvl 9
    Id say so too, otherwise we'd be seeing Displacement all over the shop.


    Specter: max supports rendering those maps in mentalray with a plugin written by wayne robson. It was called Psycho Core, Wayne stopped distributing it becuase of the amount of support requests people were sending him (it was free).
  • NAIMA
    Options
    Offline / Send Message
    NAIMA polycounter lvl 14
    So in few words ...

    Normal maps are not vector maps

    Vector maps have an extra info on distance of displacement?

    Tessellation will need vector maps?
  • r_fletch_r
    Options
    Offline / Send Message
    r_fletch_r polycounter lvl 9
    NAIMA wrote: »
    So in few words ...
    Normal maps are not vector maps
    They arent Vector displacement maps. the are a image map full of vectors tho :)
    NAIMA wrote: »
    Vector maps have an extra info on distance of displacement?
    yes.
    NAIMA wrote: »
    Tessellation will need vector maps?

    Tesselation is just the division of faces. It can be used for a few things. displacement being one of them


    What i wonder is how these things are calculated. can they even be generated between arbiary meshes? Its very hard to imagine how.

    I mean for a mesh sculpted from a base it would I imagine be relatively simple to work out the transformation.. infact you probably allready have the information in memory on a per vertex basis... but how the hell would it work between arbitary meshes.
  • pior
    Options
    Offline / Send Message
    pior grand marshal polycounter
    While on topic - anyone knows of a game engine (or demo environment) letting us play with that ? I think I remember marmoset having the option to toggle parallax on and off, but is it actually fetching the height data somewhere, or is it just guess-timating from the normalmap ?
  • EarthQuake
    Options
    Offline / Send Message
    Marmo loads the displacement from normal map alpha. Real displacement will be in the next toolbag release, provided you have the proper setup to run it(dx11 card on a supported OS like win7/vista).
  • NAIMA
    Options
    Offline / Send Message
    NAIMA polycounter lvl 14
    If I heard well Cryengine 3 will be set so that will use direct x 11 potentiality is that true?
  • r_fletch_r
    Options
    Offline / Send Message
    r_fletch_r polycounter lvl 9
    pior wrote: »
    While on topic
    Apologies, I get side tracked.
  • JValencia
    Options
    Offline / Send Message
    JValencia polycounter lvl 10
    I am using the November 2010 version of Unreal and the material editor now has the options for "Displacement" and "Tessellation Factors." There is also an option at the bottom to set the type of tessellation, but you need DX11 to make it work. I don't have a DX11 card so I can't test it. Anyone want to try it? I am sure the February version of UDK has added more features to it.
  • KonginChains
    Options
    Offline / Send Message
    KonginChains polycounter lvl 12
    guys anyone know which engine now supports displacement and tessalation mapping much as what this video here shows of the cry engine 2. http://www.youtube.com/watch?v=ON8fU2RWyK4&feature=share

    correct me if i am wrong, but the cry engine is not freeware open source yet like UDK is right? Which leads me to ask if the other favored engines like udk unreal engine and marmoset has this feature in it.

    i believe this will take away the retopology workflow for good if we can just use our lores base cages as the final mesh. awesome..
  • Ark
    Options
    Offline / Send Message
    Ark polycounter lvl 11
    You can get Sandbox 3 if you have Crysis 2, otherwise you'll have to wait til August i believe before you'll see any kind of UDK type release for Cryengine 3.
  • almighty_gir
    Options
    Offline / Send Message
    almighty_gir ngon master
    pasting from a thread i made in the UDK forum:


    dragon_test_1.jpg

    dragon_test_2.jpg

    dragon_test_3.jpg

    dragon_test_4.jpg

    these images show firstly, the material setup used, and secondly it's effect. it tesselates the mesh based on camera distance (if you just use a constant2vector node, the mesh will be permanently tesselated, which is bad for performance). the alpha channel in the normalmap just housed a regular grayscale displacement map.

    now... if i'm looking at the material input nodes, could the world position offset node be used for the vector displacement map? or rather... could you use the RGB channels for the vector map, and the alpha channel for displacement, and simply plug RGB into world position offset, and alpha into displacement? or is that not how it works?
  • KonginChains
    Options
    Offline / Send Message
    KonginChains polycounter lvl 12
    @almighty gir: are you using a vector displacement map for this? Seeing the maps you've plugged, it doesn't look like a vector displacement map, like the ones generated inside mudbox.
  • almighty_gir
    Options
    Offline / Send Message
    almighty_gir ngon master
    wow... i don't think i could have been any more clear.

    "the alpha channel in the normalmap just housed a regular grayscale displacement map."

    i generated the displacement map in xnormal, i'm currently unaware of how to render out vector displacement maps, if i could, i'd be experimenting already. but at this point i'm focusing on getting my art good, and learning the tech later.
  • KonginChains
    Options
    Offline / Send Message
    KonginChains polycounter lvl 12
    i see, does udk support vector displacement maps though.. i can't tell if the one from the video i posted above is a vector displacement or a regular grayscale one. Sorry for the confusions.
  • 16bit
    Options
    Offline / Send Message
    16bit polycounter lvl 13
    I have a question about Tessellation in UDK. My mesh cracks at the seams between smoothing groups and uv islands. My question is how can I fix it?
  • Ace-Angel
    Options
    Offline / Send Message
    Ace-Angel polycounter lvl 12
    How much padding you have? Usually you need 8+ for Tesselation last I heard.
  • 16bit
    Options
    Offline / Send Message
    16bit polycounter lvl 13
    It's not using one atm. I just applied a PN-triangle tessellation on my mesh and it cracks some times at uv seams and smoothing groups. The mesh I am using is part of a car that I planned on using Tessellation on instead of normal maps. Epic games has acknowledged the problem on their UDN page but gave no information on how to correct it.

    ReflectionUpdate.png

    Here's a picture demonstrating the problem. The sides of the "wheel's" crack open. I know this thing wasn't designed for tessellation. But I took the high resolution bumper I use for baking and brought it into udk and it cracked at uv seams and smoothing groups. I don't have a picture since I am at school. But the one I posted above should demonstrate what I'm talking about.
  • Xendance
    Options
    Offline / Send Message
    Xendance polycounter lvl 7
    16bit wrote: »
    It's not using one atm. I just applied a PN-triangle tessellation on my mesh and it cracks some times at uv seams and smoothing groups. The mesh I am using is part of a car that I planned on using Tessellation on instead of normal maps. Epic games has acknowledged the problem on their UDN page but gave no information on how to correct it.

    ReflectionUpdate.png

    Here's a picture demonstrating the problem. The sides of the "wheel's" crack open. I know this thing wasn't designed for tessellation. But I took the high resolution bumper I use for baking and brought it into udk and it cracked at uv seams and smoothing groups. I don't have a picture since I am at school. But the one I posted above should demonstrate what I'm talking about.

    Edit: Seriously though, I don't think there is any solution to your problem, other than doing something to your model and the UV's and smoothing groups.
  • Surfa
    Options
    Offline / Send Message
    Surfa polycounter lvl 12
    Yeah the only 'solution' is to have only one smoothing group and try to hide the uv-seams as well as possible.
  • EarthQuake
    Options
    Offline / Send Message
    16bit wrote: »
    It's not using one atm. I just applied a PN-triangle tessellation on my mesh and it cracks some times at uv seams and smoothing groups. The mesh I am using is part of a car that I planned on using Tessellation on instead of normal maps. Epic games has acknowledged the problem on their UDN page but gave no information on how to correct it.

    ReflectionUpdate.png

    Here's a picture demonstrating the problem. The sides of the "wheel's" crack open. I know this thing wasn't designed for tessellation. But I took the high resolution bumper I use for baking and brought it into udk and it cracked at uv seams and smoothing groups. I don't have a picture since I am at school. But the one I posted above should demonstrate what I'm talking about.

    Honestly I think its a bit counter intuitive to use displacement on an object like this, certainly just using enough geometry in an optimized fashion to get the proper curves would result in better performance than sub-dividing your model to 10,000,000 tris or whatever you need to do to get this effect.

    In addition to that, displacement maps are not a replacement to normal maps. You will still need normal maps, especially in the distance where LODing on your displacement will mean the loss of important details. So when you think about it that way, you need to use a normal map *anyway* you're better off just making a nice looking lowpoly with normals.

    Just use 2x the tricount you normally would, i'm sure you will get a very nice and very round result, that will still run better than slapping displacement on an object like this, and of course, cause less trouble.
  • JordanW
    Options
    Offline / Send Message
    JordanW polycounter lvl 19
    EQ is right, you really won't gain anything from using tessellation on hard surfaces. Also you cannot use a displacement instead of a normal map, they have to be used together. Displacement doesn't affect lighting only shadowing and silhouette so you still need a normal map to get per-pixel lighting changes.

    Also Pn cracks along UV seams and smoothing group seams unless you can bake your heightmap using PN tessellation (not sure of a baker out there that does this).
  • 16bit
    Options
    Offline / Send Message
    16bit polycounter lvl 13
    Well, no, I didn't inted on giving it a displacement map. Honestly what I was going to do was just use the first level of subdivision from Turbosmooth of my hi resolution model.

    adderfinalingame.png

    It looks like this (old picture sorry). It gives me more than enough polygons to give it a nice smooth silhouette. I imported the car with it's smoothing groups and it cracks at them. The cracks aren't noticeably big, but can be seen if you are specifically looking at them?

    -edit- This picture does now show the tessellated version. It doesn't even have uv's.

    By the way, the tessellated car I posted up there was this model.
    Goochel.png

    I figured I could just skip the normal map since it wouldn't provide any useful information since there was more than enough polygons to show the detail.
  • equil
    Options
    Offline / Send Message
    put the seams on areas that have normals facing in the same direction (flat areas) and hope for the best. There isn't a solution for this with PN-tesselation right now (unless you tag your geometry, but udk doesn't support that). Dunno what kind crytek are using though.

    ps vector displacement probably isn't going to get popular in games ever (except for flat surfaces?), since you have to uv map your highpoly to match your low poly's uvs exactly.
  • JordanW
    Options
    Offline / Send Message
    JordanW polycounter lvl 19
    Sorry I also meant to mention that Pn also doesn't affect lighting. There really is no benefit to using it for a hard surface like this, the geometry it creates is way more messy than turbosmooth and doesnt work like SubD's anyway, it overshoots angles, creates cracks, etc....
  • EarthQuake
    Options
    Offline / Send Message
    Yeah, not to mention the fact that you are sub-dividing a triangulated mesh as well.

    I think you should do a bit more research on standard asset creation workflows, as this seems a bit half-baked.
  • almighty_gir
    Options
    Offline / Send Message
    almighty_gir ngon master
    now... if i'm looking at the material input nodes, could the world position offset node be used for the vector displacement map? or rather... could you use the RGB channels for the vector map, and the alpha channel for displacement, and simply plug RGB into world position offset, and alpha into displacement? or is that not how it works?

    could EQ or Jordan maybe help with this? also, what (in your opinions) are the most optimal settings in xnormal (or the app of your choice) for generating your hightmaps?
Sign In or Register to comment.