Qt2023. 10. 20. 17:53
반응형
Posted by Jay Two
Qt2023. 3. 7. 17:37
반응형
Posted by Jay Two
Qt2023. 2. 21. 16:28
반응형
Posted by Jay Two
Qt2023. 2. 15. 21:08
반응형
Posted by Jay Two
Qt2023. 1. 30. 20:32
반응형
Posted by Jay Two
Qt2023. 1. 22. 19:31
반응형

'Qt' 카테고리의 다른 글

Qt 6으로 포팅  (0) 2023.02.15
C++는 2022년 올해의 프로그래밍 언어입니다  (0) 2023.01.30
CMake를 사용하여 Linux에 배포  (0) 2023.01.02
Qt Quick Effect Maker 소개  (0) 2022.11.04
보안 권고: Qt의 zlib  (0) 2022.09.16
Posted by Jay Two
Qt2023. 1. 2. 18:10
반응형
Posted by Jay Two
Qt2022. 11. 4. 14:48

Qt Quick Effect Maker 소개

지난 몇 달 동안 함께 작업한 프로젝트인 Qt Quick Effect Maker(QQEM)에 대해 마침내 이야기하게 되어 매우 기쁩니다. 이 블로그 게시물은 이 새로운 도구에 대한 소개이며 가까운 시일 내에 더 많은 관련 게시물이 제공될 예정입니다. 그래서 그것은 무엇입니까? QQEM은 다음과 같은 단일 목적을 위해 설계된 맞춤형 도구입니다.

높은 생산성과 성능으로 Qt Quick에 대한 셰이더 효과를 생성합니다.

사진은 천 마디 말보다 가치가 있고, 영상은 훨씬 더 가치가 있으므로, 다음의 짧은 비디오로 소개합니다.

https://youtu.be/5BQ_VDqL42o

접근

Qt Quick Effect Maker는 노드 편집기와 코드 편집기를 모두 제공하는 하이브리드 편집기입니다. 이것은 생산적이고 사용하기 쉬우면서도 셰이더 코드를 자유롭게 작성하고 조정할 수 있는 도구를 원했기 때문에 초기에 선택한 접근 방식이었습니다. 노드만으로 효과를 만들 수 있는 "셰이더 그래프" 노드 편집기가 많이 있습니다. 이러한 도구의 코드 없는 접근 방식은 셰이더 코드를 작성하지 않고도 복잡한 효과를 수행할 수 있으므로 매력적일 수 있습니다. 그러나 셰이더를 자유롭게 조정하고 최적화할 수 없고 시각적 프로그래밍 언어를 생성하는 노드 집합을 배워야 하는 것과 같은 단점도 있습니다. 이것은 처음 80%는 쉽지만 마지막 20%는 달성하기가 불가능한 것처럼 보이는 80-20 규칙으로 귀결될 수 있습니다. 이러한 이유로 우리는 하이브리드 접근 방식과 단순화된 노드 편집기를 진행했습니다. QQEM 노드는 차례로 연결된 개별 효과 구성 요소이므로 단일 입력 및 출력 연결만 있습니다. 커스텀 노드와 빌트인 노드를 포함한 모든 노드의 셰이더 소스 코드는 자유롭게 수정할 수 있습니다. 그런 다음 노드가 결합되고 Qt 셰이더 도구는 모든 RHI 백엔드(OpenGL, Vulkan, Metal, Direct3D)에 대해 최적화된 바이너리 셰이더를 생성합니다.

QQEM의 주요 대상 사용자는 일부 GLSL 코드를 이해하는 개발자 및 기술 아티스트입니다. 하지만 그렇게 하지 않더라도 내장 효과 노드를 결합하고 속성을 수정하는 데 계속 사용할 수 있습니다. 개발자 또는 디자이너에 관계없이 효과를 개발하는 동안 DESIGN(노드 편집기) 모드와 CODE(소스 편집기) 모드 사이를 전환하는 것이 좋습니다.

주요 특징

다음은 가장 주목할만한 QQEM 기능에 대한 요약입니다.

  • 실시간 미리보기: 효과를 편집하는 동안 셰이더는 자동으로 RHI qsb에 구워지고 라이브 미리 보기에 표시됩니다. 셰이더 변경이 필요하지 않은 속성을 조정할 때 미리보기가 즉시 표시됩니다. 또한 셰이더에 대한 변경 사항은 거의 즉각적입니다.

  • 노드 보기: QQEM에는 구성 요소에서 셰이더를 시각적으로 빌드하기 위한 노드 보기가 포함되어 있습니다. 이러한 노드에는 대부분의 Qt 그래픽 효과가 포함됩니다. 현재 30개 이상의 노드가 제공되어 사용자 지정 효과의 기반으로 사용할 수 있으며 앞으로 더 많이 사용할 수 있습니다.

  • 셰이더 코드 편집기: QQEM은 노드와 코드 편집기를 모두 결합한 "하이브리드 편집기"입니다. 모든 효과 노드 셰이더는 자유롭게 편집할 수 있습니다. 코드 편집기에는 생산성을 위한 GLSL 구문 강조, 자동 들여쓰기, 찾기 등의 기능이 포함되어 있습니다.

  • 다중 효과: Qt Quick Graphical Effects와 비교하여 QQEM은 모든 효과를 단일 셰이더로 결합합니다. 이것은 성능에 좋은 추가 FBO를 방지합니다.

  • JSON 파일 형식: QQEM은 프로젝트(qep) 및 노드(qen)를 JSON 형식으로 저장합니다. 이러한 파일은 생산성을 위해 다른 사람과 쉽게 공유할 수 있습니다.

  • 셰이더토이 호환성: QQEM의 변수 이름은 대부분 Shadertoy와 호환됩니다. 즉, Shadertoy로 만든 셰이더를 QQEM으로 쉽게 이식할 수 있으며 그 반대도 마찬가지입니다. 모든 Shadertoy 기능(예: 멀티패스, 큐브맵, 오디오)이 지원되는 것은 아니지만 QQEM은 성능 향상을 위해 정점 셰이더, 사용자 정의 텍스처, 속성과 같은 몇 가지 추가 기능을 지원합니다.

  • 순수한 Qt Quick: QQEM 자체는 Qt Quick(QWidget 없음) 및 Qt Quick Control로 구현되므로 데스크탑 UI 제공을 개선하는 데 도움이 됩니다. 또한 전체 사용 흐름은 Qt Quick 및 Qt RHI가 가능한 한 통합되도록 설계되었습니다.

할 이야기가 훨씬 더 많지만 이 블로그 게시물을 간략하고 요점으로 유지하겠습니다.

현재 상태 및 다음 단계는 무엇입니까?

QQEM에는 Qt 6.4(또는 dev 브랜치)가 필요하므로 먼저 설치하십시오. 그런 다음 소스 저장소에서 직접 최신 QQEM을 빌드할 수 있습니다. 이것은 여전히 진행 중인 작업이며 사전 빌드된 바이너리가 아직 없지만 더 많은 사용자와 피드백을 받기 시작하기 위해 지금 사용 가능한 QQEM 소스 코드를 출시하고 싶었습니다. 지금까지 일부 고객 프로젝트 및 예제 프로젝트에서 내부적으로 사용했으며 응답은 매우 긍정적이었습니다.

우리가 현재 작업하고 있는 또 다른 것은 QQEM을 위한 Qt Design Studio 통합입니다. 이렇게 하면 QDS에서 직접 QQEM 프로젝트를 열고 QQEM에서 수정하고 내보낸 구성 요소를 다시 QDS 프로젝트로 가져올 수 있습니다. 올해 말까지 QDS 빌드에서 사용할 수 있습니다.

따라서 QQEM을 사용하여 발견된 모든 문제 및 기능 요청에 대한 티켓(구성 요소: "Quick: Effect Maker")을 자유롭게 만드십시오. 나중에 더 많은 블로그 게시물이 올라올 예정이니 계속 지켜봐 주세요!

반응형
Posted by Jay Two