이 페이지에서

Model QML Type

3D 모델 데이터를 불러올 수 있습니다. 더 보기...

Import Statement: import QtQuick3D
Inherits:

Node

Inherited By:

XrHandModel

속성

상세 설명

'모델' 항목을 사용하면 메시를 불러오고, 여기에 재질을 추가하여 셰이딩 방식을 수정할 수 있습니다. 모델을 렌더링하려면 최소한 메시와 재질 하나가 필요합니다.

메시 형식 및 내장 프리미티브

모델은 저장소에서 정적 메시를 불러오거나 내장된 프리미티브 유형 중 하나를 사용할 수 있습니다. 사용되는 메시 형식은 엔진 고유의 런타임 형식이지만, 자산 임포트 도구인 Balsam을 통해 추가 형식도 지원됩니다.

내장 프리미티브는 ` source ` 속성을 다음 값 중 하나로 설정하여 불러올 수 있습니다: ` #Rectangle, #Sphere, #Cube, #Cylinder or #Cone`.

Model {
    source: "#Sphere"
}

아래 표에서는 내장 메시에 대해 더 자세히 설명합니다.

이름설명면 수
#Cone높이와 지름이 100 인 원뿔입니다. 밑면은 원점에 있으며, 원뿔은 y 방향으로 위쪽을 향하고 있습니다.78
#Cube원점을 중심으로 하며, x, y, z 축을 따라 각 변의 길이가 100 인 정육면체입니다.12
#원기둥원점을 중심으로, 높이와 지름이 100 인 원기둥으로, y 방향으로 뻗어 있습니다.316
#직사각형원점을 중심으로 하며, xy 평면에 놓이고, 너비와 높이가 각각 100 인 직사각형.2
#구원점을 중심으로 하며, 지름이 100 인 구입니다.4900

사용자 정의 지오메트리

정적 메시를 사용하는 것 외에도, 런타임에 모델에 사용자 정의 버텍스 데이터를 제공하는 custom geometry 제공자를 구현할 수 있습니다. 모델에 사용자 정의 머티리얼을 생성하고 사용하는 방법에 대한 예제는 '사용자 정의 지오메트리 예제'를 참조하십시오.

머티리얼

모델은 여러 개의 서브 메시로 구성될 수 있으며, 각 서브 메시에는 고유한 머티리얼이 지정될 수 있습니다. 서브 메시(sub-mesh)는 인덱스에 해당하는 ‘ materials ’ 목록의 머티리얼을 사용합니다. 머티리얼의 수가 서브 메시의 수보다 적은 경우, 목록의 마지막 머티리얼이 이후의 서브 메시들에 사용됩니다. 이는 ‘Sub-mesh’ 예제에서 확인할 수 있습니다.

모델 항목에는 다음 재질을 사용할 수 있습니다: PrincipledMaterial, DefaultMaterial, CustomMaterial.

피킹

피킹 (Picking)은 특정 시작 위치에서 씬을 가로질러 광선을 보내, 해당 광선과 교차하는 모델을 찾는 과정입니다. Qt Quick 3D 에서는 일반적으로 터치 또는 마우스 이벤트로 생성된 2D 좌표를 사용하여 뷰에서 광선을 보냅니다. 레이가 모델과 충돌하면, 해당 모델에 대한 핸들과 레이가 모델의 어느 지점에 충돌했는지에 대한 정보가 포함된 pickResult 가 반환됩니다. custom geometry 를 사용하는 모델의 경우, 피킹은 모델의 bounding volume 에 대해서만 수행되므로 정적 메시 데이터에 비해 정확도가 떨어집니다. 레이가 두 개 이상의 모델을 통과하는 경우, 가장 가까운 pickable 모델이 선택됩니다.

모델이 ‘ pickable ’ 상태가 되려면, 해당 모델의 ‘ pickable ’ 속성이 ‘ true ’로 설정되어 있어야 합니다. 자세한 내용은 Qt Quick 3D - Picking 예제를 참조하십시오.

속성 설명서

bakedLightmap : BakedLightmap

이 속성이 유효하고 활성화된 BakedLightmap 객체로 설정되면, 모델은 라이팅 베이킹 시 생성된 라이트맵을 가져오며, 이 라이트맵은 영구적으로 저장됩니다. 렌더링 시 모델은 관련 라이트맵을 불러와 사용합니다. 기본값은 null입니다.

참고: 모델에 대해 영구적으로 저장되는 라이트맵을 생성하려는경우 , 해당 모델이 라이트맵이 적용된 씬에 포함될 뿐만 아니라 전체 라이트맵이 베이킹되어 저장되기를 원한다는 것을 나타내기 위해 bakedLightmap과 usedInBakedLighting 를 모두 설정해야 합니다.

라이트맵 베이킹 방법에 대한 자세한 내용은 Lightmapper 문서를 참조하십시오.

이 속성은 라이트맵을 베이킹할 때와 사용할 때 모두 관련이 있습니다. 베이킹 실행과 생성된 데이터를 사용하는 후속 실행 간에 일관된 상태를 유지하는 것이 필수적입니다. 예를 들어, 라이트맵 키를 변경하면 이전에 생성된 데이터를 불러올 수 없게 됩니다. 단, enabled 은 예외로, 이 기능을 사용하면 (베이킹 실행 외에) 라이트맵 사용을 동적으로 전환할 수 있지만, 렌더링 결과는 씬 내 조명의 bakeMode 설정에 따라 달라진다는 점에 유의하십시오.

usedInBakedLighting 및 Lightmapper도 참조하십시오 .

bounds : Bounds [read-only]

모델의 경계는 모델 주변의 경계 볼륨의 범위를 나타냅니다.

참고: 모델을 먼저 불러와야 하는 경우,경계 정보가 즉시 표시되지 않을 수 있습니다.

castsReflections : bool [since 6.4]

이 속성이 ` true`로 설정되면, 모델은 반사 프로브를 통해 렌더링되며 반사된 화면에 표시됩니다.

이 속성은 Qt 6.4에서 도입되었습니다.

castsShadows : bool

이 속성이 ‘ true ’로 설정되어 있으면, 섀도우 맵에 렌더링할 때 이 모델의 지오메트리가 사용되며, 베이킹된 조명에서도 이 지오메트리를 기반으로 그림자가 생성됩니다.

기본값은 ‘ true ’입니다.

depthBias : real

모델의 깊이 바이어스를 저장합니다. 객체를 정렬할 때 카메라로부터의 객체 거리에 깊이 바이어스가 더해집니다. 이를 통해 서로 가까이 있는 객체들 간의 렌더링 순서를 강제할 수 있으며, 그렇지 않으면 프레임마다 다른 순서로 렌더링될 수도 있습니다. 음수 값을 지정하면 정렬된 객체가 카메라에 더 가까워지고, 양수 값을 지정하면 카메라에서 더 멀어집니다.

geometry : Geometry

모델에 사용자 정의 형상을 지정합니다. 사용자 정의 형상을 사용할 경우 ‘ Model::source ’ 필드는 비워 두어야 합니다.

instanceRoot : QtQuick3D::Node

이 속성은 인스턴스의 좌표계 원점을 정의합니다.

자세한 설명은 개요 문서를 참조하십시오.

instancing 및 Instancing도 참조하십시오 .

instancing : QtQuick3D::Instancing

이 속성이 설정되면 모델이 정상적으로 렌더링되지 않습니다. 대신, 인스턴스 테이블에 정의된 대로 모델의 여러 인스턴스가 렌더링됩니다.

Instancing도 참조하십시오 .

instancingLodFactor : real [default: 0.0, since 6.12]

이 속성을 사용하면 인스턴스 모델의 특정 레벨에 대한 세부 수준(LOD)을 수동으로 설정할 수 있습니다.

씬에 대규모 인스턴스 테이블에 대한 여러 LOD 레벨이 포함된 경우, 가장 적절한 세부 수준을 수동으로 선택해야 합니다. 이는 자동 LOD 관리 기능이 개별 인스턴스의 변환 데이터를 GPU 렌더링 단계에서만 확인할 수 있기 때문에 개별 인스턴스의 세부 수준을 정확하게 계산할 수 없기 때문입니다.

특정 LOD 레벨에서 지오메트리 오버헤드를 줄이려면, ` instancingLodFactor`를 수동으로 지정할 수 있습니다. 값이 ` 1.0`에 가까울수록 오브젝트에 대해 렌더링되는 지오메트리가 줄어듭니다. ` 0.0 ` 값은 전체 지오메트리가 전체 디테일로 오프로드/렌더링됨을 의미합니다.

참고: 이 속성은 개별 인스턴스와 카메라 간의 거리가 미리 정해져 있지 않은 경우, 자동 LOD 계산을 재정의하는 데 특별히 사용됩니다.

이 속성은 Qt 6.12에서 도입되었습니다.

levelOfDetailBias도 참조하십시오 .

instancingLodMax : real

이 모델의 인스턴스가 표시되는 카메라로부터의 최대 거리를 정의합니다. 디테일 레벨 구현에 사용됩니다.

instancingLodMin : real

이 모델의 인스턴스가 표시되는 카메라로부터의 최소 거리를 정의합니다. 디테일 레벨 구현에 사용됩니다.

inverseBindPoses : List<matrix4x4>

이 속성에는 스켈레탈 애니메이션에 사용되는 역 바인드 포즈 행렬 목록이 포함되어 있습니다. 각 inverseBindPose 행렬은 skeleton 에 있는 해당 Joint::index 의 전역 변환의 역행렬을 의미하며, 이는 초기 설정 시 사용됩니다.

참고: 이 속성은 Model::skeleton 이 유효한 경우에만 사용됩니다.

참고: 행렬 중 일부가 설정되지 않은경우 , 신분 행렬 값이 사용됩니다.

Joint::index도 참조하십시오 .

levelOfDetailBias : real [since 6.5]

이 속성은 자동 디테일 레벨 메쉬가 사용되기 전에 모델이 렌더링될 때 필요한 크기를 변경합니다. 생성된 각 디테일 레벨 메쉬에는 해당 레벨이 표시되어야 할 이상적인 크기 값이 포함되어 있으며, 이는 렌더링된 장면에서 해당 메쉬가 차지하는 비율을 나타냅니다. 화면에서 단 몇 픽셀만 차지하는 모델의 경우, 정확하게 표시되기 위해 전체 지오메트리가 필요하지 않으므로, 이 경우에는 더 낮은 레벨의 디테일 메쉬가 대신 사용됩니다. 이 값은 이상적인 값에 대한 편차로 작용하며, 1.0 보다 작은 값일수록 더 낮은 레벨의 디테일 메쉬로 전환되기 전에 필요한 렌더링 크기가 더 작아집니다. 1.0 보다 큰 값을 설정하면 더 낮은 수준의 디테일이 더 빨리 사용됩니다. 0.0 값을 설정하면 디테일 레벨 기능이 완전히 비활성화됩니다.

기본값은 1.0

참고: 이 속성은 모델의 지오메트리에 디테일 레벨이 포함되어 있을 때만 효과가 있습니다.

이 속성은 Qt 6.5에서 도입되었습니다.

Camera::levelOfDetailBias도 참조하십시오 .

materials : List<QtQuick3D::Material>

이 속성에는 제공된 지오메트리를 렌더링하는 데 사용되는 머티리얼 목록이 포함되어 있습니다. 무언가를 렌더링하려면 최소한 하나의 머티리얼이 있어야 합니다. 일반적으로 소스 지오메트리에 포함된 각 서브메시에 대해 하나의 머티리얼이 있어야 합니다.

Qt Quick 3D - 서브메시 예제도참조하십시오 .

morphTargets : List<QtQuick3D::MorphTarget>

이 속성에는 제공된 지오메트리를 렌더링하는 데 사용되는 MorphTarget객체 목록이 포함되어 있습니다. 메쉬는 모프 타겟을 위해 위치, 법선, 탄젠트, 바이노멀, 텍스처 좌표, 정점 색상 중 적어도 하나의 속성을 가져야 합니다.

MorphTarget도 참조하십시오 .

motionVectorEnabled : bool [default: true, since 6.11]

모델이 모션 벡터 패스에 참여하는지 여부를 지정합니다.

이 속성이 ` true`로 설정되면, 모델은 모션 벡터 버퍼에 자체 모션 정보를 기여합니다. 이는 시간적 안티앨리어싱(TAA) 및 픽셀별 모션 데이터에 의존하는 기타 효과에서 사용됩니다.

false 로 설정되면, 모델은 모션 벡터 생성에 포함되지 않습니다.

이 속성은 Qt 6.11에서 도입되었습니다.

Model::motionVectorScale도 참조하십시오 .

motionVectorScale : real [default: 1.0, since 6.11]

모델이 생성한 운동 벡터에 적용되는 스케일링 계수를 지정합니다.

1.0 값을 설정하면 모델의 실제 모션이 유지되며, 1.0 보다 큰 값을 설정하면 모션 벡터가 과장되고, 1.0 보다 작은 값을 설정하면 모션 벡터가 축소됩니다. 이는 스타일화된 효과를 적용하거나 모션 벡터 버퍼에 의존하는 효과에서 시각적 동작을 미세 조정하는 데 유용할 수 있습니다.

이 속성은 Qt 6.11에서 도입되었습니다.

Model::motionVectorEnabled도 참조하십시오 .

pickable : bool

이 속성은 모델을 선택할 수 있는지 여부를 제어합니다. 모델을 선택할 수 있게 하려면 이 속성을 ‘ true ’로 설정하십시오. 기본적으로 모델은 선택할 수 없습니다.

View3D::pick도 참조하십시오 .

receivesReflections : bool

이 속성이 ‘ true ’로 설정되면, 모델의 재질은 반사 프로브로부터 반사광의 기여도를 반영합니다. 모델이 동시에 두 개 이상의 반사 프로브 내에 있는 경우, 가장 가까운 반사 프로브가 고려됩니다.

receivesShadows : bool

이 속성이 ‘ true ’로 설정되면, 모델의 머티리얼은 그림자를 투사하는 조명의 그림자 기여도를 고려합니다.

참고: 이 모델에 대해 라이트매핑이 활성화된경우 , ‘ Light::bakeMode ’가 Light.BakeModeAll로 설정된 완전히 베이크된 조명은 이 속성의 값과 관계없이 항상 모델에 (베이크된) 그림자를 생성합니다.

기본값은 true 입니다.

skeleton : Skeleton

모델의 스켈레톤을 포함합니다. 스켈레톤은 스킨ning을 위해 inverseBindPoses 와 함께 사용됩니다.

참고: 모델의메시에는 조인트(joints) 및 가중치(weights) 속성이 모두 포함되어야 합니다.

참고: 이 속성이설정되면 스키닝 애니메이션이 활성화됩니다. 즉, 모델의 전역 변환을 무시하고 Skeleton 를 기준으로 Model 가 변환됩니다.

Model::inverseBindPoses 및 Qt Quick 3D - 간단한 스키닝 예제도참조하십시오 .

skin : Skin

모델의 스켈레톤이 포함되어 있습니다. 스켈레톤은 스키닝에 사용됩니다.

참고: 모델의메시에는 관절 및 가중치 속성이 모두 포함되어야 합니다.

참고: 이 속성이설정되면 스키닝 애니메이션이 활성화됩니다. 즉, 모델의 스켈레톤( Model )은 모델의 변환( Skin::joints )에 따라 변형되며, 모델의 전역 변환은 무시됩니다.

참고: 모델에 스켈레톤과 스킨이 모두 있는경우 , 스킨이 사용됩니다.

참조 Qt Quick 3D - Simple Skinning Example.

source : url

이 속성은 Mesh format and built-in primitives 에 설명된 대로, 이 모델의 지오메트리를 포함하거나 아래에 나열된 내장 프리미티브 메쉬 중 하나를 포함하는 메쉬 파일의 위치를 정의합니다.

  • "#Rectangle"
  • "#Sphere"
  • "#Cube"
  • "#Cone"
  • "#Cylinder"

texelsPerUnit : real [default: 0.0, since 6.10]

0보다 큰 값은 라이트맵 베이킹 과정에서 이 특정 모델에 대해 ‘ Lightmapper::texelsPerUnit ’ 값을 이 값으로 재정의함을 의미합니다.

이 속성은 Qt 6.10에서 도입되었습니다.

Lightmapper::texelsPerUnit도 참조하십시오 .

usedInBakedLighting : bool

이 속성을 ` true`로 설정하면, 모델이 라이트맵과 같은 베이킹된 조명에 그림자 투영이나 간접광의 형태로 기여합니다. 이 설정은 모델에 대한 라이트맵 생성을 제어하는 설정과는 별개이며, 라이트맵 생성을 제어하려면 ` bakedLightmap `를 사용하십시오.

기본값은 ` false`입니다.

참고: 디자이너와 개발자는 오브젝트가 베이크된 조명에 참여하기에 적합한지 항상 모델별로 평가해야 하므로,기본값은 false입니다.

경고: 애니메이션된 위치, 회전 또는 기타 속성과 같이 동적으로 변경되는 속성을 가진모델은 베이킹된 조명에 포함하기에 적합하지 않습니다.

라이트맵 베이킹 방법에 대한 자세한 내용은 Lightmapper 문서를 참조하십시오.

이 속성은 라이트맵을 베이킹할 때만 관련이 있습니다. 렌더링 중에 생성된 라이트맵을 사용할 때는 아무런 영향도 미치지 않습니다.

또한 Light::bakeMode, bakedLightmap, Lightmapper 및 ‘라이트맵과 전역 조명(Lightmaps and Global Illumination)’을 참조하십시오 .

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.