【发布时间】:2020-11-23 01:54:35
【问题描述】:
如果这个问题被关闭了,请告诉我,因为我不想让平台上出现离题的问题!
无论如何,由于我编写了一些代码,我很难找到有关渲染图像时实际发生的情况的信息。
假设我想将数字 5 和 3 相加。CPU 会将 5 写入一个寄存器,将 3 写入另一个寄存器。 ALU 会负责计算并输出 8。没关系,CPU 使用 MOVE 和 ADD 来产生结果。
然而,我没有找到任何信息,当我想绘制一个矩形时发生了什么。大多数编程语言都有可导入的框架,可以让你做到这一点。例如,在 SpriteKit (Swift & Objc) 中,你会写类似
let node = SKSpriteNode(color: .white, size: CGSize(width: 200, height: 300))
并将node 添加到SKScene(只是一个包含childNodes 的场景),然后会“神奇地”渲染一个白色矩形。我想知道的是引擎盖下发生了什么。为什么这个确切的框架可以让你画一个矩形。什么是汇编代码(比如,对于 Intel Core M),它使 GPU 计算出这个矩形的样子? SpriteKit 如何在 Swift/Objective C 的基础上构建来真正做到这一点(我可以自己做到这一点)吗?
也许是一个奇怪的问题,但我觉得我必须知道(是的,有时我太好奇了)。谢谢。
附:我想要一个非常详细的答案,而不是“CPU '告诉' GPU 绘制一个矩形”——CPU 不会说话!
【问题讨论】: