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

软件功能
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平台兼容,我们列出了部分代码供您参考。

1、如何使用GLSL
GLSL代码请在GLSL(GPU) 模式下运行;

在 "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"即可。
正常情况下,应该会得到如下效果:

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

当前拥有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参数声明方式如下所示:
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 复选框
此时会弹出调试窗口,此窗口用于反馈错误信息。

如果想在调试窗口输出信息,请在Lua (CPU & GPU) 模式下使用
4、shadertoy.com Code
用法
在此模式下,你可以直接使用来自 shadertoy.com的代码。

注意
并非所有来自 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 )

导入代码:
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 复选框), 会得到以下信息:

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

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

executeCMD.lua
--Works on Windows platform
pw.cmd("echo Hello PixelsWorld! & pause");
∨ 展开