枪声
像GLTF,但程序三.js资产.
A 类 .glts 文件是一个小的TypeScript脚本,它用普通的Tree.js代码构建一个场景. GLTSLoader 捡起并运行它 给你一个本地人 THREE.Scene 您可以在任何地方添加, 更新每个框架, 热重装, 并处理 .
使用GLTS 当一个资产比模型更容易写作代码时:程序几何,参数化或动画道具,或由AI编码代理所写的资产. 资产可以装入其他资产,通过帮助模块共享代码,实例为Tree.js InstancedMesh,导入 npm 包,并带来自己的预览中转和渲染设置.
GLTS 运行脚本作为代码,而不是在沙盒中. 只装入您信任的脚本 .
pnpm add @drawcall/glts three
使用量
脚本构建其资产 scene 它进口:
// public/crystal.glts
import * as THREE from "three/webgpu"
import { disposeRecursive, onDispose, onFrame, scene } from "@drawcall/glts"
const crystal = new THREE.Mesh(new THREE.IcosahedronGeometry(), new THREE.MeshNormalMaterial())
scene.add(crystal)
onFrame((delta) => {
crystal.rotation.y += delta
})
onDispose(() => disposeRecursive(scene))
该应用程序像其他任何 Three.js 资产一样加载并使用 WebGPU 制作:
import { GLTSLoader } from "@drawcall/glts"
import * as THREE from "three/webgpu"
const renderer = new THREE.WebGPURenderer({ canvas })
await renderer.init()
const loader = new GLTSLoader(new THREE.LoadingManager())
const crystal = await loader.loadAsync("/crystal.glts")
scene.add(crystal)
const timer = new THREE.Timer()
renderer.setAnimationLoop((time) => {
timer.update(time)
crystal.update(timer.getDelta())
renderer.render(scene, camera)
})
在虚拟应用程序中,添加 glts() 从 @drawcall/glts/vite 转到插件:公共脚本然后装入预编译并共享应用程序的软件包.
国 际
显示 a .glts 向巴布亚新几内亚提供资产或将其导出至GLB(节点22.18+或24.11+):
npx drawcall glts render asset.glts -o preview.png
npx drawcall glts render asset.glts -o views.png --views '[[{"camera":"+x"},{"camera":"persp"}]]'
npx drawcall glts export asset.glts -o asset.glb
渲染用途 @drawcall/webgpu (英语),有或没有GPU,并包括预览中转;在节点.js中, render(file, options) 从 @drawcall/glts/node 返回与字节相同的 PNG。 导出排除并写入支持的几何、材料、纹理、外观和清晰的动画剪辑;程序框回调保留在 .glts 文档.
代理技能
其他一切(帮助者、构成、进取、渲染、再装入、包件和Vite插件)都记录在 GLTS 技能。为您的编码代理安装它 :
npx skills add drawcall-ai/glts --skill glts
技术也飞入 @drawcall/glts npm 软件包在 skills/glts/SKILL.md这样 技术-npm 自动链接 node_modules,在您安装的版本中.