[HarmonyOS Next示例代码]Subpass Shading的使用(VULKAN)
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场景。
https://img-blog.csdnimg.cn/img_convert/ddb777c8ffcbd4aa16d4a7c114b677b3.jpeg
相关概念
[*]XComponent:可用于EGL/OpenGLES和媒体数据写入,并表现在XComponent组件。
使用说明
[*]运行示例代码。
工程目录
├── entry/src/main // 代码区
│├── cpp
││├── types
│││├── libnativerender
└── index.d.ts // native层接口注册文件
│││── napi_init.cpp // native api层接口的具体实现函数
│││── CMakeLists.txt // native层编译配置
│││── 3rdParty // 三方件
│││── commom // 通用接口
│││── file // 文件管理
│││── libs // 三方动态库
│││── manager // native&arkts交互
│││── render // 渲染
│├── ets
││├── common
└── CommonConstants.ets // 通用常量
││├── entryability
└── EntryAbility.ts // 程序入口类
││├── pages
└── index.ets // 主界面展示类
│├── resources // 资源文件目录
││├── base
│││├── media
└── icon.png // 图片资源
││├── rawfile
│││├── forward_plus // forward plus shader文件
│││├── sponza_full // 模型文件
│││├── 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企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]