5个版本
0.2.0 | 2024年7月4日 |
---|---|
0.2.0-rc | 2024年6月11日 |
0.1.2 | 2024年2月19日 |
0.1.1 | 2024年2月19日 |
0.1.0 | 2024年2月19日 |
在游戏开发类别中排名439
每月下载量82
7.5MB
291 行
风之笛着色器
一个类似于《塞尔达传说:时之笛》中角色使用的卡通着色器。主要代码来自这个视频中提出的思想。
展示
球体
全天场景
白天场景
夜间场景
功能
着色器具有以下属性
- 它是一个只有两种颜色的卡通着色器:高光和阴影。
- 两种颜色之间的边缘不是完全硬的,而是有一个非常轻微的渐变。
- 使用的颜色调色板基于一天中的时间和天气。
- 模型在边缘有一个轮廓高光,使其更加突出。
所有颜色和纹理遮罩都来自《塞尔达传说:时之笛》。
与《风之笛》的区别
- 此着色器支持多个光源,如《塞尔达传说:荒野之息》。原始《风之笛》只支持单个光源。
- 轮廓高光也来自《塞尔达传说:荒野之息》。
- 《风之笛》使用更多的天气条件,但我认为其中大部分太具体,不适合包含在这个着色器中。
请注意,此着色器仅复制《风之笛》中角色上所见的内容,而不是环境!
示例
use bevy::prelude::*;
use bevy_wind_waker_shader::prelude::*;
fn main() {
App::new()
.add_plugins((DefaultPlugins, WindWakerShaderPlugin::default()))
.add_systems(Startup, spawn_character)
.run();
}
fn spawn_character(mut commands: Commands, asset_server: Res<AssetServer>) {
commands.spawn((
SceneBundle {
scene: asset_server.load("models/Fox.glb"),
..default()
},
WindWakerShaderBuilder::default()
.time_of_day(TimeOfDay::Afternoon)
.weather(Weather::Sunny)
.build(),
));
}
兼容性
bevy | bevy_wind_waker_shader |
---|---|
0.14 | 0.2 |
0.13 | 0.1 |
依赖关系
~38–75MB
~1.5M SLoC