分类

图像处理

PixelsWorld(像素世界着色器代码渲染AE插件)

PixelsWorld(像素世界着色器代码渲染AE插件) 1.0 官方版

大小:365 KB

语言:简体中文系统:WinXP, Win7, Win8, Win10, WinAll

类别:图像处理时间:2019-12-31

  PixelsWorld提供图像着色功能,您可以在软件输入脚本命令控制图像颜色,软件提供多种命令,可以选择 Lua、JavaScript、CMD等命令控制图像颜色,支持在lua中运行GLSL,输入pw.glsl(GLSLcode[, useBuffer])就可以运行脚本,可以启动useBuffer : 布尔值,可选参数,默认为false,如果为true,PixelsWorld会生成临时内存来储存渲染结果,GLSL渲染完毕后,临时储存器中的数据会覆盖输出层的像素数据,软件提供了脚本设置功能,您可以在软件调用编辑器,从而设计代码内容,如果你需要这款软件就下载吧!

PixelsWorld(像素世界着色器代码渲染AE插件)

软件功能

  PixelsWorld 是一款通过脚本来渲染图像的插件。 您几乎可以用它来渲染任何效果:

  1、可以渲染 GLSL

  2、可以执行 Lua

  3、可以执行 JavaScript

  4、可以执行 CMD

软件特色

  1、像素世界设计思想源于Excel表格工具的表达式、Houdini的Wrangle系列,它在Ae中将像素数据完全展示给用户来进行批量操控。

  2、用户在输入表达式后,GPU将为您高速处理所有像素,组成新的图像。

  3、同时它可以储存其他人写好的代码。方便重复利用和工程分工。

如何使用

  1、打开 Adobe After Effects.

  2、"Ctrl + N"(or "Command + N") 新建合成。

  3、新建一个纯色层

  4、选择刚添加的图层

  5、右键 => 效果 => MiLai => PixelsWrold

  6、d单击"编辑" 来改变 "世界规则"。

  7、此时会弹出菜单 。

  8、选择 "GLSL - Advanced"

  9、选择你喜欢的效果

  10、单击 "Ok".

官方教程

  https://milai.tech/products/PixelsWorld/docs_CN/

  PixelsWorld V1.0 使用的是 #version 330 core.

  只需在PixelsWorld书写您需要的 Fragment shader 代码即可 。

  同时,PixelsWorld 会在您的代码运行之前,合并一些额外的代码,为了使其与After Effects平台兼容,我们列出了部分代码供您参考。

PixelsWorld(像素世界着色器代码渲染AE插件)

  1、如何使用GLSL

  GLSL代码请在GLSL(GPU) 模式下运行;

PixelsWorld(像素世界着色器代码渲染AE插件)

  在 "World rule"这单击"Edit";

  此时,会有部分代码在面板显示。

  default.shader

  void main(){

  outColor = getColor(uv);

  }

  此代码会把输入像素发送至输出像素。

  你可以把 getColor(uv)改为 vec4(uv,0.0,1.0) 以获得好看的uv色彩图案;

  uvcolor.shader

  void main(){

  outColor = vec4(uv,0.0,1.0);

  }

  接着, 单击 "Ok"即可。

  正常情况下,应该会得到如下效果:

PixelsWorld(像素世界着色器代码渲染AE插件)

  2、链接参数

  通过使用外部参数,可以进行动画设置。

PixelsWorld(像素世界着色器代码渲染AE插件)

  当前拥有7种类型参数可用于动画

  Sliders

  Angles

  Points

  3D Points

  Checkboxes

  Colors

  Layers

  且每组参数都有10个控制器可供调配

  示例 :

  link_slider.shader

  void main(){

  outColor = vec4(uv,slider[0],1.0);

  }

  比如改变slider 0,预览界面颜色将会变化。

PixelsWorld(像素世界着色器代码渲染AE插件)

  详情

  在PixelsWorld参数声明方式如下所示:

  parameters.shader

  uniform float slider[10];

  uniform float angle[10];

  uniform bool checkbox[10];

  uniform vec2 point[10];

  uniform vec3 point3d[10];

  uniform vec4 color[10];

  uniform sampler2D layer[10];

  uniform sampler2D inLayer;

  注意

  "inLayer" 代表输入层。

  sampler2D 是一种由 GLSL提供的变量类型,不用理解该变量类型。如果你想了解图层参数,请参考 "getColor"

  "uniform" 代表全局变量。 它会告诉GPU 不需要对每个"GPU工人"分配内存并初始化该值,只需在"GPU老板"开始工作的时候分配内存即可。"uniform" 一般被声明在用户代码的外面,您一般不需要写这种变量类型。

  3、Debug

  在插件面板勾选debug 复选框

  此时会弹出调试窗口,此窗口用于反馈错误信息。

PixelsWorld(像素世界着色器代码渲染AE插件)

  如果想在调试窗口输出信息,请在Lua (CPU & GPU) 模式下使用

  4、shadertoy.com Code

  用法

  在此模式下,你可以直接使用来自 shadertoy.com的代码。

PixelsWorld(像素世界着色器代码渲染AE插件)

  注意

  并非所有来自 shadertoy.com的代码均可在PixelsWorld下完美运行 (比如带有音频输入或者需要VR支持的代码)

  细节

  当输入来自 shadertoy.com的代码时,PixelsWorld 会进行语法分析(将shadertoy.com代码协议转为PixelsWorld的)并且会改变输入代码。也就是说,下次打开编辑窗口时,可能会得到不同的代码内容 (当变量名称与PW内部变量发生冲突时,就会发生此情况).

  示例 : 导入以下代码

  InputShadertoy.shader

  void mainImage( out vec4 fragColor, in vec2 fragCoord ){

  vec2 uv = fragCoord/iResolution.xy;

  fragColor = vec4(uv,0,1);

  }

  会提供漂亮的uv色彩图案

  再次打开编辑器, 你会得到类似以下代码:

  LaterShadertoy.shader

  void mainImage( out vec4 fragColor, in vec2 fragCoord ){

  vec2 pw_user_uv = fragCoord/iResolution.xy;

  fragColor = vec4(pw_user_uv,0,1);

  }

  你会发现变量 uv 变成了pw_user_uv.

  这是因为PixelsWorld已经存在变量uv。我们会添加前缀 pw_user_ 来避免名称冲突。

  以下是会被修改的变量列表:

  uv

  outColor

  getColor

  uv2xy

  xy2uv

  slider

  angle

  checkbox

  point

  point3d

  color

  layer

  layerResolution

  inLayer

  time

  fps

  width

  height

  origin

  resolution

  INPUT_LAYER_INDEX

  OUTPUT_LAYER_INDEX

  platform

  host

  5、Lua Code

  * Lua是一种轻量级,高级,多范式编程语言,主要用于嵌入式应用程序中. ——Wiki)

  版本 : Lua5.3

  因此,Lua可用于管理Ae和用户之间通信。 我们为其提供环境,以及一些便利功能供您使用。 在Lua中,您可以 :

  获取像素数据

  编写像素数据

  运行 JavaScript

  运行 GLSL

  获取参数数据

  运行外置C语言库 (棒!)

  加载外挂lua模块

  由于本项目的高级功能,使用Lua渲染模式的用户,应当具有基本的编程能力,并对Lua语言有基本的了解。 如果您对Lua一无所知,请不要担心,它与Ae和JavaScript中的表达式非常相似。

  运行Lua代码

  切换语言为Lua ( CPU & GPU )

PixelsWorld(像素世界着色器代码渲染AE插件)

  导入代码:

  hello.lua

  pw.debug.clear()

  a = 5+6

  b = "PixelsWorld"

  c = "is cool!"

  d = time

  e = pw.ch("slider",0)

  f = "5 + 6 = " .. a .. "\nMessage : " .. b .. " " .. c .. "\nCurrent time is : " .. d .. " (s)\nValue of slider0 is : " .. e

  pw.report(f)

  a..b 将变量a与b合并为字符串。

  pw.debug.clear() 清除调试窗口内的信息。

  pw.report() 在调试窗口反馈信息。

  pw.ch() 获取指定参数值。

  您可以在每行的末尾添加 ; 非必须。Lua会将\ n(换行符)视为一段代码的结束标记。

  如果打开调试窗口 (勾选debug 复选框), 会得到以下信息:

PixelsWorld(像素世界着色器代码渲染AE插件)

  6、JavaScript代码

  Javascript 可通过pw.js("Your code") 在 Lua (CPU & GPU) 模式下执行。

PixelsWorld(像素世界着色器代码渲染AE插件)

  7、CMD代码

  CMD命令可以通过 pw.cmd("你的CMD命令") 在 Lua (CPU & GPU) 模式下执行。

PixelsWorld(像素世界着色器代码渲染AE插件)

  executeCMD.lua

  --Works on Windows platform

  pw.cmd("echo Hello PixelsWorld! & pause");

∨ 展开

网友评论

我要跟帖
取消
所有评论 共 0