OpenGL/DirectX/Metal/Vulkan

2024-04-04 10:36
文章标签 opengl vulkan directx metal

本文主要是介绍OpenGL/DirectX/Metal/Vulkan,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我想了解一下上面提到的东西,大体上指什么? 

DirectX、Vulkan和OpenGL是什么?什么是图形API?_哔哩哔哩_bilibili

图形API:图形化的应用程序编程接口

Vulkan和OpenGL都是图形API。

OpenGL:开源,跨平台

采用了相对较高级别的抽象设计,更易于学习和使用,但增加了额外的驱动开销。

OpenGL的函数调用需要经过多个软件层级(应用程序,OpenGL库,驱动程序)的处理,

这会引入一定的开销和性能损失。

由KhronosGroup推动的标准。

OpenGL的设计目标之一是易用性和跨平台兼容性,其抽象层级不允许开发者直接控制硬件细节。

这意味着OpenGL无法充分利用硬件的并行计算和多线程能力,以及其他高级优化技术。

所以在复制图形的应用中,OpenGL的性能逊于Vulkun和Direct3D。

Vulkan也是Khronos Group在2016年发布的跨平台底层图形API,旨在提供更高性能和更细粒度的控制。

采用底层的显示设计,允许开发者直接管理硬件资源以实现更高效的图形渲染和计算。

DirectX是各种API的合集:包含Direct3D,Direct2D,,,

由微软于1995年开发。

为对抗OpenGL而发布的多媒体和图形API,并成为Windows上最被广泛使用的图形和多媒体开发平台。

DirectX提供了许多不同的组件,用于实现各种功能,包括2D和3D图形渲染,音频处理,

输入设备管理,通用计算等。

Direct3D主要用于3D图形渲染和游戏开发,它在Windows平台上提供了与硬件和操作系统紧密集成的优势。

现在玩的大部分游戏用的基本都是DX11和DX12。

苹果的图形API:Metal

AMD:Mantle API

OpenGL Vulkan Metal 这些API如何选择_哔哩哔哩_bilibili

OpenGL的历史比较久,资料比较多,适合刚刚进入图形学领域的新手去学习。

音视频开发与OpenGL:

学习音视频开发 为什么要学习OpenGL_哔哩哔哩_bilibili

OpenGL可以利用到GPU(显卡)的硬件加速

如果使用过去比较老的2D框架,CPU比较好,能处理像1080P 30帧这种视频的实时展示。

一旦涉及到如4K 60帧这种,就会跑不动。

这篇关于OpenGL/DirectX/Metal/Vulkan的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/875553

相关文章

OPENGL顶点数组, glDrawArrays,glDrawElements

顶点数组, glDrawArrays,glDrawElements  前两天接触OpenGL ES的时候发现里面没有了熟悉的glBegin(), glEnd(),glVertex3f()函数,取而代之的是glDrawArrays()。有问题问google,终于找到答案:因为OpenGL ES是针对嵌入式设备这些对性能要求比较高的平台,因此把很多影响性能的函数都去掉了,上述的几个函数都被移除了。接

OpenGL ES学习总结:基础知识简介

什么是OpenGL ES? OpenGL ES (为OpenGL for Embedded System的缩写) 为适用于嵌入式系统的一个免费二维和三维图形库。 为桌面版本OpenGL 的一个子集。 OpenGL ES管道(Pipeline) OpenGL ES 1.x 的工序是固定的,称为Fix-Function Pipeline,可以想象一个带有很多控制开关的机器,尽管加工

OpenGL雾(fog)

使用fog步骤: 1. enable. glEnable(GL_FOG); // 使用雾气 2. 设置雾气颜色。glFogfv(GL_FOG_COLOR, fogColor); 3. 设置雾气的模式. glFogi(GL_FOG_MODE, GL_EXP); // 还可以选择GL_EXP2或GL_LINEAR 4. 设置雾的密度. glFogf(GL_FOG_DENSITY, 0

opengl纹理操作

我们在前一课中,学习了简单的像素操作,这意味着我们可以使用各种各样的BMP文件来丰富程序的显示效果,于是我们的OpenGL图形程序也不再像以前总是只显示几个多边形那样单调了。——但是这还不够。虽然我们可以将像素数据按照矩形进行缩小和放大,但是还不足以满足我们的要求。例如要将一幅世界地图绘制到一个球体表面,只使用glPixelZoom这样的函数来进行缩放显然是不够的。OpenGL纹理映射功能支持将

OpenGL ES 2.0渲染管线

http://codingnow.cn/opengles/1504.html Opengl es 2.0实现了可编程的图形管线,比起1.x的固定管线要复杂和灵活很多,由两部分规范组成:Opengl es 2.0 API规范和Opengl es着色语言规范。下图是Opengl es 2.0渲染管线,阴影部分是opengl es 2.0的可编程阶段。   1. 顶点着色器(Vert

OpenGL/GLUT实践:流体模拟——数值解法求解Navier-Stokes方程模拟二维流体(电子科技大学信软图形与动画Ⅱ实验)

源码见GitHub:A-UESTCer-s-Code 文章目录 1 实现效果2 实现过程2.1 流体模拟实现2.1.1 网格结构2.1.2 数据结构2.1.3 程序结构1) 更新速度场2) 更新密度值 2.1.4 实现效果 2.2 颜色设置2.2.1 颜色绘制2.2.2 颜色交互2.2.3 实现效果 2.3 障碍设置2.3.1 障碍定义2.3.2 障碍边界条件判定2.3.3 障碍实现2.3.

OpenGL——着色器画一个点

一、 绘制 在窗口中间画一个像素点: #include <GL/glew.h>#include <GLFW/glfw3.h>#include <iostream>using namespace std;#define numVAOs 1GLuint renderingProgram;GLuint vao[numVAOs];GLuintcreateShaderProgram (){c

Vulkan描述符、描述符Pool、Layout概念

1、DescriptorSetLayout为了组织和管理着色器资源(如缓冲区、纹理、采样器等),多个相同类型的Descriptor放在一个Layout中以优化GPU对资源的访问   //DescriptorSetLayout定义了哪些描述符Descriptor类型(Buffers、Textures、Samplers)可以包含在其中 VkDescriptorSetLayoutBinding

试用GLFW并创建OpenGL和DX的环境

介绍GLFW GLFW官网:https://www.glfw.org/ GLFW is an Open Source, multi-platform library for OpenGL, OpenGL ES and Vulkan development on the desktop. It provides a simple API for creating windows, contex

尝试进入Vulkan的ValidationLayer中的代码调用栈

问题 当前,我遇到了一个Vulkan中的错误断点: (可以看到最后的位置是“VkLayer_khronos_validation.dll”,即Validation Layer) 这个中断可以在工程YaksueGraphics的这个提交中复现: 当我双击最后的栈时,提示没有cpp文件可供查看 这个core_validation.cpp是Validation Layer中的代码,而对于V