Home Technical Talk

UDK Directx 11 Tesselation

polycounter lvl 14
Offline / Send Message
Cathodeus polycounter lvl 14
Hello,


I enabled udk to be directx11 made a shader (seems to be ok), but nothing is happening corectly ... What is the problem ?

Please take a look at that picture.

My GPu is an ATI Radeon 5700 HD (Directx11 ready normaly).

directx11t.jpg

Replies

  • JamesWild
    Options
    Offline / Send Message
    JamesWild polycounter lvl 8
    Can't tell:
    -What it's supposed to do
    -What it's actually doing
    -What your maps look like
    -What any of the nodes are
    -Can't see about 60-80% of your material

    A better screenshot showing your entire material at a decent resolution will help hugely. What're you putting in and what're you expecting out?
  • Cathodeus
    Options
    Offline / Send Message
    Cathodeus polycounter lvl 14
    No i can't give a better screenshot sorry. It's a company test.

    My problem is that the triangle created by the tesselation are big. And if i increase the tesselation multiplier nothing happen ...
  • JamesWild
    Options
    Offline / Send Message
    JamesWild polycounter lvl 8
    There is a limit on the number of subdivisions that can be performed, it's been a while since I've used tessellation, can't recall it and it might even be vendor specific. In any case, it looks like you're trying to totally define a shape with tessellation, which is really not a good idea as without being able to control the placement of the edge loops you get a very uneven look as above. It's used more for refinement of shapes such as curves.
  • roosterMAP
    Options
    Offline / Send Message
    roosterMAP polycounter lvl 12
    for me, tessellation has only worked for organic models like rocks and trees and such. for hard surface tiles and things with angles and extrudes, its always better to use a pixel shader like parralax mapping or something.
  • Cathodeus
    Options
    Offline / Send Message
    Cathodeus polycounter lvl 14
    This is really possible [ame="http://www.youtube.com/watch?v=Ayoaq5SSSeA"]UDK dx11 examples - YouTube[/ame]

    I must apply my texture to a flat plane, so i use the udk basic plane mesh. My problem is that if i use 1,1 as tesselation multiplier or 10,10 nothing change ! The tesselation stay the same ...
  • Oniram
    Options
    Offline / Send Message
    Oniram polycounter lvl 16
    in your case it looks like you're using tessellation on something thats hard surface, dare i say sci-fi or industrial. in general thats a no no. you'll ruin your mesh's "hard surfaces" with the triangulation. best to use parallax (bump offset in udk).. or just model it in.

    i made a video a while back that explains how to work tessellation in udk. skip to 28:30 for that.
    http://vimeo.com/39584259
  • JamesWild
    Options
    Offline / Send Message
    JamesWild polycounter lvl 8
    Tessellation really isn't that powerful, most of those textures used there rely on large details such as chunks of rock. I don't think it was reproducing the smaller details well. Use it to refine surfaces, not create them from scratch. It's like modelling with the terrain editor otherwise.
  • gsokol
    Options
    Offline / Send Message
    Well, did you look at the number of triangles it creates when it tessellates?

    One thing...you do have an error in your displacement.

    By default, UDK displaces in world space. Most of the time, your going to want to be in tangent space. You need to run the result of your lerp through a vector transform node and shift it to tangent space before it goes into the world displacement slot.

    Seems like your plane is trying to displace directly up, instead of out...so that might help.
  • Cathodeus
    Options
    Offline / Send Message
    Cathodeus polycounter lvl 14
    Yes in wireframe the number of triangles don't change even if i modify the tesselation multiplier. Seems to be hardware relative !

    I gave up with the bump offset it gave me really bad result. It duplicate the texture instead of repeating the last displaced pixel. While with tesselatation the last pixel is used for the extrusion.

    offsetproblem.jpg
  • alfalfasprossen
    multiply your height information (the b-channel, aka z-axis should suffice) with a WorldNormal Node. In my experience, that works better than using a vector transform.
    when you have hard surface stuff, you might consider NOT using PN-Triangles, as this smoothes your whole mesh before applying the displacement. Use Flat instead.

    an yes, bump offset sucks ;)

    Oh, and make sure your heightmap is NOT sRGB degammaed, or you will get crazy displacement values. (you can uncheck sRGB in your texture properties)
    elsewise you might multiply with a .4545 value to do the degamma yourself or so, but i never tried that in udk
  • Cathodeus
    Options
    Offline / Send Message
    Cathodeus polycounter lvl 14
    Bump offset sucks ! This is a really awsome nasty feature :-) But as i told i can't use tesselation. When i change the tesselation factor nothing happen (the tesselation don't increase at all) !

    I got a question for person able to increase the tesselation : "What is your GPU ?" I'll be buying a new GPU, what is your advice guys ?

    I solved my problem using a parallax mapping method, available on Unreal developer network.

    Wich is far away better than bump offset. I'll be using it as long as i don't change my GPU.
  • Santewi
    Options
    Offline / Send Message
    Tessellation factor only changes the distance where the tessellation happens, not the maximum amount of tessellation.

    And no shit parallax offset is better than bump offset. It's also a lot more expensive...

    Is there a reason you can't just have a higher poly model?
  • gsokol
    Options
    Offline / Send Message
    Um...what parallax mapping method are you using?

    Bump offset = Parallax mapping in UDK:

    http://udn.epicgames.com/Three/MaterialsCompendium.html#BumpOffset
  • Santewi
    Options
    Offline / Send Message
    He is most likely using the parallax occlusion material found on the UDN.
  • Cathodeus
    Options
    Offline / Send Message
    Cathodeus polycounter lvl 14
    Yes there is a reason i can't use an higher polycount model, i'm asked to apply my material to a flat plane ! Number of instructions are unlimited because it's just a company test that will be use to check my texturing skills.

    Are you really sure that "Tessellation factor only changes the distance where the tessellation happens" if so what define the amount of tesselation ?

    Why on the first picture of this topic the triangles seems to be really big ? How can i increase the number of tesselation ?
  • Oniram
    Options
    Offline / Send Message
    Oniram polycounter lvl 16
    if the goal is for them to see your texturing skills then why bother even using tessellation on something that typically would never be tessellated in the first place.
  • Cathodeus
    Options
    Offline / Send Message
    Cathodeus polycounter lvl 14
    I want to use tesselation, i have a direct x 11 Gpu it doesn't work so i want to understand why.

    @Oniram if i want to use it there's a reason. (I can't explain everything here).

    So i re ask my questions please don't answer if you don't have an answer.

    1. Are you really sure that "Tessellation factor only changes the distance where the tessellation happens" if so what define the amount of tesselation ?

    2. Why on the first picture of this topic the triangles seems to be really big ? How can i increase the number of tesselation ?

    3. For person able to use the tesselation what is you GPU ?
  • Santewi
    Options
    Offline / Send Message
    Cathodeus wrote: »
    I want to use tesselation, i have a direct x 11 Gpu it doesn't work so i want to understand why.

    @Oniram if i want to use it there's a reason. (I can't explain everything here).

    So i re ask my questions please don't answer if you don't have an answer.

    1. Are you really sure that "Tessellation factor only changes the distance where the tessellation happens" if so what define the amount of tesselation ?

    2. Why on the first picture of this topic the triangles seems to be really big ? How can i increase the number of tesselation ?

    3. For person able to use the tesselation what is you GPU ?



    1. Yes. In older versions of UDK you could control amount of tessellation but they changed it.

    Right now it works like this: if you have, lets say, constant 1 plugged into the tessellation factor, the mesh starts to get tessellated once you get within 10 metres of the mesh. Then if you use a tessellation factor of 5, the mesh starts to get tessellated when you get within 50 metres.


    2. The triangles are rather big most likely because your base mesh is a flat plane and I'd assume it's two triangles. You can subdivide the base mesh a few times to get a higher base polycount, and therefore resulting in a higher poly mesh when tessellated.

    As far as I know, the maximum tessellation factor is pretty much every new graphics card is 64. Meaning that you can only tessellate the mesh 64 times and when your base polycount is that low you cannot tessellate it enough to get fine details.

    It really helps if you know what tessellation does...


    3. I have a 6950 and I don't use tessellation because the performance (especially in UDK) is just horrible.
  • Cathodeus
    Options
    Offline / Send Message
    Cathodeus polycounter lvl 14
    @Santewi : Thanks a ton for your answers ! Crystal clear !
  • passerby
    Options
    Offline / Send Message
    passerby polycounter lvl 12
    ya can be a good practice to give your walls and other flat low poly thigns a few divisions for both tessellation and so you got more verts to carry data for the shader, such as if you wanted to bake AO to vert colour, or use a vertex blend shader.
Sign In or Register to comment.