TiXL 中 PosiStageNet(PSN)实时追踪数据接入与输出:PosiStageInput / PosiStageOutput 算子实战指南

发布时间:2026/9/20 13:48:14
TiXL 中 PosiStageNet(PSN)实时追踪数据接入与输出:PosiStageInput / PosiStageOutput 算子实战指南 音视频图形学桌面应用【免费下载链接】t3TiXL is an open source software to create realtime motion graphics.项目地址https://gitcode.com/GitHub_Trending/t3/t3点击查看免费下载本文以 TiXL 开源实时动效软件内置的Lib.io.posistage算子库为核心系统讲解如何通过 PosiStageNetPSN协议接收与发送 3D 追踪数据。你将掌握PosiStageInput与PosiStageOutput两个算子的全部输入输出参数、底层网络与数据解析实现并能在虚拟制作、现场演出等场景中完成追踪数据接入、点数据驱动图形、以及向其他应用发布追踪源的真实工作流。PosiStageNet 协议与 TiXL 中的应用场景PosiStageNet简称 PSN是现场演出与虚拟制作领域常见的 UDP 组播协议用于在设备之间实时流转相机、物体与表演者的 3D 追踪数据位置与朝向。在 TiXL 中Lib.io.posistage子命名空间提供了收发两端的一对算子归属Lib.io输入输出算子族完整列表见 Lib.io 命名空间索引PosiStageInput—— 使用 PSN 协议接收实时 3D 追踪数据PosiStageOutput—— 使用 PSN 协议发送实时 3D 追踪数据。典型应用场景包括将动捕系统如光学追踪、惯性追踪发出的 PSN 数据流接入 TiXL用追踪点驱动粒子、模型或摄像机反过来将 TiXL 场景中的点位置/朝向作为追踪源发布到网络上供其他虚拟制作或演出控制软件消费。核心索引文档见 Lib.io.posistage。算子总览Lib.io.posistage命名空间由两个算子组成分别承担 PSN 网络的监听端与发送端角色算子方向功能详细文档PosiStageInput接收监听 PSN 组播包解析追踪器位置与朝向PosiStageInput.mdPosiStageOutput发送将点缓冲封装为 PSN 数据包发送到指定地址PosiStageOutput.md二者均实现了IStatusProvider与ICustomDropdownHolder接口源码见 PosiStageInput.cs、PosiStageOutput.cs前者用于在节点上直观展示连接状态、监听/发送统计等运行信息后者为LocalIpAddress输入提供本机网卡 IPv4 地址下拉选择便于快速挑选接入追踪网络的网卡。PosiStageInput接收 PSN 追踪数据PosiStageInput在后台线程中监听指定 UDP 端口并加入组播组解析收到的 PSN 数据包后将每个追踪器tracker的位置与朝向同时整理成 GPU 结构化缓冲和字典两种形式输出。其搜索别名AKA为posistage、tracking、stage、psn、motion capture。输入参数参数名类型说明ListenBoolean开关启用/停用 PSN 数据包监听。LocalIpAddressString监听所用网卡接口的 IP 地址下拉框列出本机可用地址请确保选择连接追踪网络的网卡。源码默认值为0.0.0.0表示任意接口见 PosiStageInput.cs。MulticastIpAddressString加入的组播地址PSN 常用默认值为236.10.10.10源码默认值即为此值组播地址必须位于224.0.0.0 – 239.255.255.255区间。PortInt32监听 PSN 数据的 UDP 端口。源码默认端口为56565PosiStageInput.cs文档中提及的12345亦为 PSN 常见的替代端口务必与发送端端口一致。PrintToLogBoolean开启后把接收到的追踪数据与状态信息打印到 T3 日志便于调试。输出输出名类型说明TrackersAsBufferT3.Core.DataTypes.BufferWithViews结构化的点缓冲含位置、朝向四元数等字段适合直接交给其他处理点数据的算子如渲染、粒子系统使用效率高。TrackersAsDictT3.Core.DataTypes.Dictfloat字典形式的追踪数据便于人工查看和按名称抽取特定追踪器字段。IsListeningSystem.Boolean当前是否处于监听状态。BufferWithViews与DictT是 TiXL 核心数据类型定义见 BufferWithViews.cs 与 Dict.cs。源码视角监听线程与数据解析从源码结构看PosiStageInput的核心是一条常驻后台监听线程PosiStageInputListener启动与校验Listen置真时创建UdpClient设置ReuseAddress套接字选项Bind到LocalIpAddress:Port再通过JoinMulticastGroup加入组播组若组播地址非法不在224.0.0.0 – 239.255.255.255内会直接报错并停止。逐包解析监听循环阻塞于UdpClient.Receive收到数据后调用ParsePsnDataPacket解析随后使TrackersAsBuffer的脏标记失效以触发下游重算见 PosiStageInput.cs。协议解码ParsePsnDataPacket采用 BinaryReader 顺序解析 PSN 的 chunk 结构——根头0x6755→ 追踪器列表 chunk0x0001→ 每个追踪器的位置字段0x0000三个 float与朝向字段0x0002轴角三 float非法/越界数据会被跳过保证解析健壮性PosiStageInput.cs。朝向转换接收端把轴角axis-angle向量转换为四元数写入缓冲ToQuaternion同时在字典输出中额外提供Pan/Tilt/Roll欧拉角由ToEulerAngles换算单位为度。缓冲复用为减少 GPU 资源分配点缓冲在追踪器数量不变时复用已有BufferWithViews仅通过UpdateSubresource更新内容数量变化时才重新创建PosiStageInput.cs。输出状态信息IStatusProvider会给出直观反馈无追踪器时提示 No trackers received.正常时提示 Listening on {ip}. Tracking {N} sources.缓冲区更新失败则报告 GPU buffer update failed: ...。PosiStageOutput发送 PSN 追踪数据PosiStageOutput将输入的点缓冲封装成 PSN 数据包并经由 UDP 发送使 TiXL 可以充当其他应用虚拟制作、演出控制系统的追踪数据源。其 AKA 为posistage、tracking、stage、psn、motion capture、sender。输入参数参数名类型说明ConnectBoolean初始化或重新初始化 UDP 套接字。LocalIpAddressString发送数据所用的本机 IP留空则由系统自动选择。源码默认值为127.0.0.1PosiStageOutput.cs发送到本机测试时可保持默认跨机发送需改为实际网卡地址。NamesString多输入各追踪器的名称列表顺序需与TrackerData中的点一一对应用于 PSN 信息包INFO 包中的追踪器命名。PrintToLogBoolean开启后将已发送数据包信息打印到 T3 日志。SendOnChangeBoolean开启后每当TrackerData输入发生变化即自动发送数据包源码默认开启true。SendTriggerBoolean手动触发一次 PSN 数据包发送的触发器。ServerNameString本 PSN 数据源的名称便于接收端识别源码默认 T3 PSN Output。TargetIpAddressString数据包目标 IP通常是组播地址236.10.10.10源码默认值。TargetPortInt32目标 UDP 端口源码默认56565PosiStageOutput.cs需与接收端监听端口一致。TrackerDataBufferWithViews追踪点结构化缓冲输入每个点包含位置Position与朝向Rotation/四元数。输出输出名类型说明CommandT3.Core.DataTypes.Command命令输出可接入需要命令触发的下游节点。IsConnectedSystem.Boolean套接字是否已成功建立。源码视角从 GPU 缓冲到 PSN 数据包PosiStageOutput的发送链路如下PosiStageOutput.cs读回 GPU 缓冲通过CopyResource将TrackerData对应的 GPU 结构化缓冲复制到 Staging 缓冲再MapSubresource读回 CPU 端PsnPoint[]ReadBufferData使追踪点数据进入 CPU 可序列化状态。组包发送BuildPsnDataPacket按 PSN 协议构造数据包——根 chunk0x6755版本 2.03、帧序号、帧包计数→ 追踪器列表 chunk0x0001→ 每个追踪器的位置0x0000与轴角朝向0x0002子 chunk。追踪器 ID 按点在数组中的索引从 0 递增。信息包每次数据包发送后若距上次信息包超过 1 秒再构造并发送 INFO 包根头0x6756携带ServerName与各追踪器名称便于接收端识别来源与命名BuildPsnInfoPacket。触发控制仅在Connect为真且SendOnChange或SendTrigger满足时发送手动触发后会自动复位SendTrigger避免连续触发。坐标系约定发送时对位置 Z 轴与轴角 Z 分量取反-point.Position.Z、-axisAngle.Z用于 PSN 惯用的坐标约定对齐接收端侧则无此翻转跨系统联调时若发现镜像差异可从该约定入手排查PosiStageOutput.cs。状态输出会提示Socket ready on {ip}、Sent 1 packet with {N} trackers for frame {id}.或各类错误信息非法 IP、UDP 发送失败等可作为联调反馈依据。实战构建一条 PSN 接收 → 驱动 → 回发链路以下是在 TiXL 中搭建完整 PSN 工作流的推荐步骤接入追踪数据在图中添加PosiStageInput。将Listen设为trueLocalIpAddress选为连接追踪网络的网卡用下拉框选择组播地址与端口使用发送端一致的配置如236.10.10.10:56565。节点状态显示 Tracking N sources. 即表示已收到数据。消费点数据把TrackersAsBuffer接到粒子、实例化或渲染类算子的点输入上实现追踪驱动的实时动效需要单独读取某个追踪器的数值时用TrackersAsDict通过/{id}/PosX、/{id}/PosY、/{id}/PosZ、/{id}/Pan、/{id}/Tilt、/{id}/Roll路径取数字典键格式由 PosiStageInput.cs 生成。回发追踪源添加PosiStageOutput将上一步的TrackersAsBuffer或其他点缓冲接入TrackerData设置TargetIpAddress与TargetPortSendOnChange保持开启即可随数据变化自动组播如需固定命名在Names中按顺序填入与点一一对应的名称。联调验证开启两端的PrintToLog在 T3 日志中查看接收统计与发送帧号接收端应能看到来自ServerName默认 T3 PSN Output的追踪源。若只是本机自测可将两端LocalIpAddress都设为127.0.0.1并把目标 IP 指向236.10.10.10。常见问题排查收不到数据先确认组播地址、端口两端一致Listen已开启且LocalIpAddress选对了网卡IsListening与节点状态栏可快速判断监听是否生效。无效组播地址报错MulticastIpAddress必须在224.0.0.0 – 239.255.255.255范围内源码的IsValidMulticastAddress校验逻辑。发送端报 Input buffer is not connected.TrackerData尚未连接任何点缓冲或点数为 0连接有效缓冲后再发送。目标软件看不到追踪源核对 INFO 包中的ServerName与追踪器命名是否被对方识别检查目标 IP/端口是否为对方监听地址。坐标方向相反注意PosiStageOutput发送时对 Z 轴的翻转约定跨系统坐标系不一致时优先检查该处。小结Lib.io.posistage通过两个算子将 PSN 协议的接收与发送完整封装进 TiXL 的节点图中PosiStageInput后台监听、解析并同时输出 GPU 缓冲与字典PosiStageOutput把点缓冲读回 CPU 并组包发送辅以状态提示、日志开关与 IP 下拉等工程化细节。无论是把动捕数据引入实时动效还是让 TiXL 成为虚拟制作链路中的追踪源这套算子都是开箱即用的起点。更进一步可结合 TiXL 运算符文档索引 探索其他 IO 族算子OSC、MIDI、UDP 等搭建更完整的演出控制数据通路。赞分享音视频图形学桌面应用【免费下载链接】t3TiXL is an open source software to create realtime motion graphics.项目地址https://gitcode.com/GitHub_Trending/t3/t3点击查看免费下载相关推荐TiXLT3使用 PosiStageOutput 算子发送 PosiStageNetPSN实时 3D 追踪数据TiXLT3使用 PosiStageOutput 算子发送 PosiStageNetPSN实时 3D 追踪数据 导读 本文围绕 TiXLT3开源实时音视频图形学桌面应用TiXL PosiStageInput 操作符详解用 PosiStageNet 协议在 T3 中接收实时 3D 追踪数据TiXL PosiStageInput 操作符详解用 PosiStageNet 协议在 T3 中接收实时 3D 追踪数据 本篇技术指南围绕 TiXLT3开音视频图形学桌面应用Realtek WiFi 7驱动终极指南轻松解决Ubuntu无线网络连接问题Realtek WiFi 7驱动终极指南轻松解决Ubuntu无线网络连接问题 你是否在Ubuntu 24.04 LTS上遇到了Realtek 8851BE无线音视频图形学桌面应用上一篇如何使用Envy智能同步.env.example文件的终极指南下一篇推荐开源项目fastBPE - 高效的子词单元处理工具创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考