首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
metalkit.org 翻译
苹果API搬运工
创建于2021-05-21
订阅专栏
学习 metal 过程中,对 metalkit.org 内容进行翻译
等 19 人订阅
共47篇文章
创建于2021-05-21
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
[MetalKit]28-Using-MetalKit-part-2-3^2使用MetalKit18
是的,正如标题所示,我们又有一个和数学有关的帖子了.有一天我在想,当我们通勤时间长达一小时左右,没有互联网没有笔记本电脑,只有一台iPad时,我们能做什么.幸运的是,现在iPad有了神奇的Swift Playgrounds应用了. 让我们以一个全新的playground开始,只…
[MetalKit]29-Beginning-Metal---a-new-course新的课程
我们的新网站已经完全修订好了,你可以在导航到帖子时看到.还有个好消息.Caroline,我的一个好朋友也是一位高超的Metal程序员,刚刚在RayWenderlich.com网站创建了她的新视频课程- Beginning Metal .前2课是免费的,但剩下的13个视频你需要至…
[MetalKit]30-Raymarching-in-Metal射线行进
Raymarching射线步进 是一种用在实时图形的快速渲染方法.几何体通常不是传递到渲染器的,而是在着色器中用Signed Distance Fields (SDF) 函数来创建的,这个函数用来描述场景中一个点到物体的一个面之间的最短距离.当点在物体内部时SDF函数返回一个负…
[MetalKit]31-Shadows-in-Metal-part-1阴影1
这种类型的阴影被称为hard shadows硬阴影.下次我们将学习soft shadows软阴影,它看起来更真实更好看. 源代码source code已发布在Github上.
[MetalKit]32-Shadows-in-Metal-part-2阴影2
源代码source code已发布在Github上.
[MetalKit]33-Ambient-Occlusion-in-Metal环境光遮蔽
是时候来点真正的ambient occlusion环境光遮蔽了. Ambient环境光意味着灯光不是来自一个定义好的光源,而是意味着一般的背景光照. * Occlusion遮蔽*意思是多少环境光被阻挡了.我们在曲面上取一个射线碰撞的点,观察它的周围.如果周围有一个物体,那颜色值…
[MetalKit]35-Working-with-memory-in-Metal-part-2内存管理2
注意到上面地址的最后三位数字了吗?这是来自于页对齐数据,因为地址是以0 mod pageSize确定的,因为最后三位是0,因为我们的页尺寸是0x1000. Private - 对于最多只改变一次的大尺寸数据,那它就不是"脏"的.创建一个Shared模式的源缓冲器,然后位块传送它…
[MetalKit]34-Working-with-memory-in-Metal内存管理
今天我们关注一下使用GPU时的内存管理.Metal框架将内存资源定义为MTLBuffer对象,它是分配的无类型,无格式的内存(任何数据类型),MTLTexture对象则是分配的格式化内存来保存图片数据.我们在本文中只关注缓冲器. makeBuffer(length:option…
[MetalKit]36-Introducing-Metal-2介绍Metal2
让我们看看Games and Graphics游戏和图形新闻.最意想不到的是,将Metal重命名为Metal 2.自从它在2014年第一次被发布后,它终于有了最显著的增加和增强,确实,但我们必须承认:没人预见到这一变化的来临.最意想不到的奖品是新的ARKit框架.在keynot…
[MetalKit]0-instruction说明及目录
学习本系列需要有以下基础:swift基础语法知识C/C++基础知识OpenGLES基础知识iOS或Mac相关开发经验目录:instruction说明及目录Introducing介绍MetalUsing
[MetalKit]1-Introducing介绍Metal
Metal 框架是在WWDC 2014 发布了iOS版,在WWDC2015又发布了OS X和tvOS版. Metal是一个为计算机GPU编程的接口.主要优点有: 提供最底层的GPU访问接入,因此它将减少其他框架中由于在CPU和GPU之间传递数据而经常引起的性能瓶颈. 提供相比O…
[MetalKit]2-Using-MetalKit-part-1使用MetalKit1
MetalKit 框架是在 WWDC 2015 上发布的,它给原Metal框架带来了大量改进和新特性.认识 MTKView, NSView/UIView的一个子类. 它内置了一个Metal layer层,也同时管理着帧缓冲器framebuffer及其渲染目标附件render t…
[MetalKit]3-Using-MetalKit-part-2使用MetalKit2
我们目前只关心如何储存颜色数据,colorAttachments是一个纹理数组,里面包含了绘制结果并将他们展示到屏幕上.我们目前只有一个这样的纹理-数组中的第一个元素(数组下标为0). OK,现在是时候运行程序了,确保你仍然能看到像上次一样背景颜色.很棒!只用9行代码我们就创建…
[MetalKit]5-Using-MetalKit-part-4使用MetalKit4
就像看到的那样,新的管线目前拥有两个shader着色器,我们可以在其中编写自定义代码然后在GPU上运行.图形程序的第一部分总是运行在CPU上,被称为host code主机代码.这就是绝大部分资源分配发生的地方,也是和GPU之间传输数据的地方.程序最重要的地方,却是运行在GPU上…
[MetalKit]4-Using-MetalKit-part-3使用MetalKit3
你可能会好奇vector_float4到底是什么样的数据类型.从苹果官方文档中我们发现,这种向量类型是一种clang基础类型,比传统的SIMD类型更适合向量-向量和向量-标量的算术运算.它可以通过类似数组下标来访问向量的成员分量,具体作法是用 . 操作符和组件名称访问(x,y,…
[MetalKit]6-Using-MetalKit-part-5使用MetalKit5
上一次我们了解了graphics pipeline图形管线和Metal pipelineMetal管线.这次我们更深入地学习管线,并理解顶点是如何在底层被处理.为此,我们需要学习一点儿3D math 3D数学概念比如transformations变换. 在3D graphics…
[MetalKit]7-Using-MetalKit-part-6使用MetalKit6
纹理更容易加载(只需几行代码就可以异步加载). Model I/O网格mash和Metal缓冲器buffer之间的高效数据传输. MTKView-一个方便的Metal-aware Metal认识的视图(我们稍后会深入研究它). 就是这样!简单优雅清理设备的背景色.现在我们切换到…
[MetalKit]8-Using-MetalKit-part-7使用MetalKit7
要解决这个问题,我们需要再一次重构代码.这其实是件好事.我们需要把非瞬时的Metal对象(devices, queues, data buffers, textures, states和pipelines)从drawRect(_:) 中拿出来,把它们放到视图加载时只执行一次的方…
[MetalKit]9-Using-MetalKit-part-8使用MetalKit8
注意,我们告诉playground去找到名为Shaders类型为metal的资源的存放路径.然后,我们将文件转换为一个长的String并用这些资源创建library. 源代码source code 已发布在Github上.
[MetalKit]10-Ray-tracing-in-a-Swift-playground射线追踪
今天我们从Peter Shirley’s mini book导入ray tracer射线追踪器到Swiftplayground中.我将不会解释什么是Ray Tracing射线追踪及它是怎么工作的,我会请你自己先去读一读这本书因为它对Kindle订阅者是免费的.如果你不是订阅者,…
下一页