[HarmonyOS Next示例代码]Subpass Shading的使用(VULKAN)

打印 上一主题 下一主题

主题 1035|帖子 1035|积分 3105

XEngine-samplecode-SubpassShadingDemo-cpp: 本示例通过使用Subpass Shading特性,实现降低DDR带宽的功能

HarmonyOS next 示例代码全集

Subpass Shading的使用(VULKAN)

简介

本篇Codelab主要介绍如何使用Subpass Shading。示例代码通过XComponent组件调用NAPI创建Vulkan情况,实现绘制SPONZA场景,并展示Subpass Shading特性的使用。本篇CodeLab使用Native C++模板创建。
结果预览

如图所示,XComponent组件绘制SPONZA场景。


相关概念



  • XComponent:可用于EGL/OpenGLES和媒体数据写入,并表现在XComponent组件。
使用说明


  • 运行示例代码。
工程目录

  1. ├── entry/src/main                     // 代码区
  2. │  ├── cpp
  3. │  │  ├── types
  4. │  │  │  ├── libnativerender
  5.              └── index.d.ts      // native层接口注册文件
  6. │  │  │── napi_init.cpp          // native api层接口的具体实现函数
  7. │  │  │── CMakeLists.txt         // native层编译配置
  8. │  │  │── 3rdParty               // 三方件
  9. │  │  │── commom                 // 通用接口  
  10. │  │  │── file                   // 文件管理
  11. │  │  │── libs                   // 三方动态库
  12. │  │  │── manager                // native&arkts交互
  13. │  │  │── render                 // 渲染
  14. │  ├── ets
  15. │  │  ├── common
  16.              └── CommonConstants.ets // 通用常量
  17. │  │  ├── entryability
  18.              └── EntryAbility.ts // 程序入口类
  19. │  │  ├── pages
  20.              └── index.ets       // 主界面展示类
  21. │  ├── resources                 // 资源文件目录
  22. │  │  ├── base
  23. │  │  │  ├── media
  24.              └── icon.png        // 图片资源
  25. │  │  ├── rawfile
  26. │  │  │  ├── forward_plus        // forward plus shader文件
  27. │  │  │  ├── sponza_full         // 模型文件
  28. │  │  │  ├── subpass_shading     // subpass shading shader文件
复制代码
详细实现

本示例展示的功能使用了Vulkan扩展接口VK_HUAWEI_subpass_shading提供的Subpass Shading API:


  • VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(VkDevice device, VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize);
  • VKAPI_ATTR void VKAPI_CALL vkCmdSubpassShadingHUAWEI(VkCommandBuffer commandBuffer); 通过调用展示的API实现Subpass Shading特性。
相关权限

不涉及。
依赖



  • 本示例依赖assimp三方件,请按体系版本编译对应版本三方件。
  • 3D模型资源:"Crytek Sponza" by Frank Meinl, Crytek is licensed under CC BY 3.0/replace "\" with "/" in file sponza.mtl
约束与限制


  • 本示例仅支持标准体系上运行,支持设备:支持马良910 GPU及以上的华为手机。
  • 本示例为Stage模型,支持API version 12。
  • HarmonyOS体系:HarmonyOS NEXT Developer Beta1及以上。
  • DevEco Studio版本:DevEco Studio NEXT Developer Beta1及以上。
  • HarmonyOS SDK版本:HarmonyOS NEXT Developer Beta1 SDK及以上。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

去皮卡多

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表