NewBeeVG.ThreeD
1.0.1.5
dotnet add package NewBeeVG.ThreeD --version 1.0.1.5
NuGet\Install-Package NewBeeVG.ThreeD -Version 1.0.1.5
<PackageReference Include="NewBeeVG.ThreeD" Version="1.0.1.5" />
<PackageVersion Include="NewBeeVG.ThreeD" Version="1.0.1.5" />
<PackageReference Include="NewBeeVG.ThreeD" />
paket add NewBeeVG.ThreeD --version 1.0.1.5
#r "nuget: NewBeeVG.ThreeD, 1.0.1.5"
#:package NewBeeVG.ThreeD@1.0.1.5
#addin nuget:?package=NewBeeVG.ThreeD&version=1.0.1.5
#tool nuget:?package=NewBeeVG.ThreeD&version=1.0.1.5
<p align="center"> <img src="./assets/logo200.jpg" alt="logo" /> </p>
NewBeeVG(NewBee Visual Content Generator) 是基于 NewBeeUI 的程序化动画/视频内容生成工具,通过 AI 编程,可以快速的制作视频内容。
NewBeeVG.ThreeD 是 NewBeeVG 的 3D 扩展,它集成了 HelixToolkit.Nex 3D 引擎,提供完整 3D 实时 / 离线渲染、动画能力。
运行说明
由于 HelixToolkit.Nex 还在开发阶段,nuget 上的 HelixToolkit.Nex 包和 NewBeeVG.ThreeD 包并不兼容。现阶段,要使用 NewBeeVG 动画,请直接基于源码运行,而非 nuget 包。
编译运行
需要下载 NewBeeVG 的源码和 NewBeeUI 的源码,放在相同的目录下,运行 ·NewBeeVG.slnx· 文件即可打开项目。
由于 NewBeeVG 引用了 HelixToolkit.Nex 项目,下载时需要加上 --recurse-submodules 参数,否则会导致编译失败。下载示例:
git clone --recurse-submodules https://github.com/nscript-site/NewBeeVG.git
简单示例
NewBeeVG.Demo 项目下 Canvas3DSample 是基本的 3D 动画示例。
apps/files/threed.cs 是对应的单文件应用 3D 示例:
#!/usr/bin/env dotnet
font("阿里巴巴普惠体 2.0");
float len = 10;
float thickness = 5;
HStack([
VStack([
TextBlock("3D动画 (Camera 固定)").Font(40, SKColors.Black),
Canvas3D(800,800,SKColors.Black)
.Camera(PerspectiveCamera(Vec3(10, 12, -25)))
.Nodes([
GroundGrid(10,1,SKColors.White,1),
Line3D(Vec3(),Vec3(0,0,len),SKColors.Red,thickness)
.OnFrameT(e=>e.Sender.End = Vec3(0,0,len*e.pf)),
Line3D(Vec3(),Vec3(0,len,0),SKColors.Green,thickness)
.OnFrameT(e=>e.Sender.End = Vec3(0,len*e.pf,0)),
Line3D(Vec3(),Vec3(len,0,0),SKColors.Blue,thickness)
.OnFrameT(e=>e.Sender.End = Vec3(len*e.pf,0,0)),
]).Align(0,-1)
]),
VStack([
TextBlock("3D动画 (Camera 旋转)").Font(40, SKColors.Black),
Canvas3D(800,800,SKColors.White).Ref(out var canvas)
.OnFrame(e=>{ canvas.RotateCamera(2f,0); canvas.ZoomCamera(-0.1f); })
.Camera(PerspectiveCamera(Vec3(-10, -12, 25)))
.Nodes([
GroundGrid(10,1,SKColors.Black,1),
Line3D(Vec3(),Vec3(0,0,len),SKColors.Red,thickness),
Line3D(Vec3(),Vec3(0,len,0),SKColors.Green,thickness),
Line3D(Vec3(),Vec3(len,0,0),SKColors.Blue,thickness),
]).Align(0,-1)
])
])
.Align(0, 0)
.AsClip(out var clip1, frames: 40, name: "3d");
VStack([
TypstFile("./typst/code2.typ").MaxHeight(900).Align(0,0),
TextBlock("生成视频的全部代码").Font(40, SKColors.Black).Align(0,-1),
]).Align(0,0).AsClip(out var clip2, frames: 120, name: "code");
run(stage(1920, 1080, bg: SKColors.Orange), [clip1,clip2]);
record-animate.gif
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- HelixToolkit.Nex (>= 1.0.0)
- HelixToolkit.Nex.Engine (>= 1.0.0)
- HelixToolkit.Nex.Graphics.Vulkan (>= 1.0.0)
- NewBeeVG (>= 1.0.1.5)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.1.5 | 47 | 2026/9/9 |