用swift+Metal shader文件编译framework动态库

若想用swift语言生成库则只能生成动态库,若是纯swift代码脚本,问题不大,按一般流程就行。
若是编译的库中有shader文件则需要先编译出Metal库。具体方法可采用如下的方式。

  1. 把shader文件和swift文件放在一起进行framework库的编译。编译成功后会自动生成一个default.metallib文件,该文件为shader生成的库文件。
  2. 把生成的framework导入需要调用的地方,注意使用库时需要单独把default.metallib取出来放到工程中的Resource下面。
  3. 使用let library = device.newDefaultLibrary()直接加载Metal库。

上面的方式是最简单的,另外,对shader文件,也可以不在xcode中编译库,而是采取手动的编译方式。参考苹果官方文档:https://developer.apple.com/library/content/documentation/Miscellaneous/Conceptual/MetalProgrammingGuide/Dev-Technique/Dev-Technique.html
手动编译Metal库后,加载库不能采用上面步骤3中的方式,需要采用如下的方式:

guard let metallibpath = Bundle(for: type(of: self)).path(forResource: "YourShader", ofType: "metallib") else {
                fatalError("Metal library not found")
            }
let library = try device.makeLibrary(filepath: metallibpath)
if library == nil{
                print("metal library is null")
            }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TransGaming公司今天发布了一款号称革命性的纯软件3D渲染引擎工具,TransGaming宣称 这款渲染引擎工具支持所有的Pixel和Vertex Shader DX9特效,并且可以获得比微软D3D 的REF设备(reference rasterizer)快50倍的速度。可能很多朋友对TransGaming公司几 乎没怎么听说过,不过提到这家公司的一个名为Cedega的软件,很多熟悉Linux的朋友可 能马上就会想起了,Cedega是一个可以使Windows平台的游戏运行在Linux下的创新软件, 支持《战地:越南》、《马克思.佩恩》、《半条命2》等多款Windows平台下的人气大作 。 今天TransGaming新发布的SwiftShader工具据说可以让用户使用非常一般的显卡也能达到 相当不错的游戏速度,不知道这款工具会不会影响到ATi和nVIDIA的生意。我们先一起来 看看SwiftShader的具体工作需求: —— 700 MHz或更高的x86处理器(需要支持SSE扩展指令集),推荐Pentium-M处理器 —— 一块2D显卡,无需3D显卡!! —— Win2000或XP系统,Linux系统通过Cedega支持也可以。 —— 256MB内存 —— 25MB磁盘空间 SwiftShader通过TransGaming自己的SwiftAsm runtime code生成系统来达到其声称的执 行效率,SwiftAsm可以把所有基于shader的、固定的几何函数以及像素管线操作代码转换 成为高速的x86 SSE/MMX代码,然后这些代码会被缓存起来以备随时调用。SwiftAsm可以 让开发者很容易的为自己程序进行高效优化。 SwiftShader的安装非常简单,SwiftShader的渲染引擎已经被封装到了D3D8.DLL和 D3D9.DLL这两个DLL文件中。这两个DLL文件可以被拷贝到任何使用D3D的应用程序目录下 ,SwiftShader会自动代替操作系统的D3D引擎。除了DLL文件外,还需要一个额外的配置 文件SwiftShader.ini来供SwiftShader调用。不过并非所有的D3D应用程序都能正常的使 用的SwiftShader的渲染引擎,很多程序和游戏需要通过TransGaming公司的调试修改认证 才可以顺利运行。 Demo在那两个文件夹中! 如果想使用此软件的功能,请将d3d8.dll d3d9.dll 和 SwiftShader.ini 拷贝到游戏目录下即可
软件实现DX9功能 TransGaming公司发布了一款号称革命性的纯软件3D渲染引擎工具,TransGaming宣称这款渲染引擎工具支持所有的Pixel和Vertex Shader DX9特效,并且可以获得比微软D3D的REF设备(reference rasterizer)快50倍的速度。可能很多朋友对TransGaming公司几乎没怎么听说过,不过提到这家公司的一个名为Cedega的软件,很多熟悉Linux的朋友可能马上就会想起了,Cedega是一个可以使Windows平台的游戏运行在Linux下的创新软件,支持《战地:越南》、《马克思.佩恩》、《半条命2》等多款Windows平台下的人气大作。 今天TransGaming新发布的SwiftShader工具据说可以让用户使用非常一般的显卡也能达到相当不错的游戏速度,不知道这款工具会不会影响到ATi和nVIDIA的生意。我们先一起来看看SwiftShader的具体工作需求: —— 700 MHz或更高的x86处理器(需要支持SSE扩展指令集),推荐Pentium-M处理器 —— 一块2D显卡,无需3D显卡!! —— Win2000或XP系统,Linux系统通过Cedega支持也可以。 —— 256MB内存 —— 25MB磁盘空间 SwiftShader通过TransGaming自己的SwiftAsm runtime code生成系统来达到其声称的执行效率,SwiftAsm可以把所有基于shader的、固定的几何函数以及像素管线操作代码转换成为高速的x86 SSE/MMX代码,然后这些代码会被缓存起来以备随时调用。SwiftAsm可以让开发者很容易的为自己程序进行高效优化。 SwiftShader的安装非常简单,SwiftShader的渲染引擎已经被封装到了D3D8.DLL和D3D9.DLL这两个DLL文件中。这两个DLL文件可以被拷贝到任何使用D3D的应用程序目录下,SwiftShader会自动代替操作系统的D3D引擎。除了DLL文件外,还需要一个额外的配置文件SwiftShader.ini来供SwiftShader调用。不过并非所有的D3D应用程序都能正常的使用的SwiftShader的渲染引擎,很多程序和游戏需要通过TransGaming公司的调试修改认证才可以顺利运行。 目前TransGaming公司提供了一个展示DEMO供用户下载,其中包括了3个非常简单的演示DEMO以及一个《马克思.佩恩》的SwiftShader.ini配置文件

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值