当前位置: 首页 > 编程日记 > 正文

使用Pixel Bender Toolkit制作特效——多像素采样(Part 4)

用户级别

初级

必需产品

  • Flash Player 10
  • Flash Professional CS4 (下载试用版)

范例文件

  • pixel_bender_04.zip (5 KB)

其他要求

Pixel Bender Toolkit

在本文中,你会学到如何编写一个Pixel Bender内核,将同一图像的像素组合使用。如果你是从本教程的第一篇文章开始学习的话,你已经在每一小节的学习之后,得到了本节所需要的文件。这次,我们将按照 本系列第一篇文章的步骤,创建一种新的过滤器。

这是本系列的第四部分,本系列是讲述如何使用Pixel Bender Toolkit在位图上渲染视觉效果的教程。在前一节中,你已经学习到了如何给过滤器添加参数来创建一个滑动条接口,以及如何使滑动条影响预览窗口中图像的效果。你也了解到如何给参数添加元数据,确保显示特效的一致性。在本节中,你会学习到如何从同一图像中采样多个像素。

设置文件

如果你希望检查一下代码,下载提供的样例文件。按照如下步骤开始我们的学习:

  1. 选择File > New Kernel创建新的过滤器。
  2. 加载YellowFlowers.png,按照第一部分的描述修改内核的元数据。
  3. 点击Run按钮,运行过滤器。
  4. 检查没有语法错误之后,选择File > Save Filter。
  5. 将文件命名为Exercise4.pbk,然后将其存在你的桌面上的pixel_bender文件夹中。

添加浮点参数。

在本节中,你将需要利用你在第三节学到的知识,在代码中加入参数。按照如下步骤:

  1. 找到这行代码:
output pixel4 dst;
  1. >在这行代码之后,添加一个 浮点 参数 amount:
parameter float amount;
  1. 在上行代码之后,将参数的元数据设置为如下值:
< minValue: -5.0; maxValue: 5.0; defaultValue: 0.0; >;

注意: 打开样例文件中的Exercise4FilterB.pbk,你会发现它已经修改完毕了。

  1. 修改过代码之后,应该是如下样子:
<languageVersion : 1.0;> kernel Part4Filter < namespace : "com.adobe.devnet.pixelbender"; vendor : "Kevin's Filter Factory"; version : 2; description : "Playing around with pixels"; > { input image4 src; output pixel4 dst; parameter float amount < minValue: -5.0; maxValue: 5.0; defaultValue: 0.0; >; void evaluatePixel() { dst = sampleNearest(src,outCoord()); } }
  1. 如果你遇到错误,将你的代码和上面的例子进行比较。然后进行必需的修改。

采样第二个像素

在这一节中,你会学到如何编写代码采样第二个像素,并且将值储存在你声明的一个新变量中,按照如下步骤:

  1. 找到采样代码:
dst = sampleNearest(src,outCoord());
  1. 在上行代码之后,加入如下代码:
pixel4 dst2 = sampleNearest(src, outCoord()+float2(amount, amount));
  1. 点击Run按钮,运行过滤器。如果出现语法错误,将你的代码和上述代码进行比较。图像不会发生改变,因此现在你还没有修改存储在变量dst中的输出像素。
  2. 如果你没有遇到语法错误,选择File > Save Filter存储过滤器。

    注意: dst2是一个新变量,它存储的是图像中坐标为(amount,amount)的像素的值。

  3. 将这行代码加入到evaluatePixel 函数之后:
dst += dst2;
  1. 做出这些改变之后,检查你的代码,应该和如下代码类似:
Dst Void evaluatePixel() { dst = sampleNearest(src, outCoord()); pixel4 dst2 = sampleNearest(src, outCoord()+float2(amount, amount)); dst += dst2; }
  1. 点击Run按钮,运行过滤器。
  2. 检查没有语法错误之后,选择File > Save Filter。
  3. 当你将滑动条的游标置于默认位置的时候,图像看起来亮度会是之前的两倍。当你移动游标的时候,它会导致图片看起来像如下的样子(见图1)。
预览窗口中的过饱和的图像
图1.预览窗口中的过饱和的图像

在运行过滤器的时候,图像的两条黑色边显示出来了,因为在图片的边界采样返回的颜色是透明的黑色。

削减像素值

现在的过滤器因为是将像素值相加,所以会导致色彩的过饱和。在这节中,你将会学到如何改正这个问题,将饱和度返回到原来的级别。

按照如下步骤:

  1. 找到如下代码:
dst += dst2;
  1. 在这行代码之后添加如下代码:
dst /= 2.0;
  1. 点击Run按钮,运行过滤器。
  2. 检查没有语法错误之后,选择 File > Save Filter 储存过滤器。

注意,如果你将滑动条的游标置于默认位置,图像是没有发生改变的。只有当你修改代码,将像素值相加并且将其和除以2.0之后(将饱和度削减为原来级别)之后才会看到效果。

当你移动游标的时候,偏移效果如下,颜色看起来并不是很亮(见图2)。

图像的偏移效果
图2.图像的偏移效果

按照本系列第二部分 的教程,将Pixel Bender代码导出,这样你可以在Flash中使用它们,按照如下步骤:

  1. 选择 Build > Turn on Flash Player Warnings and Errors。这个选项能够让Flash Player在运行的时候检查过滤器,帮助你检查问题所在。
  2. 点击Run按钮,运行过滤器。
  3. 检验过滤器能否不报错误地成功运行。
  4. 选择 File > Export Kernel Filter for Flash Player。

在Export对话框中输入过滤器的名字: Exercise4Filter.pbj,然后将其存储在你的桌面上的pixel_bender文件夹中。

转载于:https://www.cnblogs.com/chenhongyu/p/3313825.html

相关文章:

【组队学习】【32期】统计学习方法习题实战

统计学习方法习题实战 航路开辟者&#xff1a;胡锐锋、王维嘉、王瀚翀、王茸茸、毛鹏志领航员&#xff1a;张璇航海士&#xff1a;胡锐锋、王维嘉、王瀚翀、王茸茸、毛鹏志、王天富、范佳慧 基本信息 开源内容&#xff1a;https://github.com/datawhalechina/statistical-le…

量子计算机 漫画,漫画 | 10分钟看懂量子比特、量子计算和量子算法

原标题&#xff1a;漫画 | 10分钟看懂量子比特、量子计算和量子算法请做好准备&#xff0c;即将进入烧脑模式&#xff01;宏观世界的生活经验很多都是表象。比如&#xff0c;你可能认为世界的运行是确定的、可预测的&#xff1b;一个物体不可能同时处于两个相互矛盾的状态。在微…

异步调用WCF的方法需要小心的地方

直接使用下面的代码&#xff0c;由于client对象占用的资源没有被释放&#xff0c;会导致内存泄露GetSimServiceReference.GetSimServiceClient client new GetSimServiceReference.GetSimServiceClient()client.computerSimAsync(DepartmentNo, FileID, F_intput.Length, Read…

中国电子学会青少年编程能力等级测试图形化四级编程题:打篮球

「青少年编程竞赛交流群」已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】或【Python】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 我们将有关编程题目的教学视频已经发布到抖音号21252972100&#xff0c;小马老…

#读书笔记 Android-Activity启动模式

什么是Activity的启动模式&#xff1f;当启动一个Activity的时候&#xff0c;系统会创建一个实例&#xff0c;并把它放入到一个任务栈中&#xff0c;至于如何存放&#xff0c;就是由这个启动模式来决定的。Android系统支持多任务&#xff0c;所以系统中会同时存在多个任务&…

计算机专业PhD申请文书范文,美国留学博士申请文书怎么写之范文分享

【导语】对于计划申请美国博士学位的同学&#xff0c;美国博士申请文书的写作尤为重要。美国博士申请文书怎么写呢?本文无忧考网提供了一篇美国土木工程博士申请个人陈述范文&#xff0c;大家可以根据文章理清自己的写作思路。I am planning to pursue graduate studies towar…

ubuntu安装Android SDK,adb,fastboot

1,Eclips先安装&#xff1a;ADT&#xff1a; https://dl-ssl.google.com/android/eclipse/ 2,由于是64bit的系统&#xff0c;而Android sdk只有32bit的程序&#xff0c;需要安装ia32-libs&#xff0c;才能使用。 运行如下命令&#xff1a;sudo apt-get install ia32-libs 3,下载…

Eureka服务注册中心

Eureka服务注册中心 最近在研究Spring Cloud&#xff0c;发现其中的组件实在是太多了&#xff0c;真的是头大&#xff0c;只能一块一块看&#xff0c;像盲人摸象一样。要想很短时间内掌握Spring Cloud是不可能的&#xff0c;小编就学习一块就在这里分享一块&#xff0c;有什么不…

【组队学习】【32期】动手学数据分析

动手学数据分析 航路开辟者&#xff1a;陈安东、金娟娟、杨佳达、老表、李玲、张文涛、高立业领航员&#xff1a;范淑卷航海士&#xff1a;武者小路、曾心怡 基本信息 内容属性&#xff1a;精品入门课系列开源内容&#xff1a;https://github.com/datawhalechina/hands-on-d…

win8系统的计算机共享在哪里设置方法,怎么设置win8无线共享呢?

在windows8中怎么设置无线共享呢&#xff0c;接下来小编和大家一起来看看怎么设置windows8无线共享吧。1.以管理员模式运行CMD 输入命令行 netsh wlan show drive 如果支持会显示为是 。2.下面就搭建承载网络&#xff0c;输入 netsh wlan set hostednetwork mode allow ssid你想…

Android13.9.15

在创建android项目中&#xff0c;有一栏package name&#xff1a;——在Properties&#xff08;属性&#xff09;区域包名栏输入***.***。 &#xff08;包名至少应该包含两部分&#xff0c;中间用英文句点隔开&#xff09; 在main.xml文件中我们一定会看到下面这段代码 <?x…

【组队学习】【32期】李宏毅机器学习(含深度学习)

李宏毅机器学习&#xff08;含深度学习&#xff09; 航路开辟者&#xff1a;王茂霖、陈安东&#xff0c;刘峥嵘&#xff0c;李玲领航员&#xff1a;郭棉昇航海士&#xff1a;汪超、赵美 基本信息 开源内容&#xff1a;https://github.com/datawhalechina/leeml-notes开源内容…

SVN提交错误:working copy is not up-to-date解决方法

我在项目中删了2个jar&#xff0c;然后SVN提交&#xff0c;一直提交不成功 svn在提交时报错如下图: working copy is not up-to-date svn:commit failed(details follow): svn:file "xxxxx is out of date" item is out of date svn:item "xxxx" is out of…

西部数码买哪处线路的云服务器,云服务器买哪个区合适

根据用户所在地区对于国内大陆的应用&#xff0c;选择国内地区的服务器速度肯定好于海外地区节点的速度。对于中国香港及海外其他国家节点来说&#xff0c;由于地理位置相差较远和路由等因素&#xff0c;不同节点会有较长的访问延迟&#xff0c;可以按照以下方式选择&#xff1…

从原则、方案、策略及难点阐述分库分表

版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。 https://blog.csdn.net/qq_34173549/article/details/79936693 一、分库分表原则 关系型数据库本身比较容易成为系统性能瓶颈&#xff0c;单机存储容量、连接数、处理能力等都很有限&#xff0c;数据…

.Net Framework中的委托与事件

using System; using System.Collections.Generic; using System.Text;namespace Delegate {// 热水器public class Heater {private int temperature;public string type "RealFire 001"; // 添加型号作为演示public string area "China Xian"; …

中国电子学会青少年编程能力等级测试图形化一级编程题:小鸡与鸭妈拥抱

「青少年编程竞赛交流群」已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】或【Python】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 我们将有关编程题目的教学视频已经发布到抖音号21252972100&#xff0c;小马老…

坦克世界服务器未响应怎么解决,华硕笔记本老是程序未响应怎么处理

电脑型号 华硕 P45VJ 笔记本电脑操作系统 Windows 7 专业版 64位 ( DirectX 11 )处理器 英特尔 第三代酷睿 i7-3520M 2.90GHz 双核主板 华硕 P45VJ (英特尔 Ivy Bridge - HM76 Express 芯片组)内存8 GB ( 尔必达 DDR3 1600MHz )主硬盘 日立 HGST HTS541010A9E680 ( 1 TB / 540…

中国电子学会青少年编程能力等级测试图形化一级编程题:无奈的Jaime

「青少年编程竞赛交流群」已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】或【Python】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 我们将有关编程题目的教学视频已经发布到抖音号21252972100&#xff0c;小马老…

解决jupyter中无自己创建的虚拟环境

最近看的教程都是用的jupyter&#xff0c;按理说都一样吧&#xff0c;但是pycharm中python有的模块就弃用了&#xff0c;而jupyter却都可以用&#xff0c;而且jupyter听说也不错&#xff0c;就配置了一下下 1.打开cmd&#xff0c;激活你的虚拟环境&#xff0c;我的是tensorflow…

从“如何学会做一只机械表”讲如何创新,如何做好产品

Version:0.9 StartHTML:-1 EndHTML:-1 StartFragment:00000099 EndFragment:00015862 为什么我总劝第一次创业的人先做山寨产品呢&#xff1f;因为游戏行业太多人太有理想了&#xff0c;因为玩过的好游戏很多&#xff0c;所以有冲动想自己做游戏&#xff0c;这样入行的人太多&a…

放大 旋转 css3,CSS3详解:transform 的旋转、旋转放大、放大、移动

CSS3 transform是什么&#xff1f;transform的含义是&#xff1a;改变&#xff0c;使…变形&#xff1b;转换CSS3 transform都有哪些常用属性&#xff1f;transform的属性包括&#xff1a;rotate() / skew() / scale() / translate(,) &#xff0c;分别还有x、y之分&#xff0c…

Web SCADA 电力接线图工控组态编辑器

前言 SVG并非仅仅是一种图像格式&#xff0c; 由于它是一种基于XML的语言&#xff0c;也就意味着它继承了XML的跨平台性和可扩展性&#xff0c;从而在图形可重用性上迈出了一大步。如SVG可以内嵌于其他的XML文档中&#xff0c;而SVG文档中也可以嵌入其他的XML内容&#xff0c;各…

IE6、IE7、IE8的CSS、JS兼容

Internet Explorer 6中查看使用 Microsoft JScript 的网页&#xff0c;可能会遇到web浏览器速度较慢的性能问题。原因是如果js脚本同时创建大量变量&#xff0c;jscript引擎执行垃圾收集算法时会监视脚本中变量分配的 数量、脚本中使用的文字值的数量和脚本中分配的字符串值的总…

中国电子学会青少年编程能力等级测试图形化一级编程题:海底世界

「青少年编程竞赛交流群」已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】或【Python】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 海底世界 1. 准备工作 &#xff08;1&#xff09;背景&#xff1a;Underwater…

小说站 章节内容 ajax,第17章 作业分析与异步编程原理——2019年5月14日22:00

5月14日作业完善购物车的删除与编辑功能谈一下你对单线程,任务队列与事件循环, 同步与异步的理解单线程&#xff1a;单线程在程序执行时&#xff0c;所走的程序路径按照连续顺序排下来&#xff0c;前面的必须处理好&#xff0c;后面的才会执行。比如&#xff1a;JavaScript就是…

【转载】图像缩放与插值理论基础

图像的缩放 图像经过缩放后有可能在原图中招不到对应的像素点&#xff0c;这需要用图像插值来解决。 1.理论基础 假设图像的X轴方向缩放比例是Kx&#xff0c;Y轴方向的缩放比是Ky&#xff0c;则缩放后输出图像的点&#xff08;x , y&#xff09;对应原图中坐标&#xff08;u , …

【组队学习】【32期】SQL编程语言

SQL编程语言 航路开辟者&#xff1a;王复振、杨煜、闫钟峰、杨梦迪、苏鹏、红星、张晋、汪健麟领航员&#xff1a;李云龙航海士&#xff1a;蒋志强、闫钟峰 基本信息 开源内容&#xff1a;https://github.com/datawhalechina/wonderful-sql开源内容&#xff1a;https://hub.…

查找手机型号云服务器,查找手机型号云服务器

查找手机型号云服务器 内容精选换一换您可以通过“应用管理”页面的应用列表&#xff0c;快速查看应用状态&#xff0c;及相关异常信息&#xff0c;如图1所示。包括&#xff1a;应用状态&#xff1a;即图1中的①应用异常信息&#xff1a;即图1中的②云服务器异常信息&#xff1…

浅谈25种设计模式(4/25)(此坑未填)

设计模式汇总 创建型模式 这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式&#xff0c;而不是使用新的运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。 工厂模式&#xff08;Factory Pattern&#xff09;抽象工厂模式&#xf…