grahphics_blitz

grahphics_blitz1.前言Graphics的Blit方法是比较简单也是比较常用的方法。最简单的作用是将一张纹理绘制到另一张纹理中。而在此方法中可以指定一种材质来实现特殊的效果,所以常和OnRenderImage方法配

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

1.前言

Graphics的Blit方法是比较简单也是比较常用的方法。最简单的作用是将一张纹理绘制到另一张纹理中。而在此方法中可以指定一种材质来实现特殊的效果,所以常和OnRenderImage方法配合使用来实现屏幕后处理效果。

2.OnRenderImage简介

void OnRenderImage(RenderTexture src, RenderTexture dest)方法是unity中渲染流程的最后阶段,如果不调用此方法则渲染的图像直接显示到屏幕上(不考虑buffer问题),如果调用则src为获取到的渲染图像,dest则为绘制的目标纹理。调用此方法的脚本需要挂载在含有camera组建的脚本上。

3.应用示例

3.1 最简单应用

下述方法为将camera渲染结果直接绘制到屏幕上,不做任何处理,当然如果这样调用也就没有调用此方法的意义了。

    void OnRenderImage(RenderTexture src, RenderTexture dest) { Graphics.Blit(src, dest); } 

3.2 最基本应用

一般应用如下所示,设置某一材质,然后通过材质对src纹理进行处理,并绘制到dest上,但是material要包含_MainTex变量,因为unity会默认将src纹理赋值给_MainTex。

    material.SetFloat("_Brightness", brightness); void OnRenderImage(RenderTexture src, RenderTexture dest) { Graphics.Blit(src, dest, material); }

3.3 完整范例

public class GaussianBlur : PostEffectsBase { public Shader matShader; private Material mat; public Material material { get { if(mat==null) { mat=new Material(matShader)} return mat; } } [Range(0, 4)] public int iterations = 3; void OnRenderImage (RenderTexture src, RenderTexture dest) { if (material != null) { int rtW = src.width int rtH = src.height RenderTexture buffer0 = RenderTexture.GetTemporary(rtW, rtH, 0); buffer0.filterMode = FilterMode.Bilinear; Graphics.Blit(src, buffer0); for (int i = 0; i < iterations; i++) { RenderTexture buffer1 = RenderTexture.GetTemporary(rtW, rtH, 0); Graphics.Blit(buffer0, buffer1, material, 0); RenderTexture.ReleaseTemporary(buffer0); buffer0 = buffer1; buffer1 = RenderTexture.GetTemporary(rtW, rtH, 0); // Render the horizontal pass Graphics.Blit(buffer0, buffer1, material, 1); RenderTexture.ReleaseTemporary(buffer0); buffer0 = buffer1; } Graphics.Blit(buffer0, dest); RenderTexture.ReleaseTemporary(buffer0); } else { Graphics.Blit(src, dest); } } } 

4.结语

此方法应用就是如此简单。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/167224.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • [转载]【电子书下载神器】太给力了!你还找不到想要的电子书吗?

    [转载]【电子书下载神器】太给力了!你还找不到想要的电子书吗?1.电子书下载网(推荐)读远:发掘优质电子书资源Kindle精读书库Hi!PDAHi!PDAreadfree.me子乌书简 苦瓜书盘mLook看书掌上书苑-主页新浪微盘 | 免费网盘    2.电子书网站  E书吧-免

    2022年7月15日
  • 自定义web框架

    HTTP协议HTTP协议是HyperTextTransferProtocol(超文本传输协议)的缩写,是用于从万维网(WWW:WorldWideWeb)服务器传输超文本到本地浏览器的传送

    2022年3月29日
  • 什么是java的关键字_java中常见的关键字

    什么是java的关键字_java中常见的关键字什么是关键字呢?概述:关键字就是在java语言中赋予特殊含义的单词特点:1.组成的关键字的单词全是小写2.常见的代码编辑器中,对关键字都有特殊的颜色标记比如在idea中对关键字都有特殊的颜色标记:在java中常见的关键字有很多,千万不能死记硬背,用一个记一个就行了,下面我举出一些常见的关键字。常见关键字:Abstract抽象的一个Java语言中的关键字,用在类的声明中来指明一个类是不能被实例化的…

    2022年7月7日
  • VS2013密钥(所有版本)[通俗易懂]

    VS2013密钥(所有版本)[通俗易懂]VisualStudioUltimate2013KEY(密钥)

    2022年5月19日
  • adb安装以及调试

    adb安装以及调试想必很多程序猿们都经历过一个头疼的事情是开发完一个项目之后,在你本机模拟是Ok的,但是到了正式环境上(机顶盒、手机等)却又bug百出,测试姐姐找的你头疼。那么我们就需要在自测的时候验证一下。废话不多说先来直接上正文:1.下载安装ADB下载安装非常快速简单,不到3MB。(需要下载的可以直接找我要)下载解压完之后不需要你去安装或者配置什么Path之类的东西,只需要记住你放在哪儿了就好。例如我放在了D盘,文件名叫ADB。2.是否正常运行输入:(1)win+R(2)进入cmd(3)D:(4)c

    2022年5月16日
  • 处理js乱码

    处理js乱码1.将time.js编码格式更改外2.在Tomcat设置VM-OPTION选项为-Dfile.encoding=utf-8

    2022年6月12日

发表回复

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

关注全栈程序员社区公众号