Unity3D Shader官方教程翻译(十六)----Shader语法 GrabPass

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

ShaderLab syntax: GrabPass

GrabPass is a special passtype - it grabs the contents of the screen where the object is about to be drawn into a texture. This texture can be used in subsequent passes to do advanced image based effects.

GrabPass 是一种特殊的通道类型 -它捕获对象所在的屏幕的内容(理解为截图好了)并写入到一个纹理中。这个纹理将用于在后续的通道中完成一些高级图像特效。

Syntax 语法

The GrabPass belongs inside a subshader. It can take two forms:

在一个subshader中有2种形式使用GrabPass :

  • Just GrabPass { } will grab current screen contents into a texture. The texture can be accessed in further passes by @@_GrabTexture@ name. Note: this form of grab pass will do the expensive screen grabbing operation for each object that uses it!
  • GrabPass捕捉当前屏幕内容到一个纹理里面。在后续的通道中可以使用_GrabTexture引用这个纹理。请注意这种形式在截屏时候的操作是相当昂贵的。
  • GrabPass { "TextureName" } will grab screen contents into a texture, but will only do that once per frame for the first object that uses the given texture name. The texture can be accessed in further passes by the given texture name. This is a more performant way when you have multiple objects using grab pass in the scene.
  • GrabPass { "TextureName" } 捕捉当前屏幕内容到一个纹理里面。但是只会对每帧中第一个使用给定纹理名字的对象进行捕捉操作。在后续的通道中可以使用给定的名字来引用这个纹理。当你在1个场景中有多个对象使用grab pass 时候,这样做会提高效率。

Additionally, GrabPass can use Name and Tags commands.

另外,GrabPass 可以使用Name和Tags命令。

 

Example 例子

Here is an expensive way to invert the colors of what was rendered before:

反相颜色的操作对于系统来说是十分昂贵的。

Shader "GrabPassInvert" {
    SubShader {
        // Draw ourselves after all opaque geometry 在所有不透明的几何对象之后绘制自己,
        Tags { "Queue" = "Transparent" }
        // Grab the screen behind the object into _GrabTexture  捕捉对象之后的屏幕内容并放到_GrabTexture 纹理中 
        GrabPass { }
        // Render the object with the texture generated above, and invert it's colors 使用上面产生的纹理,进行颜色反相
        Pass {
            SetTexture [_GrabTexture] { combine one-texture }
        }
    }
} 

This shader has two passes: First pass grabs whatever is behind the object at the time of rendering, then applies that in the second pass. Now of course, the same effect could be achieved much cheaper using an invert blend mode.

这个shader 含有2个通道:第1个通道捕捉了在渲染时,对象之后的所有内容并放到一个纹理(_GrabTexture)中。然后应用第2个通道。实现同样的效果有效率更高的方法,比如使用反相混合效果。

See Also 参考另外的

由www.J2meGame.com原创,转载请说明。

【Unity3D Shader】利用GrabPass模拟玻璃效果 本文将介绍和实现Unity Shader中的玻璃效果。实现效果如下:一、效果分析和实现原理    试想下生活中的玻璃杯,它能反射周围的环境,同时如果我们将一颗小球放入杯中,我们能够透过玻璃杯看到小球,而且如果玻璃杯表面凹凸不平的话,我们还会看到小球好像被扭曲了,这便是光线在玻璃表面反射和折射的效果。    反射/折射    下面来讲讲在Unity Shader中反射和折射的实现:    反射/折射... 阅读详情

相关推荐

Shader山下(二十三)GrabPass与UsePass

通道(Pass)是子着色器(SubShader)的组成部分,每个Pass代表对象被渲染一次。 本文要介绍的是两种特殊的Pass:GrabPass和UsePass。 GrabPass用于获取当前屏幕的纹理(Texture)。 UsePass实际上不是Pass,而是调用其他的Pass的指令。

凯奥斯的注释 4947

Unity中Shader的屏幕抓取 GrabPass

Unity中Shader的屏幕抓取

楠溪泽岸的博客 1589

300m半径无人机单兵侦测设备技术详解

300m半径无人机单兵侦测设备凭借其卓越的侦测性能、高效的识别能力、便捷的告警方式以及广泛的应用场景,成为现代军事、安保及应急救援领域的重要装备。300m半径无人机单兵侦测设备,融合了最新的无人机技术、高精度传感技术与实时数据处理技术,为单兵作战、巡逻及侦察任务提供了前所未有的视野与效率。该设备通过无人机搭载的高性能侦测模块,能够在复杂环境中实现300米范围内的精准侦测,大幅提升单兵的战场感知能力和决策效率。设备为被动式探测设备,确保安静安全运行,不暴露目标 设备耗电功率小,可长时间在野外使用。

专注多旋翼、复合翼无人机技术研究,从事低空经济行业。 1122

Grab Pass实现玻璃材质

一、GrabPass简单例子 Grab Pass技术,可以理解为屏幕截图,也就是将帧缓存抓出来一张贴图,并在当前物体或者后续渲染当中,复用这张帖图的技术。 代码如下: Shader "TYX/07VFMat" { Properties{ _MainTex("Texture",2D)="white"{} _ScaleUVX("Scale X",Range(0,10))=1 _ScaleUVY("Scale Y",Range(0,10))=1 } SubShader {

安都奕雨的博客 625

Aras Innovator生命周期图实战:从配置到权限管理的全流程解析

本文详细解析了Aras Innovator生命周期图的全流程配置与权限管理,从基础概念到实战应用,涵盖状态设置、路径配置、权限控制等核心功能。通过实际案例和代码示例,帮助用户掌握如何高效管理数据生命周期,提升业务流程的规范性和效率。

ee345的博客 169

VS2022下OSG+OSGEARTH开发环境一键配置指南(Win10 x64+CMake自动化构建)

本文详细介绍了在VS2022环境下配置OSG和OSGEARTH开发环境的完整指南,包括软件下载、CMake自动化构建、编译实战及环境验证。通过一键配置脚本和常见问题解决方案,帮助开发者快速搭建3D开发环境,提升开发效率。

weixin_28828243的博客 407

【Unity Shader】Unity中利用GrabPass实现玻璃效果

总结了在Unity中实现镜子效果的过程,主要是介绍了GrabPass的使用,以及整个实现效果的过程。

qq_41835314的博客 3164

如何导入su_利用GIS快速生成SU场地模型

01|前言:进入2021年了,希望大家也是一个新的开始。告诫自己多写文章多更新,多读点书多旅行。然而元旦由于出去玩了4天,积累了一些事情要处理,一直没有时间好好写点东西。今天给大家带来的分享主题叫“利用GIS快速生成SU场地模型”。相关的视频方法其实B站上也有,但我相信视频很多人都不会看,我自己也是。直接给大家上操作流程。主要的操作步骤是【获取场地的矢量shp文件】—【导入ArcScen...

weixin_33806859的博客 9816

Shader中使用GrabPass实现自定义UI的玻璃效果

这里使用unity simple-optimized-blur-shader,重点在需要使用UI自身的透明度,才能实现跟UI相同形状的玻璃效果,顾最后输出的COLOR需要使用tex2D(_MainTex, i.uvmain).a。首先两个都是用于fragment函数着色器颜色输出的语义, SV_前缀的变量代表system value的意思,在DX10+的语义绑定中被使用代表特殊的意义,区别2:COLOR 在不同平台(索尼、ps5)可能会出现无法工作的情况,所以推荐使用SV_Target。

458

Python爬虫教程:抓取Android或iOS应用中的数据

随着智能手机的普及,移动应用程序已经成为我们生活中不可或缺的一部分。从社交媒体、在线购物到金融服务和健康管理,几乎所有领域都有相应的手机应用程序(App)服务用户。而这些应用程序通常会存储大量的数据,例如用户行为、产品信息、订单记录等。如果我们能有效地抓取这些数据,可以为数据分析、商业智能、用户行为分析等提供有力支持。本文将重点介绍如何使用Python爬虫技术抓取Android或iOS应用中的数据,尤其是如何从这些应用的后端接口、存储、或网页中提取数据。我们将探讨如何通过反向工程技术访问移动应用中的API接

2201_76125261的博客 803

把开源 Skills 集成到 LangGraph 项目

1. 定义智能体状态(必须包含 messages,其他字段按需扩展)messages: List[HumanMessage | AIMessage | ToolMessage] # 消息流(核心)skill_output: Optional[str] # 存储 Skill 执行结果next_node: str # 控制流程跳转# 2. 定义智能体决策节点(决定是否调用 Skill)"""智能体决策逻辑:根据用户输入判断是否调用开源 Skill"""# 获取最后一条用户消息。

lpfasd123的博客 908

(十五)计算机图形学 之 GrabPass截屏、Shader组织优化

1:使用抓屏通道,GrabPass 1) 或 GrabPass{“纹理名称n;GrabTexture方问2:后续的Pass通道使用这个抓屏:3:编写案例(1):创建一个顶点片元着色器:(2):将这个着色器放到overlav队列(3):使用GrabPass通道截屏,并定义好变量来接收(4):设置顶点的Uv坐标;(5):着色使用截图的纹理在Tags中添加 渲染队列 ,保证该物体最后在绘制然后添加Grabpass{} 截屏通道 默认使用 _GrabTexture。

GarFe的博客 595

UE5实现距离测量功能

UE5实现距离测量功能

专注GIS开发 6269

【UnityShader入门精要学习笔记】第十章 高级纹理(2)渲染纹理

摄像机的渲染结果会输出到颜色缓冲中,并显示到我们的屏幕上。现代的GPU允许我们把整个三维场景渲染到一个中间缓冲中,即**渲染目标纹理(Render Target Texture ,RRT)** , 而不是传统的帧缓冲或者后备缓冲(back buffer,就是我们之前讲到的进行画面切换时,颜色缓冲重新渲染时需要使用的缓冲区)。与之相关的是**多重渲染目标(Multiple Render Target ,MRT)** 。这种技术指的是GPU允许我们把场景同时渲染到多个渲染目标纹理中(例如4种渲染效果,正常情况

milu_ELK的博客 2046

uniapp:实现圆盘/色盘取色器组件,圆环颜色选择器用户可拖拽选择颜色值实时更新用户选择的颜色数据,拖动丝滑流畅不卡顿(uniapp小程序/手机h5网页/安卓苹果app/nvue都能使用,详细源码)

uniapp项目中使用颜色选择器,uniapp实现简单圆形色盘、取色器、拾色器组件,Uniapp自定义颜色选择器取色器,圆形的颜色选择器,uniapp颜色拾取器,拾色器 取色器 颜色选择器,uniapp vue3圆形的色盘取色,uni-app如何封装一个取色器组件,用uniapp写调色板,uniapp颜色选择器插件,实现圆环颜色选择器,Uni-app在App端使用颜色选择器,uniapp微信小程序圆盘颜色选择,uniapp H5网页实现圆形的取色器,使用canvas实现的简单圆形色盘,可自定义相关大小,un

✅ 精选推荐文章 4535

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Shader 玻璃效果

需要注意的是渲染队列设置成透明队列(即"Queue"=“Transparent”)。保证当渲染该物体时,所有的不透明物体都已经被绘制在屏幕上,从而获取正确的屏幕图像。使用 GrabPass 获取屏幕图像并绘制在一张纹理中,以便我们在后续的Pass中访问它。采样这张纹理并显示到UI上,左下角是采样结果。《Shader 入门精要》

sinat_34014668的博客 557

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

[Shader] Shader Cookbook 片段着色器和Grab通道[6]

到目前为止,我们一直依赖于表面着色器。它们被设计用来简化着色器编码的工作方式,为艺术家提供有意义的工具。如果我们想进一步了解着色器的知识,我们需要冒险进入顶点着色器和片段着色器的领域。与表面着色器相比,顶点着色器和片段着色器几乎没有关于物理属性的信息,这些物理属性决定了光如何反射到表面上。他们缺乏表达能力,却用力量来弥补。顶点和片段着色器不受物理约束的限制,非常适合非真实感效果。本章将关注一种叫做Grab通道的技术,它允许这些着色器模拟变形。

unity尧明的博客 355

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

标题:【揭秘】Unity的URP Grab Pass:增强你的图形渲染体验

标题:【揭秘】Unity的URP Grab Pass:增强你的图形渲染体验 项目地址:https://gitcode.com/gh_mirrors/ur/URPGrabPass 项目介绍 URP Grab Pass是一个针对Unity的通用渲染管线(URP)的创新插件,它是原生Grab Pass的替代品。这个开源项目由Haruma-K开发并维护,旨在为开发者提供更加灵活和强大的屏幕抓取纹理功能。...

gitblog_00013的博客 809

Shader GrabPass应用实例——实现扭曲效果

GrabPass简介所谓GrabPass,可以在渲染所在对象之前,获取当前FrameBuffer中的图像,以供在后续Pass中进行处理,有这它就可以实现一些只能通过屏幕后处理进行操作,比如高斯Blur等。下面两篇文章写的不错。https://docs.unity3d.com/Manual/SL-GrabPass.htmlhttps://zhuanlan.zhihu.com/p/29378964(里...

Benny Shader 2667

Unity Shader GrabPass 使用注意的问题

文档 关于Unity Shader中的GrabPass说明文档: 官方的ShaderLab: GrabPass 优快云其他博主翻译的ShaderLab: GrabPass GrabPass有两种写法 GrapPass { } GrabPass { “TheGrabTextureName” } 两种写法的去写在哪呢。 文档中有说明,但是可能说的还是不够清楚。 我用自己总结的: GrabP...

Jave.Lin 的学习笔记 4283

UnityShader19.1:渲染纹理(下)之GrabPass

接上文 :渲染纹理(上)之截屏功能实现 四、GrabPass 抓取图象 GrabPass 是 UnityShader 中的一个特殊 Pass,它的目的很简单:立刻获取当前的屏幕图象 代码也非常简单: Tags { "Queue" = "Transparent" "RenderType" = "Opaque" } GrabPass { "_RefractionTex" } LOD 200 PASS { //…… sampler2D _RefractionTex; ...

加载中... 1760

GrabPass简单案例

GrabPass使用介绍: 1:使用抓屏通道, GrabPass {} 或 GrabPass { “ 纹理名称”}; _GrabTexture访问 2: 后续的Pass通道使用这个抓屏; 3: 编写案例 (1): 创建一个顶点片元着色器; (2): 将这个着色器放到Overlay队列 (3): 使用GrabPass通道截屏,并定义好变量来接收 (3): 设置顶点的UV...

a592733740的博客 1445
上一篇: Unity3D Shader官方教程翻译(十五)----Shader语法 UsePass
下一篇: Unity3D Shader官方教程翻译(十七)----Shader语法 FallBack
coding_most
博客等级 码龄15年 13粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值