前言

大家好,这次我来分享一下我自己实现的一个 Vulkan 库,这个库是用 C# 实现的,主要是为了学习 Vulkan 而写的。

在学习 Vulkan 的过程中,我主要参考 veldrid,它是一个基于 .NET 的跨平台图形库,支持 OpenGL、Vulkan、Direct3D 11 等图形 API。

我觉得这个库的设计思路很好,于是我就想自己实现一个类似的库,于是就有了这个项目。

该项目光线追踪部分的封装参考的 Evergine, 它有着非常全面的图形接口抽象,其结构与 veldrid 十分相似,目前该平台对个人免费,大家如有兴趣可以尝试。

项目依赖

  • Vulkan 1.3 SDK:大家可以自行去 LunarG 官网下载最新版本 SDK,或者 百度、必应 搜索 Vulkan SDK 一般第一个链接就是。
  • Visual Studio 2022
  • .NET 9.0 SDK
  • 支持 Vulkan 1.3 的桌面端设备。

如果要运行 Android 项目,需要安装 Android NDK 和 Android SDK,虚拟机不支持 Vulkan 1.3,需要真机 Snapdragon 8 Gen2 或更高芯片。

截图

AndroidApp
ComputeShader
GLTFAnimation
GLTFScene
MultiViewports
RayQuery
RayTracing
SDFFontTexture
Skia
WPF

项目地址

VulkanSamples

参考

.NET 9.0 使用 Vulkan API 编写跨平台图形应用的更多相关文章

  1. 如何编写跨平台的Java代码

    欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://g ...

  2. 编写跨平台Java程序注意事项

    使用Java语言编写应用程序最大的优点在于“一次编译,处处运行”,然而这并不是说所有的Java程序都具有跨平台的特性,事实上,相当一部分的Java程序是不能在别的操作系统上正确运行的,那么如何才能编写 ...

  3. RESTful API 编写指南

    基于一些不错的RESTful开发组件,可以快速的开发出不错的RESTful API,但如果不了解开发规范的.健壮的RESTful API的基本面,即便优秀的RESTful开发组件摆在面前,也无法很好的 ...

  4. 通过Intel XDK编写跨平台app(二)

    通过Intel XDK编写跨平台app(一) 通过Intel XDK编写跨平台app(二) 在这个系列的上一篇文章中,我们大致了解了Interl XDK的概况.在这一部分中,我们会详细地介绍如何通过这 ...

  5. 用React Native编写跨平台APP

    用React Native编写跨平台APP React Native 是一个编写iOS与Android平台实时.原生组件渲染的应用程序的框架.它基于React,Facebook的JavaScript的 ...

  6. DotNetty编写跨平台网络通信

    DotNetty编写跨平台网络通信 长久以来,.Net开发人员都非常羡慕Java有Netty这样,高效,稳定又易用的网络通信基础框架.终于微软的Azure团队,使用C#实现的Netty的版本发布.不但 ...

  7. 使用 Vulkan * API 并行渲染对象

    Vulkan API 是业界最热门的新技术之一.它们支持多线程编程,可以简化跨平台开发,而且主要的芯片.GPU 和设备制造商都为其提供支持.Vulkan API 有望成为未来主流图形渲染平台之一.该平 ...

  8. 从 MVC 到使用 ASP.NET Core 6.0 的最小 API

    从 MVC 到使用 ASP.NET Core 6.0 的最小 API https://benfoster.io/blog/mvc-to-minimal-apis-aspnet-6/ 2007 年,随着 ...

  9. ElasticSearch 5.0.1 java API操作

    今天来说下使用ES 5.0.1的API来进行编码. 开始之前,简单说下5.0.1跟之前的几个变化.之前的ES自身是不支持delete-by-query的,也就是通过查询来删除,可以达到批量的效果,是因 ...

  10. 使用OAuth2.0访问豆瓣API

    如何计算某个用户的access_token过期时间?开发者可以通过两种方式计算:用户授权时,oauth2/access_token接口返回的expires_in值就是access_token的生命周期 ...

随机推荐

  1. DRF-Version组件源码分析

    1. 版本管理组件源码分析 注意点: 不同的versioning_class区别:实例化后得到的对象versioning_scheme里面的方法不同(函数同名,但是处理逻辑不同) def determ ...

  2. 推荐一个跨平台支持Word, Excel, CSV, Email等30多种格式的操作库

    更多开源项目请查看:一个专注推荐优秀.Net开源项目的榜单 在我们日常项目开发中,经常需要解析操作文档,比如Office文档.Email文件.PDF.Xml.图片.Mp3等音频文件,操作Office. ...

  3. Python 潮流周刊#77:Python 依赖管理就像垃圾场火灾?(摘要)

    本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章.教程.开源项目.软件工具.播客和视频.热门话题等内容.愿景:帮助所有读者精进 Python 技术,并增长职 ...

  4. delphi Image32 图形处理 图层

    图形图层处理是Image32的主要功能,矢量图形,分层类似 Photoshop看人图层,直接上代码效果. unit uFrmLayer; interface uses Winapi.Windows, ...

  5. 5、oracle内存及进程操作讲解

    内存结构 1.shared pool 缓存着sql.sql执行计划 查询shared pool大小: select * from v$sga_dynamic_components; 2.buffer ...

  6. 痞子衡嵌入式:利用i.MXRT10xx系列内部DCP引擎计算CRC32值时需注意数据对齐

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是利用i.MXRT10xx系列内部DCP引擎计算CRC32值时需注意数据对齐. MCU 开发里常常需要 CRC 校验来检查数据完整性,CR ...

  7. 浅析JVM内存结构和6大区域

    内存作为系统中重要的资源,对于系统稳定运行和高效运行起到了关键的作用,Java和C之类的语言不同,不需要开发人员来分配内存和回收内存,而是由JVM来管理对象内存的分配以及对象内存的回收(又称为垃圾回收 ...

  8. Java线程:线程的调度-守护线程——Java线程:线程的调度-合并——Java线程:新特征-障碍器——Java线程:大总结

    Java线程:线程的调度-守护线程   守护线程与普通线程写法上基本么啥区别,调用线程对象的方法setDaemon(true),则可以将其设置为守护线程.   守护线程使用的情况较少,但并非无用,举例 ...

  9. Django admin实现图片上传到腾讯云

    官网参考:https://docs.djangoproject.com/zh-hans/3.2/howto/custom-file-storage/ 当前业务需要使用django的admin后台进行数 ...

  10. php之编译安装

    1. 安装所需环境 yum -y install libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg-devel libpng ...