PySide6.QtQuick3D.QQuick3DInstancing¶
- class QQuick3DInstancing¶
用于定义实例表的基类。More_…
概要¶
属性¶
方法¶
def
__init__()def
instanceBuffer()def
instanceColor()def
instanceScale()def
markDirty()
虚拟方法¶
插槽¶
信号¶
静态函数¶
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
QQuick3DInstancing类可以被继承,用于在 Qt Quick 3D 场景中为模型指定自定义实例表。这个类是抽象的:要使用它,请创建一个子类并实现
getInstanceBuffer()。注意
当使用
from __feature__ import true_property时,属性可以直接使用,否则通过访问器函数使用。- property depthSortingEnabledᅟ: bool¶
保存实例表的深度排序启用值。启用后,实例将从离摄像机最远的实例到最近的实例进行排序和渲染,即从后到前。如果禁用(默认情况下),实例将按照它们在实例表中指定的顺序进行渲染。
注意
实例仅相互排序。实例不会与场景中的其他对象进行排序。
注意
排序增加了帧准备时间,特别是在实例数量较大的情况下。
- Access functions:
- property hasTransparencyᅟ: bool¶
如果实例化表中包含在渲染模型时应使用的alpha值,请将此属性设置为true。此属性仅在模型不透明时才有意义:如果模型具有透明的材质,或者不透明度小于1,则无论此属性如何设置,都将使用表中的alpha值。
注意
启用alpha混合可能会导致实例重叠时出现渲染问题。详情请参阅alpha混合和实例化文档。
- Access functions:
- property instanceCountOverrideᅟ: int¶
设置此属性以限制实例数量,而无需重新生成或重新上传实例表。这允许以非常低的成本对渲染的实例数量进行动画处理。
- Access functions:
- __init__([parent=None])¶
- Parameters:
父级 –
QQuick3DObject
- static calculateTableEntry(position, scale, eulerRotation, color[, customData={}])¶
将
positionscaleeulerRotationcolor和customData转换为标准顶点着色器期望的实例表格式。典型模式:QByteArray MyInstanceTable::getInstanceBuffer(int *instanceCount) { QByteArray instanceData; ... auto entry = calculateTableEntry({xPos, yPos, zPos}, {xScale, yScale, zScale}, {xRot, yRot, zRot}, color, {}); instanceData.append(reinterpret_cast<const char *>(&entry), sizeof(entry));
- static calculateTableEntryFromQuaternion(position, scale, rotation, color[, customData={}])¶
- Parameters:
position –
QVector3Dscale –
QVector3Drotation –
QQuaternion颜色 –
QColorcustomData –
QVector4D
- Return type:
将
positionscalerotationcolor和customData转换为标准顶点着色器所期望的实例表格式。这与
calculateTableEntry()相同,只是使用四元数来指定旋转。- depthSortingEnabled()¶
- Return type:
布尔
属性
depthSortingEnabledᅟ的获取器。- depthSortingEnabledChanged()¶
属性
depthSortingEnabledᅟ的通知信号。- abstract getInstanceBuffer()¶
- Return type:
实现此函数以返回实例表的内容。实例的数量应在
instanceCount中返回。子类负责在必要时缓存结果。如果实例表发生变化,子类应调用markDirty()。- hasTransparency()¶
- Return type:
布尔
另请参阅
属性
hasTransparencyᅟ的获取器。- hasTransparencyChanged()¶
属性
hasTransparencyᅟ的通知信号。- instanceBuffer(instanceCount)¶
- Parameters:
instanceCount – int
- Return type:
- instanceCountOverride()¶
- Return type:
整数
属性
instanceCountOverrideᅟ的获取器。- instanceCountOverrideChanged()¶
属性
instanceCountOverrideᅟ的通知信号。- instanceNodeDirty()¶
- instanceRotation(index)¶
- Parameters:
索引 – int
- Return type:
- instanceTableChanged()¶
- markDirty()¶
标记实例数据已更改,必须重新上传。
- setDepthSortingEnabled(enabled)¶
- Parameters:
enabled – 布尔值
属性
depthSortingEnabledᅟ的设置器。- setHasTransparency(hasTransparency)¶
- Parameters:
hasTransparency – 布尔值
另请参阅
属性
hasTransparencyᅟ的设置器。- setInstanceCountOverride(instanceCountOverride)¶
- Parameters:
instanceCountOverride – int
属性
instanceCountOverrideᅟ的设置器。- class InstanceTableEntry¶
概要¶
方法¶
def
getColor()def
getPosition()def
getRotation()def
getScale()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
- PySide6.QtQuick3D.QQuick3DInstancing.InstanceTableEntry.row0¶
- PySide6.QtQuick3D.QQuick3DInstancing.InstanceTableEntry.row1¶
- PySide6.QtQuick3D.QQuick3DInstancing.InstanceTableEntry.row2¶
- PySide6.QtQuick3D.QQuick3DInstancing.InstanceTableEntry.color¶
- PySide6.QtQuick3D.QQuick3DInstancing.InstanceTableEntry.instanceData¶
- getRotation()¶
- Return type: