UV 레이아웃의 스냅샷 저장, 배율 조정, 회전 및 변환, UV 제거, UV 가장자리 잘라내기, 깊이 전용 패스 설정 및 경계 상자 노출에 대한 Python 함수가 추가되었습니다.
UV 세트를 제거하기 위해 setTexCoords 메서드가 vrdGeometryNode
에 추가되었습니다.
특정(평면형/삼면/원통형) 투영을 임의의 객체에 맞추고 임의의 노드를 간단하게 배치 처리하기 위해 triplanarProjectionFitSize(), planarProjectionFitSize() 및 cylyndricalProjectionFitSize()가 vrUVService
에 추가되었습니다.
고급 OpenGL 설정 깊이 전용 패스 기능을 위한 setDepthOnlyPass
함수가 추가되었습니다. 깊이 전용 패스를 토글할 수 있습니다. setDepthOnlyPass
는 setBackfaceCulling
과 유사한 매개변수를 사용합니다(예: SWITCH_TOGGLE
, SWITCH_ON
, SWITCH_OFF
, True
또는 False
). 현재 상태에 대한 쿼리 함수가 없습니다.
자동 이음매 선택의 값을 사용하여 선택한 이음매를 따라 UV 모서리를 잘라내는 vrUVService.cutAlongSeams()가 추가되었습니다.
vrUVService.
cutAlongSeams
(nodes, settings, uvSet)지정된 노드에서 지정된 이음새 설정으로 절단을 수행합니다.
유기적 절단의 예:
geometryNodes = [vrNodeService.findNode("Box")]
settings = vrdUVSeamSettings()
settings.setMode(vrUVTypes.SeamMode.Organic)
settings.setOrganicUsePipesCutter(True)
settings.setOrganicSegmentationAmount(0)
vrUVService.cutAlongSeams(geometryNodes, settings, vrUVTypes.UVSet.MaterialUVSet)
제조된 절단의 예:
geometryNodes = [vrNodeService.findNode("Box")]
settings = vrdUVSeamSettings()
settings.setMode(vrUVTypes.SeamMode.Manufactured)
settings.setManufacturedAngle(45)
settings.setManufacturedAreaRatio(0.5)
vrUVService.cutAlongSeams(geometryNodes, settings, vrUVTypes.UVSet.MaterialUVSet)
베이킹 절단의 예:
geometryNodes = [vrNodeService.findNode("Box")]
settings = vrdUVSeamSettings()
settings.setMode(vrUVTypes.SeamMode.Baking)
settings.setBakingAngle(45)
settings.setBakingSizeOfMinPatch(0)
vrUVService.cutAlongSeams(geometryNodes, settings, vrUVTypes.UVSet.MaterialUVSet)
매개변수: |
|
---|
지정된 중심을 기준으로 UV를 회전하기 위해 vrUVService.rotateUV가 추가되었습니다.
지정된 중심을 기준으로 UV를 회전하려면 다음을 시도하십시오.
center = QVector2D(0,0)
angle = 25
vrUVService.rotateUV(nodes, center, angle, vrUVTypes.UVSet.MaterialUVSet)
vrUVService.
rotateUV
(nodes, center, angleDegree, uvSet)지정된 노드의 UV를 지정된 중심을 기준으로 회전합니다.
모든 재질 UV를 90도 회전하는 예:
geometryNodes = [vrNodeService.findNode("Box")]
center = QVector2D(0.5,0.5)
angle = 90
vrUVService.rotateUV(geometryNodes, center, angle, vrUVTypes.UVSet.MaterialUVSet)
매개변수: |
|
---|
UV 배율 조정/반전 및 이동을 위해 vrUVService.scaleUV 및 vrUVService.translateUV가 추가되었습니다.
지정된 중심에서 UV를 대칭 이동하려면 다음을 시도하십시오.
center = QVector2D(0,0)
scaleU = 1
scaleV = -1
vrUVService.scaleUV(nodes, center, scaleU, scaleV, vrUVTypes.UVSet.MaterialUVSet)
지정된 중심에서 UV를 이동하려면 다음을 시도하십시오.
translateU = 0.2
translateV = 0.1
vrUVService.translateUV(nodes, translateU, translateV, vrUVTypes.UVSet.MaterialUVSet)
vrUVService.
scaleUV
(nodes, center, uScale, vScale, uvSet)지정된 중심을 사용하여 지정된 노드의 UV를 배율 조정합니다.
모든 재질 UV 반전 예:
geometryNodes = [vrNodeService.findNode("Box")]
center = QVector2D(0.5,0.5)
uScale = -1
vScale = 1
vrUVService.scaleUV(geometryNodes, center, uScale, vScale, vrUVTypes.UVSet.MaterialUVSet)
매개변수: |
|
---|
vrUVService.
translateUV
(nodes, du, dv, uvSet)지정된 노드의 UV를 이동합니다.
모든 재질 UV 변환 이동 예:
geometryNodes = [vrNodeService.findNode("Box")]
du = 0.2
dv = 0.2
vrUVService.translateUV(geometryNodes, du, dv, vrUVTypes.UVSet.MaterialUVSet)
매개변수: |
|
---|
saveUVSnapshot(UV 확장 편집기에서와 같이)이 vrUVService에 추가되었습니다. UV 레이아웃의 스냅샷을 이미지 파일로 저장합니다.
폭과 높이가 다르면 출력 이미지가 왜곡됩니다.
vrUVService.
saveUVSnapshot
(nodes, path, width=1024, height=1024, uvSet=vrUVTypes.MaterialUVSet, style=vrUVTypes.ShowWireframe, mode=vrUVTypes.SnapshotMode.ZeroToOneSpace, customSpace=QVector4D())UV 레이아웃의 스냅샷을 이미지 파일로 저장합니다.
예:
geometryNodes = [vrNodeService.findNode("Box")]
vrUVService.saveUVSnapshot(geometryNodes,
"c:/vred-snapshots/uv.png",
512, 512,
vrUVTypes.UVSet.MaterialUVSet,
vrUVTypes.ShowBorders | vrUVTypes.ShowWireframe)
매개변수: |
|
---|
장면에 있는 객체의 경계 볼륨(상자)을 노출하기 위해 getBoundingBox 및 getWorldBoundingBox가 추가되었습니다.
여러 객체의 결합된 경계 상자를 가져오려면 다음을 시도하십시오.
def getWorldCenter(geometryNodes):
bb = vrdBoundingBox()
for geometryNode in geometryNodes:
bb.extendBy(geometryNode.getWorldBoundingBox())
return bb.getCenter()
vrdNode.
getWorldBoundingBox
()하위 항목을 포함하는 노드의 표준 경계 상자를 반환합니다.
다중 경계 상자 결합 예:
def getWorldCenter(nodes):
bb = vrdBoundingBox()
for node in nodes:
bb.extendBy(node.getWorldBoundingBox())
return bb.getCenter()
# Find all nodes whose name starts with "Box". nodes = vrNodeService.findNodes("Box*", True) # Calculate the bounding box center of these nodes center = getWorldCenter(nodes) # Print the result print(center)
반환 값: | 노드의 표준 경계 상자 |
---|---|
반환 유형: | vrdBoundingBox |