zoukankan      html  css  js  c++  java
  • Signed Distance Field Technique

    Distance Field Technique

      一种小纹理高清放大的技术。

      

        A distance field is generated from a high resolution image, and then stored into a channel of a lower-resolution texture.  which has been previously used to develop games such as the Half-Life 2 series, Counter-Strike: Source and Day of Defeat: Source.

        In the simplest case, this texture can then be rendered simply by using the alpha-testing and alpha-thresholding feature of modern GPUs.

        The distance function stored in an 8-bit channel. By doing so, we are able to take advantage of the native bilinear texture interpolation.  

        Once this signed distance has been calculated, we map it into the range 0..1, with 0 representing the maximum possible negative distance and 1.0 representing the maximum possible positive distance. A texel value of 0.5 represents the exact position of the edge and, hence, 0.5 is generally used for the alpha threshold value.

        小图中存储的alpha是,在原大图中,该点到最近的边缘的距离。

        

    应用

    1、SoftEdge。

      Two distance thresholds, Distmin and Distmax, are defined and the shader maps the distance field value between these two values using the smoothstep() function.

        

    2、Outline。

       By changing the color of all texels which are between two userspecified distance values.

        

    3、Glow

      When the alpha value is between the threshold value of 0.5 and 0, the smoothstep function can be used.

        

    4、Drop Shadow

      texture coordinate offset to produce drop shadows

        

    5、

    参考:

    1、《Improved Alpha-Tested Magnification for Vector Textures and Special Effects》.pdf

    2、http://www.360doc.com/content/17/0930/09/110467_691283041.shtml

  • 相关阅读:
    随机小错2_0527
    随计小错
    C++实现读写文件
    03-树2 List Leaves (25 分)
    获取毫秒级的时间戳
    new对象时,类名后加括号与不加括号的区别
    FoxMail 7.2的邮件存储目录修改
    C/C++ 开源算法库
    VS2015的安装
    脏内存导致BUG的问题
  • 原文地址:https://www.cnblogs.com/tekkaman/p/9053053.html
Copyright © 2011-2022 走看看