【Shader特效10】体积雾特效的使用

CG Kit探索移动端高性能渲染 内容来源:华为开发者大会2021 HMS Core 6 Graphics技术论坛,主题演讲《CG Kit探索移动端高性能渲染》 演讲嘉宾:华为海思麒麟GPU团队工程师 大家好,我来自华为海思麒麟团队的一名GPU研发工程师,今天给大家带来的主题是“CG Kit探索移动端高性能渲染”。 华为图形计算服务(Computer Graphics Kit,简称“CG Kit”)提供最前沿计算机图形学领域的渲染框架、插件SDK与GPU扩展接口,协助开发者挖掘硬件极限性能,大幅降低开发难度,帮助开发者创造出体验更 阅读详情

说在开始

这里主要讲解一下体积雾的算法和相关的知识。在许多大型游戏中都可以看到体积雾的身影,体积雾是飘动的,实现的效果也是距离摄像机越远雾的浓度也就越大。这里介绍一套数学模型相对比较简单的体积雾,可以有一个简单的认识。

作者:尹豆(憨豆酒),联系我yindou97@163.com,熟悉图形学,图像处理领域,本章代码: https://github.com/douysu/computer-graphics-notes

参考内容:
  • 《OpenGL ES 3.X 游戏开发 下卷》

运行效果

这里写图片描述

原理部分

这里写图片描述
这里涉及到3D数学的一些知识。

  • 首先计算当前片元与摄像机机之间形成的射线,然后计算摄像与雾平面的交点。
  • 如果雾平面与射线存才交点,那么计算雾平面交点与当前片元的距离。通过求出的距离计算一个因子,距离越大因子越大,因子影响的雾的浓度。
    关
OpenGL(十五)雾效 的 shader 实现 雾效 可以表现出一个线性的颜色变化,常用于烘托场景气氛。这种效果的实现原理并不复杂,本文着重讨论如何通过shader编写完成雾效的实现。核心原理雾效 的核心在于:计算视点与物体之间的距离,然后根据一个衰减公式进行颜色混合。常规的算法有线性衰减,指数衰减,指数幂衰减。线性雾效使用线性差值衰减,即可达到这种 雾效 。示意图如下:对应shader如下://vs varying vec3 V_Normal 阅读详情

相关推荐

体积雾详解(一)

体积雾shader 算法还是比较简单的主要是对顶点着色器的定义效果在最后会给出 以后有时间回调整参数 实现更多有意思的效果Shader "MADFINGER/Transparent/GodRays" { Properties { _MainTex ("Base texture", 2D) = "white" {} //主要贴图 _FadeOutDistNear ("Near fadeou

qq_30149305的博客 7119

Shader GrabPass应用实例——高度体积雾

高度雾或者垂直雾是 体积雾的一重要分支,比如以下场景(真实图片,非特效)其中有这篇文章的介绍了一种垂直雾的实现方法,思路、代码写的很详细了,网上有不少转载,这里也就不再说明了。 https://mp.weixin.qq.com/s/yfGNeyip5ebVIvBj-XBd4Qhttp://www.sohu.com/a/231966965_667928另外,还有就是以下这个牛B的插件https://...

Benny Shader 5224

Unity Shader-GodRay,体积光(BillBoard,Volume Shadow,Raidal Blur,Ray-Marching)

前言好久没有更新博客了,经历了不少事情,好在最近回归了一点正轨,决定继续Unity Shader的学习之路。作为回归的第一篇,来玩一个比较酷炫的效果,一般称之为GodRay,也有人叫它云隙光,当然,最高大上的名字就是体积光散射了。这几个名字对应几种类似的效果,但是实现方式相差甚远。先来几张照片以及其他游戏的截图看一下:ps:这张图片是一张照片哈,是本屌丝看别人的云南游记发现的,清明节本来想去的,结...

puppet_master的专栏 3万+

Unity体积光实现浅析

一、特效方式实现 1.1 Billboard特效片实现 采用这种方式的体积光实现简单,性能好,但是对于角度有特殊的要求,只适合某些场景使用 1.2 ShadowGun实现 ShadowGun是2011年的一个使用Unity开发的移动平台的第三人称射击游戏。 ShadowGun中把体积光归于是雾的一种应用。 雾和体积光有非常多类似的地方,一个大面积的体积光从视觉上来看和雾非常像,它们...

StormLikeMe的草舍 3618

Unity URP体积雾安卓平台失效:Shader兼容性与移动端优化全解析

在实时图形渲染中,Shader是实现复杂视觉效果的核心组件,它通过GPU并行计算处理顶点变换、光照模型和像素着色。其原理是将高级着色语言(如HLSL/GLSL)编译为特定GPU架构的指令集,从而驱动渲染管线。Shader的技术价值在于能够高效实现从基础材质到高级体积效果(如体积雾)的渲染,是提升游戏视觉沉浸感的关键。在移动平台开发中,Shader的兼容性与优化尤为重要,因为移动GPU架构多样且资源受限。例如,在Unity URP项目中集成体积雾效果时,常遇到安卓平台渲染失效的问题,这通常源于Shader编译

weixin_30781775的博客 384

体积云渲染实战:ray marching,体积云与体积云光照

今天来搞个赛艇的特技 ---- 体积云。通过 ray marching 算法可以进行体积云渲染。ray marching 算法从摄像机开始,向世界空间投射光线,并且逐步行进,记录沿途的信息,最后根据积累的信息进行云朵的绘制。此外,通过偏移采样的方式来判断云朵的光照情况。最后针对渲染的场景问题进行了优化。

AKGWSB 's blog 1万+

Unity体积雾开源项目全解析:从Aura 2到URP后处理实战指南

体积渲染是计算机图形学中模拟光线在参与性介质中散射与吸收的核心技术,它通过光线步进、相位函数等算法,将雾、烟、尘埃等效果从平面贴图升级为具有真实深度和动态交互的体积存在。这项技术极大地提升了实时渲染场景的氛围感与视觉真实度,是AAA游戏、影视特效和模拟仿真等领域的关键技术。其核心价值在于能够物理正确地计算光线的衰减与散射,实现诸如上帝之光、大气透视等高级视觉效果。本文聚焦于Unity引擎下的体积雾实现,深入剖析了以Aura 2为代表的重型体积纹理方案和基于URP的轻量级屏幕空间后处理方案,并探讨了性能优化与

weixin_34129696的博客 320

OpenGL教程第41课体积雾气.rar

OpenGL教程第41课体积雾气.rar

ray-plane-intersection:拾取射线是否与平面相交

射线平面交叉 3D 拾取射线是否与平面相交。 该平面被定义为具有normal [x, y, z] 和distance 。 var intersect = require ( 'ray-plane-intersection' ) var origin = [ 1 , 0 , 4 ] var dir = [ 0 , 0 , - 1 ] var normal = [ 0 , 0 , 1 ] var distance = 0 var hit = intersect ( out , origin , dir , normal , distance ) if ( hit ) { //collision occurred console . log ( hit ) // [1, 0, 0] } 距离可以用平面上的第二个点来确定,如下所示: var d = - dot ( normal

DFX从芯片到系统:可制造性、可测试性与可靠性设计实战指南

DFX(Design for eXcellence)是一套面向产品全生命周期的设计方法论,涵盖可制造性(DFM)、可测试性(DFT)、可靠性(DFR)等维度。其核心原理是将制造、测试、维护等环节的约束前置到设计阶段,从而降低流片与量产风险。在芯片与系统硬件领域,DFX不仅是提升良率与测试效率的关键手段,更是保障车规、工控等严苛场景下长期稳定运行的基础。从芯片物理实现到PCB布局,再到系统级散热与维护设计,DFX的落地需要工具链、流程闸门与跨部门协作的体系化支撑。本文基于实际项目经验,分享DFX从设计决策到工

weixin_32349093的博客 349

【可不卸载重装】VS2019新建项目里没有CUDA选项

问题:VS2019 新建项目里没有CUDA选项,vs也属性没有cuda。这是因为你在Visual Studio 2019安装之前,先安装了CUDA Toolkit。

qq_62844901的博客 1318

使用fluent计算流噪声_Fluent能够做的事

刚接触到fluent的同学们,应该会比较好奇,fluent能够做些什么事情,和你的研究有没有关联,能不能达到你的目的?如果不弄明白这样一点,前期可能会做很多无用功。 fluent是计算流体力学的软件,是一个工具。这样一个工具发展至今,可以用来模拟的绝不只有流体力学。下面我们依次来说明。首先是流动,fluent提供了非常丰富的流动模型,不仅可以模拟层流,同样还可以模拟...

weixin_28717647的博客 4857

华为开发岗暑期实习笔试(2025年4月16日)

第一题怀疑测试样例不完整,贪心法不应该能够解决该题。第二题使用0-1BFS解决单源最短路径的问题,往往搭配双端队列实现。第三题是运用动态规划解决最大不重叠子区间个数的问题,难点在于满足3重判断规则,所需数据结构及相关操作较多。

csy031117的博客 3661

电脑主板开机12步流程全解析:从按下电源键到BIOS启动的完整过程

本文深入解析了电脑主板从按下电源键到BIOS启动的完整12步流程,详细阐述了待机电路、主供电上电、CPU供电建立、时钟信号分发及复位链等关键硬件协同工作原理。通过剖析电脑主板的电路结构与芯片协作时序,帮助读者构建系统性的硬件故障诊断思维,精准定位开机故障。

weixin_29290963的博客 265

Unity零基础到入门☀️| 万字教程 讲解Unity中的数据存储 PlayerPrefs、XML、JSON【建议收藏】

本文章是Unity零基础到入门专栏的系列文章。 适合对Unity3D引擎感兴趣的小伙伴学习,偏向于新手学习! 本篇文章就来介绍一下Unity中三种基本的数据存储方式:PlayerPrefs、XML、JSON

努力前行,总会成为自己心中的那道光 8万+

【深度学习新浪潮】AI 智能眼镜关键视觉技术、技术栈及开源项目全解析

Meta新款智能眼镜在演示中暴露出的AI误判和延迟问题,揭示了端侧视觉与多模态算法落地的核心瓶颈。本文从算法工程视角解析了AI智能眼镜的三大关键技术:感知增强(多帧降噪、HDR成像)、场景解析(轻量化目标检测、语义分割)和空间定位(视觉SLAM、ToF辅助),并梳理了完整的技术栈架构,包括硬件适配、驱动优化和框架选型。文章还提供了高价值开源项目参考,如OpenXR和ORB-SLAM3,为端侧视觉算法落地提供实操指南,助力开发者攻克算力约束下的实时性、精度和功耗平衡难题。

专注:太空算力、AI infra、异构调度、大模型成本工程 530

YOLOv8改进 | 细节涨点篇 | DySample一种超级轻量的动态上采样算子(效果完爆CARAFE)

本文给大家带来的改进机制是一种号称超轻量级且有效的动态上采样器——DySample。与传统的基于内核的动态上采样器相比,DySample采用了一种基于点采样的方法,相比于以前的基于内核的动态上采样器,DySample具有更少的参数、浮点运算次数、GPU内存和延迟。此外,DySample在包括语义分割、目标检测、实例分割、全景分割和单目深度估计在内的五个预测任务中,性能均优于其他上采样器(截至目前最有效的上采样算子)。

Snu77的博客 1万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

上一篇: 【Shader特效8】着色器滤镜、图像卷积与滤波、数字图像处理
下一篇: 【高质量C++/C总结4】C++常量总结-const
尹豆(douysu)
博客等级 码龄9年 151粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值