signed distance field

https://kosmonautblog.wordpress.com/2017/05/09/signed-distance-field-rendering-journey-pt-2/

mesh distance field

https://docs.unrealengine.com/en-us/Engine/Rendering/LightingAndShadows/MeshDistanceFields

http://advances.realtimerendering.com/s2015/DynamicOcclusionWithSignedDistanceFields.pdf

https://www.quora.com/Computer-Graphics-How-does-the-distance-field-ambient-occlusion-work-in-the-Unreal-Engine

静态物体阴影ao 3dtexture

=================================

前段时间一直在忙 填下吧

讲下理解

generate distance field

这个 voxel是3dtexture的

存的是 worldspace一个 voxel到边缘 voxel的距离

边缘 voxel就是mesh顶点所在的 voxel

一个场景存一张大的3d texture包含模型和模型旁边的空间 每个 voxel都有个distance

voxel

这步的算法可以用八叉树遍历 先标0 递归那块和二维UI那里算法是一个道理

改成遍历空间中相邻26个voxel

然后根据这个distance field 做遮挡

用ray marching 就是那个一圈一圈的spheretracing

判断明暗那个点到光源有一条连线L  此空间中的voxel有一个distance 为半径做圆到与L的下个交点再用此点的distance做圆

一直交下去 到distance为0  shadow

能走到光源 此点照亮

---------------------------

下面我就一个问题了

为什么崩坏三的sdf是一圈一圈的

ue4的是这样连续的

https://www.shadertoy.com/view/4s2cWV

fragColor = vec4( fract(sd / max(iResolution.x, iResolution.y) * 20.) );

那一圈圈绝对是20乘出来的 但是为什么呢

====================

等下次有时间再分析

==========================================

崩坏3一圈一圈的是他们压缩存储了depth 和sdf无关

distance field(占坑的更多相关文章

  1. AppStore占坑注意事项

    AppStore占坑注意事项 我们会提前在AppStore(iTunesConnect)里注册一些应用名称,以满足未来业务需要和防止恶意注册,其中有一些需要注意的事情,整理如下: 倒计时180天 为了 ...

  2. 插件开发之360 DroidPlugin源码分析(五)Service预注册占坑

    请尊重分享成果,转载请注明出处: http://blog.csdn.net/hejjunlin/article/details/52264977 在了解系统的activity,service,broa ...

  3. 插件开发之360 DroidPlugin源码分析(四)Activity预注册占坑

    请尊重分享成果,转载请注明出处: http://blog.csdn.net/hejjunlin/article/details/52258434 在了解系统的activity,service,broa ...

  4. 插件占坑,四大组件动态注册前奏(三) 系统BroadCast的注册发送流程

    转载请注明出处:http://blog.csdn.net/hejjunlin/article/details/52204143 前言:为什么要了解系统Activity,Service,BroadCas ...

  5. 插件占坑,四大组件动态注册前奏(二) 系统Service的启动流程

    转载请注明出处:http://blog.csdn.net/hejjunlin/article/details/52203903 前言:为什么要了解系统Activity,Service,BroadCas ...

  6. 插件占坑,四大组件动态注册前奏(一) 系统Activity的启动流程

    转载请注明出处:http://blog.csdn.net/hejjunlin/article/details/52190050 前言:为什么要了解系统Activity,Service,,BroadCa ...

  7. Signed Distance Field Shadow in Unity

    0x00 前言 最近读到了一个今年GDC上很棒的分享,是Sebastian Aaltonen带来的利用Ray-tracing实现一些有趣的效果的分享. 其中有一段他介绍到了对Signed Distan ...

  8. Signed Distance Field Technique

    [Distance Field Technique] 一种小纹理高清放大的技术. A distance field is generated from a high resolution image, ...

  9. signed distance field 算法

    将二值图转化成signed distance field后,可以在双线性插值下实现平滑放大. 定义: 到前景的distance field:各点到最近前景点的距离. 到背景的distance fiel ...

随机推荐

  1. Linux安装mysql.8.0.12

    1. linux安装mysql8.0.12,亲测可用. 以下是安装过程中出现的问题: 1 [root@localtest1 file]# systemctl start mysqld 2 Job fo ...

  2. experss 做小型服务器出现跨域问题

    情况是这样的 我用express做一个小型的服务器来做我demo项目的一个接口 然后我就出现了跨域问题 然后我就 app.all('/*', function(req, res, next) { // ...

  3. poj 1579(动态规划初探之记忆化搜索)

    Function Run Fun Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 17843   Accepted: 9112 ...

  4. ceph在扩展mon节点时,要注意的问题

    我开始也是一步一步的按官方文档操作. 但后来还是遇到了问题. 当我要扩展mon节点时,死活出错. (我就一共用了三个节点ceph-admin, ceph-node1, ceph-node2) 比如: ...

  5. AC日记——方差 洛谷 P1471

    方差 思路: 线段树: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 100005 struct TreeN ...

  6. git冲突解决的方法

    在运行时,出现了冲突的报错.类似于<<<<<<< HEAD,在你改变的文件有分支与HEAD间的区别.这里就是冲突的地方. 1.解决方法一 使用命令  切换分支 ...

  7. ubuntu使用命令更新ubuntu系统

    我们都知道ubuntu是一款linux系统,它不像WINDOWS系统,它是一个开源的系统,它随时都在更新它系统,所以人们都说Linux系统要比WINDOWS系统安全.为了我们电脑安全,我们如何利用ub ...

  8. python链接mysql以及mysql中对表修改的常用语法

    MySQL是一个关系型数据库管理系统 ,其体积小.速度快.总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库.在使用过程中不总是和它打交道,导致使用时候都得 ...

  9. Java基础知识(二)

    一.基本概念 1. Java程序初始化的顺序是怎么样的 2. Java和C++的区别 3. 反射 先看一个知乎回答 什么是反射 主要用途 获得Class对象 4. 注解 什么是注解 为什么要用注解 基 ...

  10. POJ 2253 Frogger【最短路变形/最小生成树的最大权/最小瓶颈树/A到B多条路径中的最小的最长边】

    Freddy Frog is sitting on a stone in the middle of a lake. Suddenly he notices Fiona Frog who is sit ...