亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

介紹

Qt Shader Tools模塊建立在 SPIR-V 開源生態(tài)系統(tǒng)之上,為了編譯成 SPIR-V,使用 glslang,而翻譯和反射是通過 SPIRV-Cross 完成的。

為了允許在 Qt 應(yīng)用程序和庫中編寫一次著色器代碼,所有著色器都應(yīng)該用一種語言編寫,然后編譯成 SPIR-V。 這種著色語言目前是與 Vulkan 兼容的 GLSL,這不同于OpenGL風(fēng)格的GLSL Qt 5.x所期望的。

然后通過翻譯 SPIR-V 字節(jié)碼以及反射信息(輸入、輸出、著色器資源)生成其他著色語言的源代碼,例如 GLSL、HLSL 和Metal Shading語言。特別是對(duì)于 GLSL,這還涉及生成多個(gè)變體,這意味著適用于不同 GLSL 版本的源代碼,例如 GLSL ES 100、GLSL ES 300、GLSL 120、150 等。然后將其全部打包到可序列化的 QShader 容器對(duì)象中, 通常以 .qsb 擴(kuò)展名的文件形式存儲(chǔ)在磁盤中。Qt 渲染硬件接口直接使用 QShader 實(shí)例,選擇最適合運(yùn)行時(shí)使用的圖形 API 的著色器源或字節(jié)碼,QShader 對(duì)象通常從應(yīng)用程序附帶的 .qsb 文件或 Qt 資源系統(tǒng)中的 Qt 本身反序列化。

一些平臺(tái)提供將著色器源代碼編譯為類似于 SPIR-V 的中間格式選項(xiàng),這涉及運(yùn)行特定于平臺(tái)的工具。對(duì)于 Direct 3D,qsb 工具提供了在生成 HLSL 源代碼后從 windows SDK 調(diào)用 fxc 工具的選項(xiàng),然后它用 fxc 生成的 DXBC 二進(jìn)制文件替換 HLSL 源代碼。這可以對(duì)應(yīng)用程序的運(yùn)行時(shí)性能產(chǎn)生積極影響,因?yàn)樗鼈儾辉傩枰约哼M(jìn)行第一階段的編譯(HLSL 源到 DXBC)。對(duì)于 macOS 和 IOS,XCode SDK 提供了類似的工具,這種方法的缺點(diǎn)是只能在它們各自的平臺(tái)上運(yùn)行這些工具。因此這最適合與 qsb 的 CMake 集成結(jié)合使用,因?yàn)樵趹?yīng)用程序構(gòu)建時(shí)進(jìn)行著色器調(diào)節(jié)隱含地帶有目標(biāo)平臺(tái)所需的知識(shí)以及可以調(diào)用哪些特定于平臺(tái)的工具。

下圖描述了調(diào)用 qsb 工具期間發(fā)生的步驟:

C++用戶界面開發(fā)框架Qt 6.x入門級(jí)指南 - Qt著色器工具

 

Qt 著色器調(diào)節(jié)系統(tǒng)的主要組件有:

  • qsb 命令行工具
  • qsb 工具的 CMake 集成
  • QShader(QtGui 模塊的一部分)
  • QShaderBaker(本模塊的一部分,相當(dāng)于 qsb 工具的庫)

注意:從 Qt 6.2 開始,C++ API 被認(rèn)為是私有的,不建議從應(yīng)用程序直接使用它們,而是直接或間接從 CMake 項(xiàng)目中使用 qsb 命令行工具。

Qt Quick 的典型用法

應(yīng)用程序開發(fā)人員通常需要在 Qt Quick 場景中使用自定義著色器代碼,這些場景具有:

  • ShaderEffect項(xiàng)目,或
  • QQuickItem子類將場景圖節(jié)點(diǎn)與通過子類化QSGMaterial.構(gòu)建的自定義材質(zhì)結(jié)合使用。

例如,考慮以下 QML 片段:

ShaderEffect {
width: 100; height: 100
fragmentShader: "myeffect.frag.qsb"
}

在這里,fragmentShader URL 指的是相對(duì)于 .qml 文件位置的 .qsb 文件,該應(yīng)用程序預(yù)計(jì)將在 .qml 文件旁邊提供 myeffect.frag.qsb。要從 Vulkan 樣式的 GLSL 源(其本身不需要隨應(yīng)用程序一起提供)生成該文件,應(yīng)用程序必須直接或通過 CMake 使用 qsb 工具。

Qt Quick 3D 的典型用法

Qt Quick 3D 直接使用 Shader Tools 模塊在運(yùn)行時(shí)執(zhí)行著色器調(diào)節(jié),此外還提供了在構(gòu)建時(shí)為材質(zhì)預(yù)生成著色器的解決方案,以防對(duì)著色器編譯器和其他工具的運(yùn)行時(shí)依賴性不理想。 在任何一種情況下,開發(fā)人員都不需要直接使用 qsb 工具,因?yàn)樗怯?Qt Quick 3D 自己的框架和工具封裝的。

Qt商用組件推薦

  • QtitanRibbon - Ribbon UI組件:是一款遵循Microsoft Ribbon UI Paradigm for Qt技術(shù)的Ribbon UI組件,QtitanRibbon致力于為Windows、linux和Mac OS X提供功能完整的Ribbon組件。
  • QtitanChart - Qt類圖表組件:是一個(gè)C ++庫,代表一組控件,這些控件使您可以快速地為應(yīng)用程序提供漂亮而豐富的圖表。
  • QtitanDataGrid - Qt網(wǎng)格組件:提供了一套完整的標(biāo)準(zhǔn) QTableView 函數(shù)和傳統(tǒng)組件無法實(shí)現(xiàn)的獨(dú)特功能。使您能夠?qū)⒉煌瑏碓吹母黝悢?shù)據(jù)加載到一個(gè)快速、靈活且功能強(qiáng)大的可編輯網(wǎng)格中,支持排序、分組、報(bào)告、創(chuàng)建帶狀列、拖放按鈕和許多其他方便的功能。
  • QtitanNavigation:QtitanNavigationDesignUI 組件是一組 GUI 控件,它實(shí)現(xiàn)了菜單、導(dǎo)航框、命令欄等導(dǎo)航界面,并讓您以更少的滾動(dòng)和點(diǎn)擊次數(shù)有效地查看所有實(shí)體(工作區(qū)、網(wǎng)格或其他項(xiàng)目)。
  • QtitanDocking:允許您像 Visual Studio 一樣為您的偉大應(yīng)用程序配備可??棵姘搴涂赏?抗ぞ邫?。黑色、白色、藍(lán)色調(diào)色板完全支持 Visual Studio 2019 主題!

分享到:
標(biāo)簽:框架 開發(fā)
用戶無頭像

網(wǎng)友整理

注冊時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評(píng)定2018-06-03

通用課目體育訓(xùn)練成績評(píng)定