zoukankan      html  css  js  c++  java
  • 深度和法线纹理

    深度和法线纹理

    1、使用深度和法线纹理进行边缘检测,则不会受纹理、光照的影响。

      深度纹理的范围是[0, 1]。而NDC坐标下深度范围是[-1,1]。转换公式:

        d = 0.5*Zndc + 0.5

    2、如何在Unity中获取这两种纹理。

      Unity中,深度纹理可以直接来自于真正的深度缓存,也可以由一个单独的Pass渲染而得。取决于使用的渲染路径。

      在延迟渲染中,深度缓存可以从G-Buffer中获取。

      在前向渲染中,无法直接获得深度缓存。通过一个单独的Pass渲染而来。Unity会使用Shader Replacement技能选择物体:

        1)那些RenderType为Opaque.

        2)RenderQueue是否小于2500(bakground、geometry、alphatest)。

        3)LightMode为ShadowCaster。

      深度纹理的精度为24位或16位。

      深度+法线纹理为32位,RG为法线信息,BA为深度信息。Unity使用一个独立的Pass来渲染整个场景。Camera-DepthNormalTexture.shader。

       

      camera. depthTextureMode = DepthTextureMode. Depth;

      上述代码开启深度纹理。之后可以在Shader中声明 _CameraDepthTexture变量来访问。

      camera. depthTextureMode = DepthTextureMode. DepthNormals;

      上述代码开启深度+法线纹理。通过 _CameraDepthNormalsIsTexture 变量来访问。

      camera. depthTextureMode |= DepthTextureMode. Depth;

      camera. depthTextureMode |= DepthTextureMode. DepthNormals;

      上述代码同时生成深度、深度+法线纹理。

       

      float d = SAMPLE_ DEPTH_ TEXTURE(_ CameraDepthTexture, i. uv);

      使用 SAMPLE_DPTH_TEXTURE宏来获取纹素。

      LinearEyeDepth 负责把深度纹理转换到视角空间下的深度值。

      Linear01Depth负责返回一个范围在[0,1]的值。

      DecodeDepthNormal 解出 depth+normal纹素。解出的深度为[0,1],法线为视角空间下的法线方向。

    3、利用深度纹理来计算Camera移动速度,实现运动模糊。

      只适用于GameObject静止,而Camera运动的情形。

      速度映射图,存储了每个像素的速度,通过速度可以决定模糊的方向和大小。

      1)根据深度缓冲计算当前帧像素 CameraPos。

      2)根据CameraPos,以及前一帧的ProjMat,计算出上一帧像素位置。

    4、利用深度纹理来重建像素在世界空间中的位置,实现屏幕雾效。

       

    5、使用深度、法线纹理进行边缘检测。

      选取对角线方向的深度或法线值,比较它们之间的差值。

      

    6、

  • 相关阅读:
    Yii2 国际化的问题 zh-CN
    Yii2归档安装法
    MySQL性能优化的最佳20+条经验
    Jquery 选择器汇总
    关于MooTools你应该熟知的6个基本知识
    Android开发效率—Eclipse快捷键
    Failed to fetch URL http://dl-ssl.google.com/android/repository/addons_list-2.xml, reason: Connectio (andriod sdk manager) http://dl-ssl.google.com/android上不去解决方案
    Windows下搭建objective C开发环境
    android studio创建项目
    android studio 安装与环境搭建
  • 原文地址:https://www.cnblogs.com/tekkaman/p/8691150.html
Copyright © 2011-2022 走看看