Per-Pixel Displacement Mapping with Distance Functions...

Discussion in 'Architecture and Products' started by j^aws, Feb 17, 2005.

  1. j^aws

    Veteran

    Joined:
    Jun 1, 2004
    Messages:
    1,909
    Likes Received:
    8
    More here...

    http://download.nvidia.com/developer/GPU_Gems_2/GPU_Gems2_ch08.pdf

    Sorry, I haven't been following what games use what techniques but any games out there using the above? If not can we expect any in the near future, e.g. next gen consoles?
     
  2. Inane_Dork

    Inane_Dork Rebmem Roines
    Veteran

    Joined:
    Sep 14, 2004
    Messages:
    1,987
    Likes Received:
    46
    On consoles? My initial impression is that no, you won't see it on consoles. 3D textures are pretty hard to justify on memory-bound consoles.
     
  3. j^aws

    Veteran

    Joined:
    Jun 1, 2004
    Messages:
    1,909
    Likes Received:
    8
  4. bloodbob

    bloodbob Trollipop
    Veteran

    Joined:
    May 23, 2003
    Messages:
    1,630
    Likes Received:
    27
    Location:
    Australia
    Most hardware doesn't support VTC and well the whole point of the 3d texture is because its precomputed and doing it potentially many times at run time sort of defeats the purpose.
     
  5. corysama

    Newcomer

    Joined:
    Jul 10, 2004
    Messages:
    175
    Likes Received:
    122
    Re: Per-Pixel Displacement Mapping with Distance Functions..

     
  6. davepermen

    Regular

    Joined:
    Aug 27, 2003
    Messages:
    422
    Likes Received:
    2
    Location:
    Switzerland
    the 3d texture only stores distances, not colours, so only 8bit per texel needed.. so the 16 layers only need 16bytes, thats 4times as much as an ordinary colormap (4bytes).

    still much, but not _that_ much.

    the technique is very nice, and will definitely find its uses. at places, where parallax mapping isn't enough. i'm thinking of the detailed small objects you can find in levels (boxes, and all the stuff), wich will involve tons of instancing anyways..

    or an asteroidfield (sorry, the term instancing inspired me) could possibly use this technology, too .. :D

    one big feature of the technique is the adjustability. more memory? faster tracing? you can always adjust.
     
  7. bloodbob

    bloodbob Trollipop
    Veteran

    Joined:
    May 23, 2003
    Messages:
    1,630
    Likes Received:
    27
    Location:
    Australia
    Exactly how fast is this shader anyway? I would be surprised if its much more then twice as fast the method from opengl which raytraces with precomputing.
     
  8. KimB

    Legend

    Joined:
    May 28, 2002
    Messages:
    12,903
    Likes Received:
    218
    Location:
    Seattle, WA
    Well, it looks like the shader can't reject pixels, so it's still a virtual displacement mapping technique. But it looks like it's a higher-quality version than the parallax mapping technique.
     
  9. davepermen

    Regular

    Joined:
    Aug 27, 2003
    Messages:
    422
    Likes Received:
    2
    Location:
    Switzerland
    it is just another raytracer. the trick is, all they focus on, is a fast, and reliable way to intersect the heightmap, with no chance to miss anything, and stay accurate all the time.

    thats all. the rest, pixel discarding, and all the fuzz that popped up on the web to show correct silhuetes is still possible. it's just another solution to trace the ray onto the surface. an accurate way that works all the time, or so :D
     
  10. William Donnelly

    Newcomer

    Joined:
    Feb 21, 2005
    Messages:
    3
    Likes Received:
    0
    I'm glad you guys were interested by the chapter. I'll see if I can address some of your questions.

    The space requirements aren't as severe as you might think when you hear "3d texture". It's monochrome 8bits/channel, and typically half the resolution of a color texture, so really its about the same cost as an uncompressed color texture.

    As for texture compression, I dont know of any formats that work for monochrome 3d textures. Although if such a scheme were available, the data would probably compress very well since the 3d texture is extremely smooth.

    I've spoken a bit to Fabio, who posted his ray tracing shader on opengl.org. My impression is that this technique is faster (the shader is quite a bit shorter), but I havent done any proper benchmarks. The performance results were actually quite good for geforce 6 series, but it might be a bit much for fx cards. I havent written a multipass version to test performance on ati.

    Although it doesn't handle silhouettes, it certainly can be extended to do so. It poses some problems for quadric curvature approximation trick because you would have to perform a parabola-sphere intersection instead of just a ray-sphere intersection. But ultimately I dont think the parabolic trick is useful anyway (See my reply to Fabio on opengl.org under the name pragma).

    I haven't heard from any current game developers who are using the technique, since it's so new. As for whether it can be supported on consoles, the main obstacle there would be the dependent texture reads. Since ATI cards don't have dependent texture reads currently, its possible that their future console chips wont be able to support it. Although its probably just too heavy for current consoles, I think it may be ideal for future ones.
     
  11. Hyp-X

    Hyp-X Irregular
    Veteran

    Joined:
    Feb 6, 2002
    Messages:
    1,170
    Likes Received:
    5
    :?: :?: :?:
     
  12. William Donnelly

    Newcomer

    Joined:
    Feb 21, 2005
    Messages:
    3
    Likes Received:
    0
    Right ... I should clarify that. They do allow you to write shaders with dependent texture lookups, but my understanding is that they are not supported directly within the hardware and the shaders are internally multipassed somehow. So in practice, they allow a limit of something like 4 levels, which isn't enough for this technique.
     
  13. Hyp-X

    Hyp-X Irregular
    Veteran

    Joined:
    Feb 6, 2002
    Messages:
    1,170
    Likes Received:
    5
    Oh, yeah that's dependent read limit.
    Fortunately PS3.0 specifies that there can be no dependent read limit, so both R520 and XBOX2 should be fine.

    Thanks for the clarification.
     
  14. j^aws

    Veteran

    Joined:
    Jun 1, 2004
    Messages:
    1,909
    Likes Received:
    8
    Neat. So how long did it take you to develop the technique? And when you develop a technique, can you call it what you want...I mean 'Per-Pixel Displacement Mapping with Distance Functions' doesn't exactly roll off the tongue! :p ...Is 'Distance Mapping' it's official name?
     
  15. William Donnelly

    Newcomer

    Joined:
    Feb 21, 2005
    Messages:
    3
    Likes Received:
    0
    Probably a month or two if you count all the time researching, implementing other peoples ideas and developing alternative methods that didn't work.

    I like to call it Distance Mapping. The name has been used before (as the process of generating a distance map from an arbitrary isosurface), but I dont feel too bad stealing it. If normal mapping is the algorithm that uses a map containing normals, then I guess an algorithm that uses a map of distances is Distance Mapping.
     
Loading...

Share This Page

  • About Us

    Beyond3D has been around for over a decade and prides itself on being the best place on the web for in-depth, technically-driven discussion and analysis of 3D graphics hardware. If you love pixels and transistors, you've come to the right place!

    Beyond3D is proudly published by GPU Tools Ltd.
Loading...