누구나 파이썬에서 현재 마야 뷰포트 렌더러 (뷰포트 2.0, 기본 뷰포트, 고품질 뷰포트)를 쿼리하는 좋은 해결책이 있습니까?마야에서 현재 뷰포트 렌더러를 쿼리하는 방법
2
A
답변
5
메크의 대답은 완벽하게 작동합니다 @. PyMEL 경로를 사용하는 경우 다음을 수행 할 수 있습니다.
import pymel.core.uitypes as pmui
model_panel = pmui.ModelEditor(pm.getPanel(withFocus=True))
print pmui.ModelEditor.getRendererName(model_panel)
비록이 스 니펫은 변덕스러운 것으로 보입니다. 특히 은 모델 편집기를 찾을 수 없다는 오류를 던집니다. 특히 선반에서 실행 한 경우에는 오류가 발생합니다.
또 다른 약간 말의 것이다 방법,하지만 작동 매번 :
import pymel.core as pm
import pymel.core.uitypes as pmui
modelPanelList = []
modelEditorList = pm.lsUI(editors=True)
for myModelPanel in modelEditorList:
if myModelPanel.find('modelPanel') != -1:
modelPanelList.append(myModelPanel)
for modelPanel in modelPanelList:
if pmui.ModelEditor(modelPanel).getActiveView():
try:
# Always better to try in the case of active panel operations
# as the active panel might not be a viewport.
print pmui.ModelEditor(modelPanel).getRendererName()
except Exception as e:
# Handle exception
print e
간결한, 의사 PyMEL의 방법이 될 것이다 단지 PyMEL-쓸어 메크의 대답 :
import pymel.core as pm
print pm.modelEditor(pm.getPanel(wf=True), q=True, rnm=True)
것은 얻으려면 뷰포트 렌더러의 목록 : 여기
import pymel.core.uitypes as pmui
print pmui.ModelEditor().getRendererList()
모델 편집기와 뷰포트 렌더러에 몇 가지 추가 정보입니다. 는 "친숙한"이름을 얻으려면 :
import pymel.core.uitypes as pmui
print pmui.ModelEditor().getRendererListUI()
은 간결하게, 그것들을 설정하려면, 나는 PyMEL를 사용 할 것입니다 : 내가 할 것
import pymel.core.uitypes as pmui
# assuming you know which modelPanel you want to affect
pmui.ModelEditor("modelPanel4").setRendererName("ogsRenderer")
모든 뷰포트 (modelPanels)에 영향을하려면
import pymel.core as pm
import pymel.core.uitypes as pmui
modelPanelList = []
modelEditorList = pm.lsUI(editors=True)
for myModelPanel in modelEditorList:
if myModelPanel.find('modelPanel') != -1:
modelPanelList.append(myModelPanel)
for modelPanel in modelPanelList:
pmui.ModelEditor(modelPanel).setRendererName("ogsRenderer")
초점 단지 뷰포트에 영향을하려면
import pymel.core as pm
import pymel.core.uitypes as pmui
modelPanelList = []
modelEditorList = pm.lsUI(editors=True)
for myModelPanel in modelEditorList:
if myModelPanel.find('modelPanel') != -1:
modelPanelList.append(myModelPanel)
for modelPanel in modelPanelList:
if pmui.ModelEditor(modelPanel).getActiveView():
try:
# Always better to try in the case of active panel operations
# as the active panel might not be a viewport.
pmui.ModelEditor(modelPanel).setRendererName("ogsRenderer")
except Exception as e:
# Handle exception
print e
3
이 스크립트는 집중 패널 렌더러를 반환
import maya.cmds as cmds
print cmds.modelEditor(cmds.getPanel(wf=True), q=True, rnm=True)
+0
scriptEditor에 포커스가있는 경우이 문제가 발생합니다. – Zak44
관련 문제
- 1. 메쉬 렌더러를 끄는 방법
- 2. 프레임에서 렌더러를 얻는 방법
- 3. 현재 스레드의 COM 아파트 상태를 쿼리하는 방법
- 4. 현재 시간을 기준으로 RethinkDB를 쿼리하는 방법
- 5. SQL Server에 현재 날짜를 쿼리하는 방법
- 6. 마야에서 float와 double의 차이점은 무엇입니까?
- 7. 나는 마야에서 이상한 벡터를 얻는다.
- 8. 뷰포트
- 9. jQuery - 항목이 현재 뷰포트 외부에 있는지 감지하는 방법?
- 10. 현재 뷰포트 높이의 100 % 높이 만들기 div
- 11. 뷰포트 내의 Direct3D 뷰포트
- 12. 뷰포트 내부의 OpenGL 뷰포트
- 13. OpenTK에서 뷰포트 해상도를 변경하는 방법
- 14. CloudKit에서 사용자별로 쿼리하는 방법?
- 15. 뷰포트
- 16. 격자 열의 열 렌더러를 동적으로 변경하는 방법
- 17. 항목 렌더러를 사용하여 여러 필드를 보는 방법?
- 18. JTable에서 여러 줄 텍스트 렌더러를 구현하는 방법
- 19. 렌더러를 사용하여 sencha 그리드에서 셀을 포맷하는 방법
- 20. MVC에서 현재 로그인 한 사용자의 AD 정보를 쿼리하는 방법 4
- 21. DOM의 현재 상태를 쿼리하는 angular.js 모범 사례 방법
- 22. ID로 엔터티를 쿼리하는 방법
- 23. PingFederate를 쿼리하는 방법
- 24. JTable로부터 렌더러를 삭제한다
- 25. 이미지로 렌더 렌더러를 복사하십시오.
- 26. 현재 날짜를 쿼리하는 SQL 문에 액세스합니다.
- 27. 뷰포트 테두리
- 28. 뷰포트 iframe
- 29. 렌더러를 초기화하지 않고 xtk에서 볼륨로드
- 30. 뷰포트 속성 적절하게 사용하는 방법
이것은 매우 유용하며이 정보를 확실히 사용할 것입니다. 그러나 실제로는 질문에 대답하지 않습니다. :(필자가 필요로하는 것은 render-er를 사용하는 것을 쿼리하는 것이 었습니다. 일반적으로 pymel에서 현재 render-er을 쿼리하는 방법을 보여줄 수 있다면 전환하고 답을 줄 것입니다. – TheBeardedBerry
그 부분을 대답에 포함 시켰습니다. – kartikg3
완벽! 고마워요! – TheBeardedBerry