SDF!这特效牛不牛?

SDF!这特效牛不牛?什么是 SDFSDF SignedDistan 有向距离场 用于表示空间中各点距离物体表面的距离

大家好,欢迎来到IT知识分享网。

什么是SDF

SDF(Signed Distance Field),有向距离场 ,用于表示空间中各点距离物体表面的距离。SDF技术已经被应用于字体渲染、Ray Marching、物理引擎等领域。

SDF 如何运用在 2D 游戏渲染?在 2D 图像里,SDF 表示的是图片中每个像素距离图片轮廓的距离,通过 SDF 可以很方便地对图片的轮廓施加特效。

SDF!这特效牛不牛?

如何生成SDF

目前有线性时间生成 SDF 的算法,这里使用了开源的TinySDF。
TinySDF计算SDF纹理完全在CPU上运行,对于小图可以直接运行时生成对应SDF纹理。考虑到苹果手机某些场合无法开启 JIT,对于大图可以采用离线生成的方式或者分帧计算的方式获取 SDF 纹理。

外发光之类的特效可能会超出原图的边缘,在计算 SDF 纹理前需要对原图进行扩边。SDF 信息生成后是一个和扩边后图片大小相同的二维数据,可以用该数组生成内存纹理,赋值给材质进行渲染。

简单起见,本文 Demo 直接将 SDF 纹理作为alpha通道和原图合并,不适合原图里本身有较大区域半透明像素的图片。

基于SDF的shader

SDF!这特效牛不牛?SDF!这特效牛不牛?

SDF!这特效牛不牛?SDF!这特效牛不牛?

变形

SDF!这特效牛不牛?

代码 & Demo

代码已经上架 Cocos Store 先免费放几天,欢迎大家白漂!感谢支持

SDF!这特效牛不牛?

源码地址:http://store.cocos.com/app/detail/2875

[论坛讨论帖]
https://forum.cocos.org/t/topic/

这是我的公众号,关注有更多精彩,一起交个朋友吧!

SDF!这特效牛不牛?

  • Creator全平台游戏开发教程 PDF 免费下载(800+页)
  • 编写高效 TS 的一些建议
  • Creator 3.0 折纸效果!超赞
  • 隔壁老王,带你入坑腾讯联机对战引擎!
  • 更新!Creator最佳文字书写解决方案!

SDF!这特效牛不牛?

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/149436.html

(0)
上一篇 2025-03-23 22:33
下一篇 2025-03-23 22:45

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信