WavefrontMesh QML Type
웨이브프론트메시는 웨이브프론트 .obj 파일을 기반으로 하는 메시를 제공합니다. 자세히...
Import Statement: | import Qt.labs.wavefrontmesh 1.8 |
속성
- lastError : enumeration
- projectionPlaneV : vector3d
- projectionPlaneW : vector3d
- source : url
상세 설명
웨이브프론트메시는 웨이브프론트 .obj 파일에서 지오메트리를 읽고 이로부터 2차원 geometry 을 생성합니다. .obj 파일에 3차원 도형이 포함된 경우, 평면에 직교 투영됩니다. 정의된 경우 projectionPlaneV 및 projectionPlaneW 으로 제공됩니다. 그렇지 않으면 데이터에서 처음 발견되는 면을 사용하여 투영 평면을 결정합니다.
파일에 텍스처 좌표가 포함되어 있으면 이 좌표도 사용됩니다. 그렇지 않으면 개체의 버텍스가 정규화되어 사용됩니다.
메쉬는 ShaderEffect 에서 음영 지오메트리를 정의하는 데 사용할 수 있습니다. 지오메트리는 사용하기 전에 정규화되므로 입력 개체의 위치 및 배율은 결과에 영향을 미치지 않습니다.
참고: 일부 웨이브프론트 익스포터는 소스 씬을 내보내기 전에 소스 씬의 좌표계를 변경합니다. 이로 인해 Qt가 투영을 적용할 때 예기치 않은 결과가 발생할 수 있습니다. 시각적 결과가 예상과 다르다면 내보내기 파라미터와 에디터 툴의 설명서를 확인해보세요.
예를 들어, 다음 예제는 표준 원환이 포함된 .obj 파일을 가져와 자동으로 생성된 텍스처 좌표를 시각화합니다.
import QtQuick 2.\1 import Qt.labs.wavefrontmesh 1.\1 ShaderEffect { width: 200 height: 200 mesh: WavefrontMesh { source: "torus.obj" projectionPlaneV: Qt.vector3d(0, 1, 0) projectionPlaneW: Qt.vector3d(1, 0, 0) } vertexShader: " uniform highp mat4 qt_Matrix; attribute highp vec4 qt_Vertex; attribute highp vec2 qt_MultiTexCoord0; varying highp vec2 coord; void main() { coord = qt_MultiTexCoord0; gl_Position = qt_Matrix * qt_Vertex; }" fragmentShader: " varying highp vec2 coord; uniform lowp float qt_Opacity; void main() { gl_FragColor = vec4(coord.x, coord.y, 0.0, 1.0); }" } |
참고: 입력이 3D 원환이므로 투영 평면을 정의해야 합니다. 2D 도형을 입력으로 사용할 때는 이 작업이 필요하지 않습니다. 이 경우 입력의 방향 때문에 XY 평면을 사용합니다.
속성 문서
lastError : enumeration |
이 프로퍼티는 소스를 파싱하거나 메시를 빌드할 때 발생한 마지막 오류(있는 경우)를 저장합니다.
- WavefrontMesh.NoError 오류가 발생하지 않았습니다.
- WavefrontMesh소스가 유효한 .obj 파일로 인식되지 않았습니다.
- WavefrontMesh소스의 면이 지원되지 않는 유형입니다. WavefrontMesh 은 삼각형과 볼록 쿼드만 지원합니다.
- WavefrontMesh.UnsupportedIndexSizeError 소스 셰이프가 너무 큽니다. 16비트 인덱스만 지원됩니다.
- WavefrontMesh.FileNotFoundError 소스 파일을 찾을 수 없습니다.
- WavefrontMesh.MissingPositionAttributeError 셰이더에서 'qt_Vertex' 어트리뷰트가 누락되었습니다.
- WavefrontMesh.MissingTextureCoordinateAttributeError 셰이더의 텍스처 좌표 어트리뷰트 이름이 잘못되었습니다. 'qt_MultiTexCoord0'을 사용하세요.
- WavefrontMesh.MissingPositionAndTextureCoordinateAttributesError 셰이더에서 'qt_Vertex' 및 'qt_MultiTexCoord0' 속성이 모두 누락되었습니다.
- WavefrontMesh너무 많은 속성 오류 셰이더가 너무 많은 속성(최대 2개)을 기대합니다: 위치, 'qt_Vertex', 텍스처 좌표, 'qt_MultiTexCoord0').
- WavefrontMesh.InvalidPlaneDefinitionError 평면의 V 및 W 벡터는 null이거나 서로 평행할 수 없습니다.
projectionPlaneV : vector3d |
웨이브프론트 .obj 형식은 3D 공간의 객체를 설명하므로 좌표를 2D로 투영해야 Qt Quick 에 표시할 수 있습니다.
이 작업은 WavefrontMesh 에서 적절한 평면에 직교 투영을 통해 수행됩니다.
projectionPlaneV는 3D 공간의 평면에 있는 두 벡터 중 하나입니다. 이 값 또는 projectionPlaneW (기본값)을 (0, 0, 0)으로 설정하면 데이터 세트에서 처음 발견된 면을 기준으로 평면이 감지됩니다.
참고: projectionPlaneV와 projectionPlaneW 는 평행 벡터가 될 수 없습니다.
projectionPlaneW : vector3d |
Wavefront .obj 형식은 3D 공간의 객체를 설명하므로 좌표를 Qt Quick 에 표시하려면 먼저 2D로 투영해야 합니다.
이 작업은 WavefrontMesh 에서 적절한 평면에 직교 투영을 통해 수행됩니다.
투영PlaneW는 3D 공간의 평면에 있는 두 벡터 중 하나입니다. 이 값 또는 projectionPlaneV (기본값)을 (0, 0, 0)으로 설정하면 데이터 세트에서 처음 발견되는 면을 기준으로 평면이 감지됩니다.
참고: projectionPlaneV 및 projectionPlaneW는 평행 벡터가 될 수 없습니다.
source : url |
이 속성은 소스의 URL을 보유합니다. 소스는 로컬 파일 또는 qrc 형식이어야 합니다. 소스는 웨이브프론트 .obj 파일로 읽혀지고 지오메트리가 업데이트됩니다.
© 2025 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.