代码之家  ›  专栏  ›  技术社区  ›  Dev.K.

处理3D动画图形着色器和相同3D动画GIF的差异

  •  1
  • Dev.K.  · 技术社区  · 7 年前

    当我们使用图形着色器开发(HLSL语言)任何3D动画时(可能需要DirectX的帮助),我知道着色器会编译为着色器字节码。这些字节码意味着一些中间着色器组装指令。这些指令将传递给GPU驱动程序,GPU驱动程序将这些指令转换为其专有的GPU指令,最后GPU将呈现它们。

    现在我想知道,当我们在3D GIF(一些.GIF)文件中看到完全相同的动画时,操作系统如何渲染3D动画?

    它是否遵循相同的路径来渲染图形,或者在GIF的情况下发生了不同的事情?

    谢谢

    1 回复  |  直到 7 年前
        1
  •  2
  •   MuertoExcobito    7 年前

    在DirectX中渲染时,最终将3D场景转换为2D图像,并显示在显示设备(例如显示器)上。这通常通过使用 projection matrix ,将三维坐标转换为屏幕空间(2D)坐标。

    通常,操作系统不直接显示图像文件(.gif),它们是通过另一个程序加载渲染的(该程序可能作为操作系统的一部分分发,例如,在Windows资源管理器中生成缩略图)。图像的准确显示方式取决于显示程序的实现。如何实现它有很多可能,DirectX、OpenGL、, GDI ,都是可能的。