(四)Unity开发Vision Pro——参考文档

4.参考文档

4.1 支持的功能和组件

4.1.1 支持的 Unity 功能和组件

大多数 Unity 组件无需修改即可在此平台上运行 - 包括大多数自定义 MonoBehaviours、动画逻辑、物理、输入处理、资产管理、AI 等。然而,需要渲染的组件需要特殊的支持。因此,一些组件在此平台上提供的功能集有所减少;其他目前不支持。下表总结了该平台上各种渲染组件支持的当前状态。

有关转换旧项目的更多信息,另请参阅将 Unity 项目移植到 PolySpatial XR

4.1.2 Unity 仿真组件/系统

在此页面中不可能列出 Unity 公开的所有系统和软件包,但下表列出了对一系列 Unity 核心功能的支持状态:

成分

地位

转换

支持的

声音的

不支持空间音频

网状过滤器

支持的

动画/动画师

支持的

二维物理

支持的

3D 物理

支持的

脚本

支持的

人工智能和导航网格

支持的

地形

实验支持

MonoBehaviours预计可以工作,但它们将取决于具体情况,具体取决于您的脚本与哪些其他组件交互。

4.1.3 渲染组件/系统

成分

地位

网格渲染器

不支持“Lighting”(阴影、GI 不支持“Probes” 立即模式下不支持此组件 不支持“Additional Settings”(动态遮挡、渲染层)

蒙皮网格渲染器

仅未优化的动画(如果模型导入检查器的装备选项卡上的优化游戏对象选项出现,则必须将其勾选。)

粒子系统

部分支持;看粒子系统以下

不支持

相机

不支持

光环

不支持

镜头光晕

不支持

线条渲染

不支持

投影仪

不支持

轨迹渲染器

不支持

视觉效果

不支持

镜头光晕

不支持

细节层次 (LoD)

不支持

遮挡区域

不支持

闭塞门户

不支持

天空盒

不支持

URP 贴花投影仪

不支持

瓷砖地图渲染器

不支持

视频播放器

支持有限

图形光线投射器

不支持

Shaderlab 着色器

不支持

后处理器

不支持

光照贴图

需要手动支持

烘焙照明

不支持

开导

不支持

光探头

需要手动支持

反射探头

不支持

树木

不支持

多雾路段

不支持

其中一些功能由于平台限制而不受支持(例如,全屏图形后处理器与共享渲染系统的想法不兼容),而其他功能则属于正在进行或计划开发的领域。

4.1.4 粒子系统

PolySpatial XR 中对粒子的支持是一项正在进行的工作。下表显示了 Unity粒子系统当前支持的特定模块和设置的支持状态:

模块

地位

排放

部分支持

形状

部分支持

生命周期内的速度

部分支持

生命周期内的极限速度

部分支持

继承速度

部分支持

整个生命周期内的力

部分支持

整个生命周期的颜色

部分支持

按速度着色

不支持

使用寿命期间的尺寸

部分支持

尺寸按速度

不支持

整个生命周期内的轮换

部分支持

按速度旋转

不支持

外力

不支持

噪音

部分支持

碰撞

部分支持

触发器

不支持

子发射器

部分支持

纹理片动画

部分支持

不支持

步道

不支持

自定义数据

不支持

渲染器

部分支持

4.1.4 用户界面(UI)

Unity UI在世界空间中工作,但屏幕空间 UI 和高级视觉功能(如遮罩、阴影等)当前无法工作。下表总结了其他 UI 功能的支持状态:

成分

地位

文本网格

支持的

画布渲染器

部分支持

精灵渲染器

支持的

文本网格专业版

部分支持
仅光栅
无自定义着色器

矩形变换

没有对尺寸的具体支持

4.1.5 最后的想法

Unity 有更多组件,但本节涵盖了普通 XR 应用程序的主要部分。一般来说,您现有的 Unity 项目可能需要移植到 PolySpatial XR。

您将需要通过编写自己的 PolySpatial XR 兼容系统或找到这些限制的解决方法来实验、研究和适应 PolySpatial XR 要求和约束,以支持您现有的功能。

4.2 PolySpatial资产支持

1.网格

RealityKit 提供了一组有限的预定义顶点格式。网格可以提供位置、法线、切线、颜色、混合权重和混合索引。Unity 将为 RealityKit 提供最多 8 个纹理坐标,但请注意,在其 MaterialX 实现中只有前两个 UV 通道可用,从而限制了额外几何数据的实用性。

由于Unity和RealityKit使用不同的坐标系,因此在系统之间传递时,一些顶点属性会被修改。针对位置、法线和切线执行惯用手交换。所有 UV 通道的 UV 都会翻转。

2.材质

有关 VisionOS 上材质和着色器支持的详细信息,请参阅PolySpatial 材质支持。

Unity ShaderGraphs

请参阅Shader Graph 支持,了解有关如何将通过 Unity ShaderGraph 定义的自定义着色器转换为 MaterialX 以与 RealityKit 互操作的详细信息。

3.纹理

Unity 在 VisionOS 上提供对 2D 纹理的支持,并利用本机纹理压缩选项。

VisionOS 的 RealityKit 不支持 3D 纹理或立方体贴图,因此用户必须根据 2D 纹理重新实现这些纹理资源。

4.渲染纹理

Unity 会将渲染目标实时复制到 RealityKit,但目前只能按速度进行有限数量的提交。引入额外的渲染目标可能会与 Unity 自己的图形缓冲区提交相冲突,从而影响整体性能。

另请注意,修改 RenderTextures 后必须手动将其标记为脏;目前,不会自动发生此类脏污,并且如果纹理未脏污,则不会将其复制到 RealityKit。

5.字体

VisionOS 支持光栅化字体和 SDF 字体,但我们强烈建议使用 SDF 字体,以确保所有观看距离下的清晰度。

4.3 材质

每个管道的几个重要标准着色器已映射到最接近的可用 RealityKit 模拟。目前的支持包括:

  • 标准 URP 着色器:Lit、Simple Lit、Unlit(+TBD - 更多即将推出)
  • 标准内置着色器:标准,(+待定 - 更多即将推出)

4.3.1 自定义着色器

可以通过 Unity ShaderGraph 为 VisionOS 创作着色器和材质。在幕后,这些着色器图被转换为 MaterialX。虽然 MaterialX 非常具有表现力,但某些 ShaderGraph 节点在 MaterialX 中没有类似物。在 ShaderGraph 编辑器中,不支持的节点将通过符号来指示#,但另请参阅ShaderGraph 支持。支持点亮和未点亮根节点。

ShaderLab、Metal 和其他基于代码的着色器不可用,因为 VisionOS 的 RealityKit 目前不公开低级着色语言。

4.3.2 无光照材质

4.3.2.1 通用渲染管线/无光照

对于 URP 未光照材质,PolySpatial 支持Base Map颜色和纹理属性以及 和OpaqueTransparent使用混合模式Alpha)曲面类型。 Alpha Clipping可能已启用;如果Threshold大于零,则不会执行混合(仅进行 alpha 测试)。

4.3.2.2 无光照/彩色

对于内置渲染器管道未点亮的颜色材质,Main Color支持该属性。

4.3.2.3 无光照/纹理

对于内置渲染器管线未点亮的纹理材质,Base (RGB)支持该纹理。

4.3.2.4 无光照/透明

对于内置渲染器管道未点亮的透明材质,Base (RGBA)支持纹理。

4.3.3 光照材质

4.3.3.1 通用渲染管线/光照

对于 URP 光照材质,颜色和纹理受到尊重,选项和属性Base Map也是如此。Render FaceSurface Inputs TilingOffset

Specular工作流程中并Specular Highlights启用时,PolySpatial 支持Specular Map关联颜色的纹理或(灰度)强度。在Metallic工作流程中,PolySpatial 支持Metallic Map纹理或强度并遵循Specular Highlights切换。

对于这两个工作流程,Smoothness都会考虑强度,但Metallic Alpha不支持纹理通道(例如,来自 )的平滑度。 Normal Map支持 [^1],但不支持正常比例。同样,Occlusion Map支持,但不支持遮挡强度。 可以指定Emission颜色或纹理;如果两者都给定,则颜色会降低为灰度并充当乘数。

支持 和 (使用混合模式)曲面Opaque类型TransparentAlphaTransparent模式下,该Preserve Specular标志受到尊重。 Alpha Clipping可能已启用;如果Threshold大于零,则不会执行混合(仅进行 alpha 测试)。

4.3.3.2 通用渲染管线/简单光照

对于 URP 简单光照材质,支持的选项与光照材质相同,只是没有Metallic属性且没有Occlusion Map

4.3.3.3 通用渲染管线/复杂光照

对于 URP 复杂光照材质,支持的选项与光照材质相同,只是添加了选项Clear Coat及其Mask属性Smoothness

4.3.3.4 标准材质

内置标准光照材质的支持方式与Metallic工作流程中 URP 光照材质的支持方式大致相同。纹理Albedo和颜色同样受到尊重,Metallic贴图或强度和Smoothness强度(但不包括平滑度Source)也是如此。 支持Normal Map[^1] 和(但不支持其相应的强度),颜色或纹理、和以及标志也是如此。支持所有渲染模式:、、和。OcclusionEmissionMain Maps TilingOffsetSpecular HighlightsOpaqueTransparentFadeCutout

4.3.3.5 标准材质(镜面设置)

内置光照镜面材质的支持方式与Specular工作流程中 URP 光照材质的支持方式相同。纹理Albedo和颜色也受到类似的尊重,Specular地图或(灰度)强度和Smoothness强度(但不是平滑度Source)也是如此。 支持Normal Map[^1] 和(但不支持其相应的强度),颜色或纹理、和以及标志也是如此。支持所有渲染模式:、、和。OcclusionEmissionMain Maps TilingOffsetSpecular HighlightsOpaqueTransparentFadeCutout

[^1]:目前,非着色器图形材质中使用的法线贴图必须作为纹理Default类型(即,而不是类型Normal map)导入,并且sRGB (Color Texture)未选中该选项。

4.3.4 特殊用途材质

4.3.4.1 TextMeshPro/距离场

4.3.4.2 TextMeshPro/Mobile/距离场

TMP 距离场材质将转换为仅遵循Face ColorFace Texture属性的着色器图形材质。

4.3.4.3 用户界面/默认

UI 默认材质将转换为尊重色调和纹理属性的无光照材质。

4.3.4.4 通用渲染管线/粒子/无光照

URP 未光照粒子材质将转换为尊重Base Map纹理和颜色的未光照材质以及Surface Type.

4.3.4.5 AR/基本遮挡

4.3.4.6 AR/遮挡

遮挡材质转换为基本等效材质

4.3.5 着色器图形材质

着色器图可以使用内置或 URP 目标以及 Unlit 或 Lit 材质。支持所有输出块。有关着色器图支持的更多信息,请参阅着色器图转换说明

4.4 ShaderGraph支持

您可以使用 Unity ShaderGraph 为visionOS 创建自定义材质。这些将在 Unity 中以其编译形式进行预览,但会转换为 MaterialX 以在模拟器和设备上显示。虽然 MaterialX 非常具有表现力,但某些 ShaderGraph 节点在 MaterialX 中没有类似物。在 ShaderGraph 编辑器中,不支持的节点将通过#符号的存在来指示。

出于技术、安全和隐私原因,visionOS 不允许在使用 AR 直通时运行基于 Metal 的着色器或其他低级着色语言。

4.4.1 VisionOS 中的 Shader Graph 限制

下表显示了VisionOS 的 PolySpatial 中Shader Graph 节点的当前支持状态,包括支持的节点列表及其各种注意事项。

如果此处未出现节点,则表示当前不支持该节点。请注意,随着我们继续添加对更多节点的支持,此列表将会更新。

4.4.2 美术

部分

节点

笔记

调整

对比

颜色可能不一致。

色调

颜色可能不一致。

饱和

颜色可能不一致。

混合

混合

支持差值、减法、加深、减淡、线性减淡、叠加、滤色、覆盖、求反、乘法

筛选

抖动

- 需要模拟屏幕空间位置。
- 由于 curvelookup 节点定义存在错误,目前无法工作。

普通的

正常混合

支持

从高度看正常

支持

正常重建 Z

支持

正常强度

支持

正常拆包

支持

公用事业

色彩空间转换

不一致 - 未实现线性转换。

4.4.3 通道

部分

节点

笔记

渠道

结合

支持

分裂

支持

调配

支持

4.4.4 输入

Custom Interpolators仅限于此特定/名称类型:

  • Color:矢量4
  • UV0:矢量2
  • UV1:矢量2
  • UserAttribute:矢量4

部分

节点

笔记

基本的

布尔值

支持

颜色

支持

持续的

支持

整数

支持

滑块

支持

时间

支持

漂浮

支持

向量2

支持

矢量3

支持

矢量4

支持

几何学

双切向量

切线和视图空间选项不是标准的。

法向量

切线和视图空间选项不是标准的。

位置

切线和视图空间选项不是标准的。

屏幕位置

支持

切向量

切线和视图空间选项不是标准的。

紫外线

支持

顶点颜色

支持

顶点ID

支持

坡度

坡度

支持

样本梯度

支持

灯光

主光方向

支持

矩阵

不起作用(由于常量矩阵节点定义中的错误)

不起作用(由于常量矩阵节点定义中的错误)

矩阵构建

支持

变换矩阵

切线和视图空间选项不是标准的。

场景

相机

PositionDirection支持的输出(非标准)。

目的

支持

场景深度

平台不允许访问深度缓冲区,这只是剪辑或视图空间中的相机距离。

屏幕

支持

质地

2D 纹理示例

支持

示例纹理 2D LOD

支持

采样器状态

MirrorOnce不支持换行模式。

纹理 2D 资源

支持

纹理尺寸

支持

4.4.5 数学

部分

节点

笔记

先进的

绝对

支持

指数

支持

长度

支持

日志

支持

模块

支持

否定

支持

标准化

支持

基本的

添加

支持

划分

支持

支持

力量

支持

平方根

支持

减去

支持

插值法

逆向线性化

支持

莱普

支持

平滑步

支持

矩阵

矩阵行列式

如果使用 Matrix2,将标记为不受支持。

矩阵转置

如果使用 Matrix2,将标记为不受支持。

范围

夹钳

支持

分数

支持

最大限度

支持

最低限度

支持

一减

支持

随机范围

支持

重新映射

支持

饱和

支持

圆形的

天花板

支持

地面

支持

圆形的

支持

符号

支持

支持

三角学

反余弦

支持

反正弦

支持

反正切

支持

反正切2

支持

余弦

支持

他的

支持

切线

支持

向量

叉积

支持

距离

支持

点积

支持

菲涅耳效应

支持

反射

支持

绕轴旋转

支持

转换

有些空间是模拟的,未在测试中涵盖。

海浪

三角波

支持

4.4.6 程序

部分

节点

笔记

噪音

梯度噪声

- 无法确定目标平台噪声函数的行为是否相同。
- 频率当前关闭(比例映射到幅度而不是频率)。

沃罗诺伊

- 无法确定目标平台噪声函数的行为是否相同。

形状

椭圆

支持

4.4.7 Utility

部分

节点

笔记

Utility

预览

支持

分体式左轮

特定于 PolySpatial 的非标准着色器图形节点。实现 splitlr 函数,如中所述材质X规格.

逻辑

分支

支持

比较

支持

或者

支持

4.4.8 UV

部分

节点

笔记

紫外线

翻页书

支持

旋转

仅支持度数。

平铺和偏移

支持

三平面

支持

4.5 输入

在 VisionOS 上有两种捕获用户意图的方法:3D 触摸和骨骼手跟踪。在独占模式下,开发人员还可以访问头部跟踪数据。

4.5.1 3D Touch 和 TouchSpace

在有界和无界体积中,当用户使用输入碰撞器查看对象并执行“捏”(拇指和食指一起触摸以“点击”或“拖动”)手势时,就会提供3D触摸输入。PolySpatialTouchSpace输入设备向开发人员提供该信息。如果用户按住捏合手势,则会启动拖动,并向应用程序提供相对于原始起点的“移动”更新。如果对象在触手可及的范围内(无需特定注视),用户还可以直接在对象上执行捏合手势。

3D触摸事件通过PolySpatialTouchSpace 输入设备公开,该设备构建在封装之上com.unity.inputsystem,也称为新输入系统。绑定到触摸屏设备的现有操作应该适用于 2D 输入。对于 3D 输入,用户可以将操作绑定到特定的PolySpatialTouchSpace设备以获得 3D 位置向量。

任何可以接收 3D 触摸事件的对象都需要将碰撞遮罩设置为 PolySpatial 输入层的碰撞器。仅报告对这些事件的接触。目前,平台不会在点击手势开始时提供凝视光线。

4.5.2 骨骼手追踪

骨骼手部跟踪由XR Hands 中的手部子系统提供。使用场景中的手部可视化器组件,用户可以显示玩家手部的蒙皮网格或每关节几何体,以及基于手部物理交互的物理对象。用户可以直接针对手子系统编写 C# 脚本来推断骨骼之间的距离和关节角度。Hand Visualizer组件的代码可在XR Hands Package中找到,并且可以作为利用Hand Subsystem 代码的良好起点。

4.5.3 头部追踪

ARKit 通过VisionOS Package提供头部跟踪。这可以使用移动 AR 的创建菜单在场景中进行设置:创建 > XR > XR Origin (Mobile AR)。位姿数据来自devicePosition [HandheldARInputDevice]deviceRotation [HandheldARInputDevice]的新输入系统。

4.6 自定义 PolySpatial 组件

4.6.1 体积相机

PolySpatial 提供了一个名为 的新 Unity 组件,用于Volume Camera与visionOS 环境提供的模式和体积进行交互。体积相机与常规 Unity 相机类似,因为它们指示用户应该看到哪些内容,但不同之处在于它们捕获 3D 内容而不是 2D 图像。

将 VolumeCamera 组件添加到场景中的对象,以指定向用户呈现的内容以及内容的呈现方式。保存 VolumeCamera 的 GameObject 的变换(例如比例)会影响向用户显示的体积大小。VolumeCamera 的编辑器内预览范围可以帮助可视化应渲染的内容。

通常,然后通过相应的“体积渲染器”将该规范体积映射到主机体积渲染器自己的不同OBB,将该内容显示在主机平台上。效果是体积相机边界内的 3D 内容被变换、旋转、拉伸和/或挤压以填充体积渲染器的边界。

Mode设置为 时Unbounded,一切都与典型的 Unity 相机类似,只是体积相机和体积渲染器各自定义了无界 3 空间而不是有界

VolumeCamera组件公开以下属性

财产

描述

模式

指定音量的模式。

    有界

体积相机具有由其尺寸定义的有限边界。任意数量的体积相机都可以处于“有界”模式。

    无界

体积相机捕获所有内容,无论位置如何,并且尺寸字段被禁用和忽略。对于给定应用程序,在给定时间只能有一台卷相机处于无界模式。将体积相机的模式设置为无界相当于请求您的应用程序切换到“独占”模式。

方面

定义相机边界框的(未缩放)大小,该边界框以 VolumeCamera变换的位置为中心。世界空间维度是通过维度和变换比例的元素相乘来计算的。

剔除掩码

定义 Unity 图层的位掩码。体积相机只会显示属于指定图层的对象。对于典型的 Unity 相机和 CullingMask 工作流程,这可用于指定每个单独的体积相机可见的对象。例如,库存体积相机可用于通过定义“库存”图层来渲染一个体积内的 3D 库存,而“小地图”图层可用于渲染第二体积内整个场景的鸟瞰图。

4.6.2 PolySpatial视频组件

为了支持 VisionOS 上的视频内容,PolySpatial 目前包含一个自定义的PolySpatialVideoComponent我们预计最终会支持股票视visionOS提供关键视频功能。要使用它,请将 设置Target Material Renderer为频组件,但该组件在此期间为GameObjectMeshRenderer显示视频的资源,并设置Clip为指向要播放的视频资源,例如.mp4

当前系统的一个限制是,必须手动将剪辑复制到../StreamingAssets/PolySpatialVideoClips/文件夹中才能在 VisionOS 上实现完整功能。如果该文件夹不存在,则创建该文件夹。确保剪辑不仅移入此文件夹,而且复制到其中,以便有它的两个实例。

PolySpatialVideoComponent组件公开以下属性:

财产

描述

目标材质渲染器

引用应在其上渲染视频的 MeshRenderer。视频将覆盖该 MeshRenderer 上的当前材质。

夹子

要播放的视频资源。

正在循环

当播放到达剪辑末尾时视频是否应重复。

醒着玩

视频是否应在Awake()调用时开始播放。

沉默的

当 true 时,音频播放被抑制;如果为 false,则遵循体积值。

体积

剪辑的当前音频播放音量,范围在 0 到 1 之间。

4.6.3 PolySpatial悬停效果

向平台提供提示,以在用户将鼠标悬停在此对象上时应用系统悬停效果。这通常用于向用户提供该对象是交互式的视觉提示。这种效果可以通过凝视或用手戳来触发。该效果应用于正在悬停的对象,而不是正在悬停的对象。

出于隐私原因,visionOS 不允许应用程序直接访问用户的视线。然而,在视觉上突出显示用户正在注视的对象通常是有帮助的,以便暗示如果用户执行捏合手势,哪个对象将接收输入。为此,Unity PolySpatialPolySpatialHoverEffect为visionOS 提供了一个组件,可以将其添加到可能通过注视接收输入的游戏对象中。该组件的存在指示主机平台 (RealityKit) 在用户的凝视光线与其相应的碰撞体相交时向GameObject'应用着色效果。MeshRenderer

必须存在所有三个组件才能实现效果: 指示PolySpatialHoverEffectGameObject显示悬停,Collider组件定义凝视光线投射的碰撞形状,提供MeshRenderer将应用着色效果的网格和几何体。

4.7 PolySpatial Tooling

4.7.1 日志

PolySpatial 日志记录消息按类别和级别进行标记,以便于更有针对性的调试。从 Unity 编辑器的主菜单中,选择窗口”>“PolySpatial”>“日志记录”以打开“PolySpatial 日志记录”窗口。从这里,您可以切换启用哪些类别,是否应生成堆栈跟踪,以及对于启用堆栈跟踪的类别,哪些级别将生成跟踪。

4.7.2 多空间统计

首先,通过启用项目设置 > PolySpatial > 启用统计来启用 PolySpatial 统计跟踪。然后可以在 Unity Editor 主菜单中的Window > PolySpatial > PolySpatial Statistics下找到该编辑器。在播放模式下,此编辑器显示时间的直方图跟踪、跟踪的对象以及已复制到 PolySpatial 主机的资源。

4.7.3 调试链接

为了便于在播放模式下进行调试,PolySpatial 运行时添加了DebugPolySpatialGameObjectLinks组件,以将每个模拟游戏对象连接到Unity SceneGraph 中其相应的支持游戏对象。

4.7.4 资产查找器

在播放模式下,AssetFinder 会跟踪已复制到主机渲染器的所有资源。这对于追踪资产链接非常有用。该编辑器可以在 Unity Editor 主菜单中的PolySpatial > Asset Finder下找到。

4.7.5 录音与回放

要录制 PolySpatial 播放模式会话,请转至Windows > PolySpatial > 录制和播放。按Record进入播放模式并开始录音。正常进行交互并提供输入,然后退出播放模式以停止录制。新文件将添加到列表中;您可以通过选择该录音然后按Play按钮来重播该录音。新输入不会被处理,但原始录音中编码的输入将重播。

录音保存在Library/PolySpatialRecordings任何使用相同版本 PolySpatial 软件包的机器上,并且可以在任何机器上播放。除此之外,这些文件可以提交给 Unity 支持,使我们能够调试许多特定于项目的问题,而无需项目的完整 zip 文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/80904.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何保证数据传输的安全?

要确保数据传输的安全,您可以采取以下措施: 使用加密协议:使用安全的传输协议,如HTTPS(HTTP over SSL/TLS)或其他安全协议,以保护数据在传输过程中的安全性。加密协议可以有效防止数据被窃听或篡改。 强化身份验证&…

计算机网络基础

前言 在你立足处深挖下去,就会有泉水涌出!别管蒙昧者们叫嚷:“下边永远是地狱!” 博客主页:KC老衲爱尼姑的博客主页 博主的github,平常所写代码皆在于此 共勉:talk is cheap, show me the code 作者是爪哇岛的新手,水平很有限&…

【hive】hive中row_number() rank() dense_rank()的用法

hive中row_number() rank() dense_rank()的用法 一、函数说明 主要是配合over()窗口函数来使用的,通过over(partition by order by )来反映统计值的记录。 rank() over()是跳跃排序,有两个第二名时接下来就是第四名(同样是在各个分组内)dense_rank() …

设计模式——适配器模式

引入实例 说起适配器其实在我们的生活中是非常常见的,比如:学校的宿舍的电压都比较低,而有的学生想使用大功率电器,宿舍的就会跳闸,然而如果你使用一个适配器(变压器)就可以使用了(…

搭建openGauss 5.0 一主一从复制集群

openGauss是一款支持SQL2003标准语法,支持主备部署的高可用关系型国产数据库。 多种存储模式支持复合业务场景,新引入提供原地更新存储引擎。NUMA化数据结构支持高性能。Paxos一致性日志复制协议,主备模式,CRC校验支持高可用。支…

golang操作excel的高性能库——excelize/v2

目录 介绍文档与源码安装快速开始创建 Excel 文档读取 Excel 文档打开数据流流式写入 [相关 Excel 开源类库性能对比](https://xuri.me/excelize/zh-hans/performance.html) 介绍 Excelize是一个纯Go编写的库,提供了一组功能,允许你向XLAM / XLSM / XLS…

【【STM32之GPIO】】

STM32之GPIO 学完了正点原子自带的视频课之后感觉仍然一知半解现在更新一下来自其他版本的STM32学习 GPIO 就是 General Purpose Input Output 中文名叫通用输入输出口 可配置8种输入输出模式 引脚电平 0V~3.3V 部分引脚可容忍5V 输出模式下可控制端口输出高低电平&#xff…

【Spring Cloud 二】——Spring Cloud基本介绍

Spring Cloud基本介绍 一、Spring Cloud简介二、Spring Cloud核心组件Spring Cloud Netflix组件Spring Cloud Alibaba组件Spring Cloud原生组件微服务架构图 三、Spring Cloud与Spirng Boot的关系四、Spring Cloud的版本选择Spring Cloud Alibaba的版本选择 一、Spring Cloud简…

从外部访问K8s中Pod的五种方式

hostNetwork、 hostPort、 NodePort、 LoadBalancer、 Ingress 暴露Pod与Service一样,因为Pod就是Service的backend 1、hostNetwork:true 这是一种直接定义 Pod 网络的方式。 如果在 Pod 中使用 hostNetwork:true 配置, pod 中运行的应用程序…

UG\NX 二次开发 相切面、相邻面的选择控件

文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan 简介: 有群友问“UFUN多选功能过滤面不能选择相切面或相邻面之类的吗?” 这个用Block UI的"面收集器"就可以,ufun函数是不行的。 效果: C++语言在UG二次开发中的应用及综合分析 C++ …

vue技术学习

vue快速入门 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>vue快速入门</title> </head> <body> <!--老师解读 1. div元素不是必须的&#xff0c;也可以是其它元素&#xff0…

第三章nginx详解

nginx&#xff1a;高性能&#xff0c;轻量级的web服务软件。 特点&#xff1a; 1&#xff0c;稳定性高。&#xff08;没有apache稳定&#xff09; 2&#xff0c;系统资源消耗地较低。&#xff08;处理http请求的并发能力非常高&#xff0c;单台物理服务器可以处理30000-5000…

Azure创建可用性集

什么是可用性集 在Azure中&#xff0c;可用性集&#xff08;Availability Set&#xff09;是一种用于提高虚拟机&#xff08;VM&#xff09;可用性和可靠性的功能。它通过将虚拟机分布在不同的物理硬件和故障域中来提供高可用性。每个故障域都是一个独立的电力和网络故障区域&…

论文笔记:Continuous Trajectory Generation Based on Two-Stage GAN

2023 AAAI 1 intro 1.1 背景 建模人类个体移动模式并生成接近真实的轨迹在许多应用中至关重要 1&#xff09;生成轨迹方法能够为城市规划、流行病传播分析和交通管控等城市假设分析场景提供仿仿真数据支撑2&#xff09;生成轨迹方法也是目前促进轨迹数据开源共享与解决轨迹数…

WSL2 ubuntu子系统OpenCV调用本机摄像头的RTSP视频流做开发测试

文章目录 前言一、Ubuntu安装opencv库二、启动 Windows 本机的 RTSP 视频流下载解压 EasyDarwin查看本机摄像头设备开始推流 三、在ubuntu 终端编写代码创建目录及文件创建CMakeLists.txt文件启动 cmake 配置并构建 四、结果展示启动图形界面在图形界面打开终端找到 rtsp_demo运…

Python标准库-追踪异常,定位问题-traceback

在日常的编程过程中&#xff0c;我们经常会遇到各种错误和异常。而当程序发生异常时&#xff0c;了解如何有效地追踪异常信息并定位问题&#xff0c;是每个开发者必备的技能之一。 Python 提供了一个强大的工具&#xff0c;称为 Traceback&#xff0c;它可以帮助我们跟踪异常的…

Midjourney Prompt 提示词速查表 v5.2

Midjourney 最新的版本更新正不断推出令人兴奋的新功能。这虽然不断扩展了我们的AI绘图工具箱&#xff0c;但有时也会让我们难以掌握所有实际可以使用的功能和参数。 针对此问题, 小编整理了 "Midjourney Prompt 提示词速查表"&#xff0c;这是一个非常方便的 Midjo…

Sentinel 规则持久化

文章目录 Sentinel 规则持久化一、修改order-service服务1.引入依赖2.配置nacos地址 第二步修改非常麻烦&#xff0c;可以略过&#xff0c;直接使用已经打好包的来使用二、修改sentinel-dashboard源码1. 解压2. 修改nacos依赖3. 添加nacos支持4. 修改nacos地址5. 配置nacos数据…

[gdc23]《战神:诸神黄昏》中的积雪系统

overview gdc23上santa monica带来基于tesselation的displacement map的可交互积雪系统&#xff0c;这是一个对于前作&#xff08;战神4&#xff09;的screen space parallax mapping的升级&#xff0c;而且是一个由自身render programmer在一个项目周期内&#xff0c;完成的&…

【探索Linux】—— 强大的命令行工具 P.6(调试器-gdb、项目自动化构建工具-make/Makefile)

阅读导航 前言一、什么是调试器二、详解 GDB - 调试器1.使用前提2.经常使用的命令3.使用小技巧 三、项目自动化构建工具 - make/Makefile1. make命令⭕语法⭕常用选项⭕常用操作⭕make命令的工作原理⭕make命令的优势&#xff1a; 2.Makefile文件⭕Makefile的基本结构⭕Makefil…