|
deki-3d 0.19.0
Deki 包参考
|
以渲染通道形式实现的软件光栅化 3D:网格、透视相机和 .obj 导入,与 2D 共用同一个帧缓冲。
仓库:github.com/dekiengine/deki-3d · 最新版本:0.19.0 · 需要引擎 0.19.0 或更高版本 · 依赖:deki-rendering
使用 DekiEditor --packages-add deki-3d <project> 或通过包管理器安装。引擎自身的组件和 C++ API 见 Deki 文档。
在编辑器中显示为 **3D**。
| 组件 | 类别 | 说明 |
|---|---|---|
| Mesh3DSettings | 3D | 3D 渲染通道的绘制方式:分块、纹理与顶点开关、光照和线程。 |
| MeshComponent | 3D | 绘制 3D 网格。由对象的变换决定其位置;场景相机必须为透视模式才能看到它。 |
可以从构建中去掉的部分。带有 define 的功能通过该 define 开关,其余的随其组件一起被剥离。
| 功能 | define | 默认值 |
|---|---|---|
| Software rasteriser | DEKI_FEATURE_3D_SOFTWARE | 开 |
3D 渲染通道的绘制方式:分块、纹理与顶点开关、光照和线程。
检视器中的名称:Mesh3D 设置 · 类别:3D · 类型:Deki3D::Mesh3DSettings
| 属性 | 类型 | 默认值 | 约束 | 说明 |
|---|---|---|---|---|
| tileSize | int32 | 32 | 8 到 512 | 分块边长,单位为像素。深度缓冲只有一个分块大小,因此 32 只占 2 KB,适合微控制器;桌面平台可以用 128 或更大。 |
| perspectiveCorrect | bool | true | 校正纹理透视。关闭后会出现 PlayStation 时代硬件的纹理扭曲,并节省约十分之一的填充开销。 | |
| vertexSnap | bool | false | 将投影后的顶点取整到整像素,呈现定点数时代硬件的抖动效果。 | |
| lightYaw | float | -25 | -180 到 180 | 场景光源的来向,绕垂直轴旋转。0 表示在相机后方,90 表示在右侧。 |
| lightPitch | float | 55 | -90 到 90 | 场景光源的高度。90 为正上方,0 与地平线齐平。 |
| ambient | float | 0.25 | 0 到 1 | 背向光源的面仍有多亮。0 时这些面为全黑,效果强烈;数值越高,明暗越平淡。 |
| fillThreads | int32 | 1 | 1 到 16 | 在设备或模拟器构建中填充屏幕的线程数。各分块相互独立,因此这是唯一能随核心数提速的部分:1 表示完全不启动线程,2 适合双核开发板,超过核心数后便不再有帮助。编辑器以可卸载的 DLL 形式加载包,因此预览始终使用一个线程;两种方式画面完全相同。 |
绘制 3D 网格。由对象的变换决定其位置;场景相机必须为透视模式才能看到它。
检视器中的名称:网格组件 · 类别:3D · 类型:Deki3D::MeshComponent
| 属性 | 类型 | 默认值 | 约束 | 说明 |
|---|---|---|---|---|
| mesh | AssetRef (MeshAsset) | "" | 已编译的网格资源。在此指定导入的模型;留空则改为绘制下方的基本体。 | |
| primitive | enum | "Cube" | Cube, Quad, Pyramid | 未指定网格资源时绘制的内置形状。 |
| tintColor | Color | "#000000FF" | 与网格自身的颜色相乘。白色则保持不变。 | |
| shading | enum | "VertexLit" | Unlit, VertexLit, Flat | 无光照为纯色。顶点光照根据场景光源为每个顶点着色。平面着色按整个三角形着色,呈现棱面分明的效果。 |
| doubleSided | bool | false | 同时绘制网格的内侧和外侧。填充开销约为两倍。 |
从 RendererComponent 继承 sortingOrder, ignoreClip, pixelSnap, alphaMode。
更新日志为英文。
更早的版本:CHANGELOG.md
由包的反射数据生成(引擎 0.19.0)。属性名就是场景文件中使用的键。重命名后会保留别名(兼容性)。