- 使用指南
- 数字绘画基础知识
- 参考手册
- 实例教程
- 常见问题解答
- 参与者手册
- 扩展包和第三方教程
- 其他
- 显示设置
- 日志查看器
- 数位板设置
- Automated Krita builds on CI matrix
- Brush GUI Design with Lager
- Building Krita from Source
- CMake Settings for Developers
- Enable static analyzer
- How to patch Qt
- Introduction to Hacking Krita
- The Krita Palette format KPL
- Krita SVG Extensions
- Modern C++ usage guidelines for the Krita codebase
- Developing Features
- Optimize Image Processing with XSIMD
- Optimizing tips and tools for Krita
- Google Summer of Code
- Advanced Merge Request Guide
- Python Developer Tools
- Introduction to Quality Assurance
- Making a release
- Reporting Bugs
- Strokes queue
- Testing Strategy
- Triaging Bugs
- Unittests in Krita
- 矢量图层
- 常规设置
- 颜料图层
- 图层组
- 克隆图层
- 文件图层
- 填充图层
- 滤镜图层
- 笔刷引擎
- 透明度蒙版
- 滤镜笔刷引擎
- 滤镜蒙版
- 裁剪工具
- 移动工具
- 变形工具
- 变形笔刷引擎
- 变形蒙版
- 网格与参考线
- 工作区
- 笔刷预设
- 色板
- 键盘快捷键
- 设置菜单
- 性能设置
- 笔尖
- 不透明度和流量
- 常用笔刷选项
- 多路笔刷工具
- 手绘笔刷工具
- 直线工具
- 曲线工具
- 辅助尺工具
- 图层
- 矩形选区工具
- 椭圆选区工具
- 多边形选区工具
- 手绘轮廓选区工具
- 相似颜色选区工具
- 相连颜色选区工具
- 曲线选区工具
- 磁性选区工具
- 形状选择工具
- 锚点编辑工具
- 工具菜单
- 动画时间轴
- 绘图纸外观
- 动画曲线
- 分镜头脚本
- 颜色
- 色域蒙版
- 美术拾色器
- 多功能拾色器
- 智能填色蒙版工具
- *.gih
- 像素笔刷引擎
- *.kra
- SeExpr
- SeExpr 脚本
- 渐变
- 颜色涂抹笔刷引擎
- 纹理
- 拾色器工具
- LUT 色彩管理
- 小型拾色器
- 有损和无损图像压缩
- *.bmp
- *.csv
- *.exr
- *.gbr
- *.gif
- *.heif 和 *.avif
- *.jpg
- *.jxl
- *.kpl
- *.ora
- .pbm、.pgm 和 *.ppm
- *.png
- *.psd
- *.svg
- *.tiff
- *.webp
- 数学运算
- 变暗
- HSX
- 变亮
- 颜色混合
- 负片
- 其他
- 二元逻辑
- 取模运算
- 二次方
- 鬃毛笔刷引擎
- 粉笔笔刷引擎
- 克隆笔刷引擎
- 曲线笔刷引擎
- 力学笔刷引擎
- 网格笔刷引擎
- 排线笔刷引擎
- MyPaint 笔刷引擎
- 粒子轨迹笔刷引擎
- 快速笔刷引擎
- 形状笔刷引擎
- 草图笔刷引擎
- 喷雾笔刷引擎
- 切线空间法线笔刷引擎
- 笔刷选项
- 锁定笔刷选项
- 蒙版笔刷
- 传感器
- 添加形状
- 动画
- 矢量图形排列
- 笔刷预设历史
- 色彩通道
- 颜色滑动条
- 图层显示方案
- 过渡色调混合器
- 直方图
- 导航器
- 图案
- 录像工具
- 参考图像
- 形状属性
- 图像版本快照
- 量化拾色器
- 操作流程
- 触摸屏辅助按钮
- 撤销历史
- 矢量图形库
- 宽色域拾色器
- 调整颜色/图像
- 艺术效果
- 模糊
- 边缘检测
- 浮雕
- 图像增强
- 映射
- 其他
- 小波分解
- 图层样式
- 选区蒙版
- 拆分透明度通道到蒙版
- 编辑菜单
- 文件菜单
- 帮助菜单
- 图像菜单
- 图层菜单
- 选择菜单
- 视图菜单
- 窗口菜单
- 作者档案设置
- 画布快捷键设置
- 隐藏面板模式设置
- 色彩管理设置
- 拾色器设置
- G’Mic 设置
- 弹出面板设置
- Python 插件管理器
- 笔尖
- 笔刷预设
- 图案
- 文字工具
- 渐变编辑工具
- 图案编辑工具
- 西文书法工具
- 矩形工具
- 椭圆工具
- 多边形工具
- 折线工具
- 手绘路径工具
- 力学笔刷工具
- 填充工具
- 闭合填充工具/圈涂
- 渐变工具
- 智能补丁工具
- 参考图像工具
- 测量工具
- 缩放工具
- 平移工具
- Building Krita with Docker on Linux
- Building krita on host Linux system (unsupported)
- Building Krita for Android
- Working on Krita Dependencies
- 渐变
- 多维网格
- 图案
- 网点
- 单纯形法噪点
SeExpr 入门实例
在 4.4 版本加入: 本实例教程将介绍 SeExpr 表达式语言的用法。
SeExpr 介绍
SeExpr 是由迪士尼动画工作室设计开发的一种可嵌入的表达式语言,它让宿主应用程序可以按照脚本定义动态生成图案。皮克斯动画工作室在 RenderMan 文档 中将它称作“可通过脚本编程的图案生成器与组合器”。
Krita 在填充图层中提供了使用 SeExpr 的模式。
参见
SeExpr 背景知识
要理解 SeExpr 的用法,我们首先要知道栅格图像 (raster) 和程序化图像 (procedural) 的区别。
你日常所见的绝大多数计算机图像都是栅格图像。无论是照片、动漫截图还是表情包,它们的图像放大后都能看到按照网格排列的马赛克状颜色方块,叫做“像素”。
栅格图像有一些缺点。首先,它们的像素分辨率在保存后将被 固定 下来。你无法通过缩放得到更多细节。如果你要修改栅格图像,你最好找回源图像,使用栅格图像编辑程序,例如 Krita 等进行加工,这才能保证更改后的质量。
其次,栅格图像保存所需的 二级存储空间 很大,这包括运行内存 (RAM) 和外部存储器 (如硬盘或者 SD 卡等)。它们的文件大小按照 图像像素大小的二次方增长 。例如在 Krita 的 创建新图像 对话框底部显示了将要创建的图像的像素大小、色彩深度和 所需内存 的关系。
以一个 8 位色彩深度的正方形纹理图层为例:
像素边长 | 所需内存 |
---|---|
256 | 256 KB |
512 | 1 MB |
1024 | 4 MB |
2048 | 16 MB |
4096 | 64 MB |
栅格图像的一种替代方案是 矢量图形 ,如 SVG 图像等。这种图像使用如贝塞尔曲线等数学公式来定义形状,因此无论如何缩放,也不会影响最终的精度。
SeExpr 是一种 程序化图形 生成器,它和前两者是完全不同的类型。 SeExpr 图像脚本的二次存储体积与矢量图形一样很小,只有几 KB,但和矢量图形不同,这些脚本并非数学公式。你可以对 SeExpr 的脚本进行 编程 ,指定纹理的任意一点的着色方法。SeExpr 生成的图像没有精度限制,你可以在任意分辨率下为填充图层输出复杂的图案。
如何编写 SeExpr 脚本
在接下来的实例教程中,我们将向你展示如何使用 SeExpr 编写脚本,将结果输出到填充图层,并将它保存为 SeExpr 脚本预设。
首先前往 图层 面板,添加一个填充图层。在对话框中的列表中选择 SeExpr,如下图所示:
SeExpr 页面有两个标签页。我们先关注 脚本选项 标签页。
备注
要进一步了解 SeExpr 两个标签页的具体功能,可在 填充图层 的页面点击 SeExpr 查看。
现在先让我们把图层填充成浅蓝色。
SeExpr 脚本必须定义输出变量,因为我们要填充颜色,因此我们需要呼叫 $color
变量。SeExpr 在 RGB 色彩空间 中定义颜色,每种颜色以三个一组的数值进行定义,它们被称作 颜色矢量 。下面我们将要给 $color
变量赋值。
前往对话框底部的文本框,清除所有已有文本,然后重新编写脚本。让我们给 $color
变量赋予数值 [0.5, 0.5, 1]
(50% 红、50% 绿、100% 蓝):
$color = [0.5, 0.5, 1];
SeExpr 必须知道哪个变量输出最终颜色数值,因此我们要在脚本的末尾添加该变量的名称:
$color
本例子的完整脚本如下所示:
$color = [0.5, 0.5, 1]; $color
点击 确定 ,该脚本的效果将输出到填充图层,如下图所示:
警告
SeExpr 本身 不进行色彩管理 ,它总是按照 32 位浮点 , gamma 校正亮度 ,sRGB 色彩空间进行颜色计算。Krita 会按照 sRGB-elle-V2-srgbtrc.icc 特性文件把 SeExpr 输出的图像数据转换到工作图像的色彩空间。
如果你不知道什么是色彩管理,请参考 色彩管理流程 的介绍。
通过对话框控件修改脚本
除了直接编写脚本外,你还可以通过图形界面对脚本的变量进行编辑。在之前建立的浅蓝色填充图层 Fill Layer 1 上面点击右键,选择 图层属性… 打开填充图层对话框。
注意对话框中间一栏:只要脚本的语法正确,那里就会显示相关的控件,让你可以通过图形界面编辑每个变量。在上图所示的例子中,你可以通过 3 种方式更改 $color
变量:
在红、绿、蓝数值框中直接输入颜色数值。
拖动每个颜色通道下方的滑动条。
点击颜色通道左边的预览色块,这将弹出拾色器对话框,你可以用它直接选取一种颜色。
中间栏右下角显示了一个 新增变量 (Add new variable) 按钮,点击后将弹出下面的对话框:
这个对话框列出了 SeExpr 支持的所有变量类型:
- Curve 和 Color curve
你可以将制作好的 SeExpr 脚本保存成预设,这样就可以在日后重复使用它了。
要将当前 SeExpr 脚本保存为新预设,请前往 选项 标签页:
点击 保存新的 SeExpr 预设… 按钮,打开下面的对话框:
在对话框的顶部输入框可以更改脚本预设的名称,在右栏按钮可以指定一个易于分辨的缩略图。
提示
如果该预设是已有脚本的副本,它的名字后面将带有 Copy (副本) 字样。你也可以把它改掉。
你可以使用对话框右栏的一系列按钮来为脚本预设指定缩略图:
- 加载已有缩略图
如果你对脚本预设进行了修改, 选项 标签页右上角将显示两个小按钮:
点击“重新加载”按钮,脚本会被重置为它原本的状态。点击 覆盖预设 按钮,当前设置将覆盖原脚本。
点击铅笔状的“编辑”按钮,即可编辑该脚本预设的名称,之后点击 保存 按钮即可完成重命名:
将 SeExpr 导出为资源包文件
你可以根据 资源管理 页面的指引导出任意 SeExpr 脚本为资源包,与其他人分享。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论