常用图形渲染API简介

常见的图形API,何为图形API 图形API(Application Programming Interface)是一种接口,它允许软件程序与图形硬件进行通信,从而实现对GPU的控制和图形渲染功能。图形API为开发者提供了一系列的函数和指令,使得他们能够编写代码来创建2D和3D图像,处理纹理映射,实现光照和着色等高级图形效果。这些API封装了复杂的图形渲染过程,让开发者无需深入了解底层硬件的具体实现细节。 阅读详情

目前比较常用的图形渲染API有如下几种:

  • Direct3D
  • OpenGL
  • Vulkan
  • Metal

下面会详细的介绍各种API的特点

Direct3D

DirectX.png Direct3D(简称:D3D)是微软公司在Microsoft Windows操作系统上所开发的一套3D绘图编程接口,是DirectX的一部分,目前广为各家显示卡所支援。与OpenGL同为电脑绘图软体和电脑游戏最常使用的两套绘图编程接口之一,目前只在Windows平台上可用。

OpenGL(Open Graphics Library)

OpenGL<em>500px</em>June16.png OpenGL(开放图形库或者“开放式图形库”)是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(API)。这个接口由近350个不同的函数调用组成,用来从简单的图形比特绘制复杂的三维景象。OpenGL常用于CAD、虚拟实境、科学可视化程序和电子游戏开发。

OpenGL的高效实现(利用了图形加速硬件)存在于Windows,部分UNIX平台和Mac OS。这些实现一般由显示设备厂商提供,而且非常依赖于该厂商提供的硬件。

OpenGL规范由1992年成立的OpenGL架构评审委员会(ARB)维护。ARB由一些对创建一个统一的、普遍可用的API特别感兴趣的公司组成。根据OpenGL官方网站,2002年6月的ARB投票成员包括3Dlabs、Apple Computer、ATI Technologies、Dell Computer、Evans & Sutherland、Hewlett-Packard、IBM、Intel、Matrox、NVIDIA、SGI和Sun Microsystems,Microsoft曾是创立成员之一,但已于2003年3月退出。

OpenGL ES(OpenGL for Embedded Systems)

OpenGL-ES<em>500px</em>Nov19.png OpenGL ES是 OpenGL 三维图形 API 的子集,针对手机、PDA和游戏主机等嵌入式设备而设计。现在主要有两个版本,OpenGLES1.x提供固定管道渲染,OpenGLES2.x及以上提供可编程管道渲染。目前的手机大多支持OpenGLES2.0及其以上版本。OpenGL ES相对OpenGL删减了一切低效能的操作方式,有高性能的决不留低效能的,即只求效能不求兼容性。

OpenGL- ES 是免授权费的,跨平台的,功能完善的2D和3D图形应用程序接口API,主要针对多种嵌入式系统专门设计 - 包括控制台、移动电话、手持设备、家电设备和汽车。它由精心定义的桌面OpenGL子集组成,创造了软件与图形加速间灵活强大的底层交互接口。OpenGL ES 包含浮点运算和定点运算系统描述以及 EGL针对便携设备的本地视窗系统规范。OpenGL ES 1.X 面向功能固定的硬件所设计并提供加速支持、图形质量及性能标准。OpenGL ES 2.X 则提供包括遮盖器技术在内的全可编程3D图形算法。OpenGL ES-SC 专为有高安全性需求的特殊市场精心打造。

WebGL(Web Graphics Library)

WebGL<em>500px</em>June16.png WebGL(全写Web Graphics Library)是一种3D绘图协议,这种绘图技术标准允许把JavaScript和OpenGL ES 2.0结合在一起,通过增加OpenGL ES 2.0的一个JavaScript绑定,WebGL可以为HTML5 Canvas提供硬件3D加速渲染,这样Web开发人员就可以借助系统显卡来在浏览器里更流畅地展示3D场景和模型了,还能创建复杂的导航和数据视觉化。显然,WebGL技术标准免去了开发网页专用渲染插件的麻烦,可被用于创建具有复杂3D结构的网站页面,甚至可以用来设计3D网页游戏等等。

WebGL 是以 OpenGL ES 2.0 为蓝本设计的,而不是纯的OpenGL ES。WebGL通过 HTML5 的 Canvas 来和 DOM 打交道。因此也和 OpenGL ES 2.0 一样,使用 GLSL 作为 Shading Language (一种 C-Like 顶点计算和着色的语言,缓存编译到 GPU,由 GPU 来执行)。WebGL 2.0基于OpenGL ES 3.0,确保了提供许多选择性的WebGL 1.0扩展,并引入新的API。

WebGL、OpenGL和OpenGL ES三者的关系

通过上述分析,可以得出如下关系:

17806975-8fb75da2f4541d73.png

Vulkan

Vulkan<em>500px</em>Dec16.png

Vulkan是一个跨平台的2D和3D绘图应用程序接口(API),最早由科纳斯组织(Khronos Group) 在2015年游戏开发者大会(GDC)上发表。

科纳斯最先把VulkanAPI称为“下一代OpenGL行动”(next generation OpenGL initiative)或“glNext”,但在正式宣布Vulkan之后这些名字就没有再使用了。就像OpenGL,Vulkan针对实时3D程序(如电子游戏)设计,Vulkan并计划提供高性能和低CPU管理负担(overhead),这也是Direct3D12和AMD的Mantle的目标。Vulkan兼容Mantle的一个分支,并使用了Mantle的一些组件。

Vulkan旨在提供更低的CPU开销与更直接的GPU控制,其理念大致与Direct3D 12和Mantle类似。Vulkan不再使用OpenGL的状态机设计,内部也不保存全局状态变量。显示资源全然由应用层负责管理。包括内存管理、线程管理、多线程绘制命令产生、渲染队列提交等。应用程序能够充分利用CPU的多核多线程的计算资源,降低CPU等待,降低延迟。带来的问题是。线程间的同步问题也由应用程序负责,从而对开发人员的要求也更高。

Metal

Metal.jpeg

在 WWDC 2014 上,Apple为游戏开发者推出了新的平台技术 Metal,该技术能够为 3D 图像提高 10 倍的渲染性能,并支持大家熟悉的游戏引擎及公司。

Metal 是一项全新的技术,专为开发高临场感主机游戏的开发者打造,可让开发者全力发挥 A7 和 A8 芯片的性能。该技术经过优化,使处理器和图形处理器能够协同工作来实现最优性能。它专为多线程而设计,并提供各种出色工具将所有素材整合在Xcode中。

总结

常用的一些渲染引擎,比如Unity、Cocos2d-x、OpenSceneGraph、Skia等都是基于上述图形API来实现的。图形渲染说到底最后都是通过操作GPU来实现,只是不同平台有相对应的图形渲染库而已,OpenGL则可以说是跨平台之王。

下图表格是常用图形渲染API的比较:

图形API总结.png


​​​​​​​

 

图形渲染(一)——Skia、OpenGL、Mesa 和 Vulkan简介 Skia:一个 2D 图形库,用来进行 2D 渲染,它依赖底层图形 API(如 OpenGL 或 Vulkan)来加速渲染。OpenGL 和 Vulkan:都是底层的图形 API,提供对 GPU 的控制和渲染操作。Skia 可以选择 OpenGL 或 Vulkan 作为底层 API 来执行实际的渲染任务。Mesa:是一个开源项目,提供对 OpenGL 和 Vulkan 等图形 API 的实现,特别是在 Linux 系统上。 阅读详情

相关推荐

Hello Vulkan(一)| 图形渲染新技术教程总览

随着元宇宙领域的爆火,基于视觉渲染的各类3D的XR应用如雨后春笋般应运而出,在这些酷炫的音视频和XR应用背后,离不开渲染技术,而渲染技术,你或许听过OpenGL,但现在有一项不得不提的新技术逐渐呈迅速上升态势 —— Vulkan。

虹图AI开放平台是基于虹图自研的AI能力,打造的围绕音视频等应用场景的AI技术开放平台。提供人像人体特效、人体行为分析、内容审核、人脸实名认证、图像特效等视觉AI技术,加速AI为中小企业业务赋能。 1307

SkeyePlayer渲染引擎D3DRender电子放大功能实现解决方案(附源码)

SkeyePlayer依靠D3DRender强大的渲染能力我们可以实现很多视频编辑功能,比如电子放大功能,本文将深入D3DRender渲染引擎库代码,重点讲述其如何采用surface离屏表面技术来实现渲染视频图像呈现,以实现在surface上做电子放大缩略图显示等功能。 1. D3DRender初始化D3D创建设备 首先,我们需要创建一个D3D9设备用于操作系统软硬件资源来为我们的视频渲染服务,这个代码很简单,按照Direct3D教程即可实现,如下代码所示: pD3D = Direct3DCreate9(

SwordTwelve的专栏 997

OpenGL基础入门:从Hello World到图形渲染

OpenGL(Open Graphics Library)是一个跨语言、跨平台的应用程序编程接口(API),它是由近50个主要的计算机公司共同开发的。自从1992年首次推出以来,OpenGL已经成为了图形处理领域不可或缺的工具之一。它主要用于图形渲染,也就是通过编程生成图形和图像的过程。图形渲染管线是计算机图形学中一个核心概念,它定义了从数据输入到屏幕像素输出的一系列处理步骤。了解和掌握图形渲染管线对于进行图形编程至关重要。

weixin_30591519的博客 872

RHI_图形API对比(Vulkan、DirectX 12/11、Metal、WebGPU、OpenGL)

RHI基础_图形API

qq_35312463的博客 1万+

西门子smart能搜到cpu但连接当前IP地址失败

将ip地址改到同一网段 本机为192.168.1.119就是192.168.1.1网段,但plc在192.168.0.1网段,所以显示ip连接失败,改为同一网段192.168.1.xxx即可(为避免ip冲突尽量改到200往后最大255)如果显示这一步,那么你的物理连接是没有问题的,应当是plc和电脑并不在同一网段导致的问题。输入ipconfig 查看本机网段与plc是否为同一网段。此电脑就不在同一网段所有造成通讯失败,接下来解决这个问题。win+r打开运行,打开cmd。再次尝试,如果还是报错,那么。

weixin_62678581的博客 9866

Gromacs实战:从蛋白质-小分子对接到分子动力学模拟全流程解析

本文详细解析了使用Gromacs进行蛋白质-小分子对接和分子动力学模拟的全流程,包括文件准备、拓扑生成、复合物构建、溶剂化处理、能量最小化及平衡模拟等关键步骤。通过实战案例,帮助研究者验证药物分子与靶标蛋白的结合稳定性,提升分子动力学模拟的效率和准确性。

weixin_29216353的博客 380

[引擎开发] 现代图形API - dx12篇

dx12引入了非常多全新的概念,在了解了这些概念的含义后,我们还应该认识到,所有的设计都基本是为了性能来考量的。之所以将渲染提交设计成可录制的指令,是为了方便多线程的录制;之所以独立出了管道状态对象,是为了避免维护状态上下文带来的消耗;之所以将资源绑定设计为像指针一样的描述符或描述符表,一是为了让绑定变得更加轻量(更少的绑定数量),二是可以支持动态的资源访问(bindless);

(ง •̀_•́)ง 4091

SpringBoot集成SpringSecurity5和OAuth2 — 2、OAuth2客户端【SSO单点登录时作为客户端】

SpringBoot集成SpringSecurity5和OAuth2 — 2、OAuth2客户端【SSO单点登录时作为客户端】

Mr_XiMu的博客 3742

Unity Editor 下切换 Graphics API (图形渲染 API):Dxt/OpenGL ES 2.0/3.0/

测试 Unity 版本 下面在 Unity 2019 3.8f1 版本测试 设置入口 在 Unity 的 Project Settings/Project/Player/Other Settings/Rendering 将 Auto Graphics API for Windows 的勾 去掉 这是下面会出现一栏:Graphics APIs for Windows 的列表项,可以添加 +, - 号来添加、删除指定使用的 API,每次都会优先使用从上到下的序列中的第一个,在下面我将 OpenGLES2 .

Jave.Lin 的学习笔记 1万+

NPP/VIIRS夜间灯光数据:从下载到应用的完整指南

本文提供了NPP/VIIRS夜间灯光数据从下载、处理到应用的完整实战指南。详细介绍了如何从官方源获取数据、解读文件结构、进行坐标校正与数据清洗,并深入探讨了其在城市扩张监测、社会经济指标估算、重大事件影响评估等领域的核心应用。文章旨在帮助研究者与从业者快速掌握这一强大的空间数据,将其转化为研究中的实用工具。

gpu4optimizer的博客 866

肖特基二极管的反向恢复过程

本博客简述肖特基二极管反向恢复过程。

记得诚 1万+

作为图形渲染API,OpenGL和Direct3D的全方位对比。

图像渲染API是一种用于处理和呈现图形图像的编程接口,它提供了一系列功能和工具,帮助开发者实现各种图形效果和交互。图形绘制:图像渲染API可以绘制基本的几何图形(如点、线、三角形等)和复杂的图形对象,从而创建各种视觉效果。纹理映射:通过纹理映射,图像渲染API可以将图像或纹理贴在物体表面上,实现更加真实和生动的视觉效果。光照和阴影:图像渲染API可以实现光源模拟、光照效果和阴影效果,使得图形对象在不同光照条件下呈现出逼真的效果。着色器编程。

贝格前端工场的博客 5013

五、实战pxe安装ubuntu 22.04 软raid1(实际生产pxe配置)

这段配置文件是一个cloud-init的自动安装配置,用于自动化部署Ubuntu服务器操作系统。它定义了从系统身份、键盘布局、区域设置到磁盘分区和RAID配置的一系列设置,并且包含了在安装过程的最后阶段执行的一些命令。基础设置version: 1指定了autoinstall配置文件的版本。source定义了安装源,这里是ubuntu-server。identity设置了主机名(hostname)、用户(username)和密码(password注意这里的密码是经过加密的。键盘与语言设置。

jundao1997的专栏 999

webGL硬核知识:图形渲染管渲染流程,各个阶段对应的API调用方式

顶点处理(Vertex Processing)阶段该阶段主要处理传入的顶点数据,包括顶点坐标、顶点颜色、法线向量等顶点相关的属性信息。进行的操作有坐标变换(例如将顶点从模型坐标系转换到世界坐标系、再到视图坐标系、裁剪坐标系等)以及对顶点属性进行必要的设置和计算等。例如,将一个 3D 模型中各个顶点的初始坐标通过平移、旋转、缩放等矩阵变换,使其放置到正确的空间位置,并且根据光照等需求计算顶点的光照属性(如果在顶点着色器中处理光照部分)。图元装配(Primitive Assembly)阶段。

2401_87844374的博客 2899

am62x A53与R5F通信

AM62x是Ti的一款异构多核芯片。remoteproc驱动,硬编码(写死)了R5F/M4F固件的名字,这样驱动启动时,就会找硬件编码的固件,下面是其对应关系。值得注意的是,linux内核中的M4F remoteproc驱动启动M4F,而linux内核中的R5F remoreteproc驱动不启动R5F,相反,它attach到已经在boot阶段启动的R5F固件上。在/lib/firmware的真实固件名:,而我们生成的固件名如下所示,没有直接对应的,经确认,.out文件就是我们需要的,重命名后即可。

鹰之翔 1361

Vue3 - Element Plus 日期选择器 el-date-picker,设置 type=week 变成周选择器后,将选择周时修改为 “周一至周日“ 为一组范围(详细示例代码,新手小白秒会)

vue3,element-plus,DatePicker日期选择器,el-date-picker,周,type=week,周选择器,日期选择器week怎么拿到具体的时间范围,如何取week周选择器的value值,format如何设置,时间选择器按周选择时展示具体日期范围,vue3elementPlus日期选择器选择一周7天的数据格式怎么拿到,el-date-picker设置type等于week后怎么设置format属性,format和value-format怎么设置,范围选择器周,一周,选择一周7天时间

🏆 前端领域优质创作者 1万+

QT图形渲染与效果

QT图形渲染概述QT图形渲染概述Qt是一个跨平台的C++图形用户界面应用程序框架,它被广泛用于开发GUI应用程序,也可以用于开发非GUI程序,如控制台工具和服务器。Qt图形渲染是Qt框架中的一个重要组成部分,它使得开发者能够轻松地创建出高性能、高质量的图形界面。Qt图形渲染管线Qt图形渲染基于OpenGL或DirectX等图形API,通过图形渲染管线来完成。图形渲染管线是一个由多个阶段组成的图形处理流程,包括顶点处理、光栅化、纹理映射、着色等。

QT性能优化QT原理源码QT界面美化 1771

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

图形渲染管线简介

  本文的目的是梳理一下渲染管线,本人还在打基础阶段,文中可能会有些许问题,望见谅。 应用程序阶段 Application 几何处理 Geometry Processing 顶点着色器 Vertex Shader 变换 Transformation 投影 Projection 可选阶段 Optional Stage 表面细分 Tessellation 几何着色器 Geometry Sha...

梅桂子的博客 1418

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

如何在Java中实现高效的图形渲染:从OpenGL到Vulkan

OpenGL和Vulkan是两个流行的图形API,它们提供了与GPU通信的接口,用于高效地渲染复杂的图形。Vulkan是一种更为现代的图形API,相较于OpenGL,它提供了更细粒度的控制和更高的性能。虽然Vulkan的学习曲线较为陡峭,但在高性能应用中,Vulkan可以提供更好的资源管理和更低的开销。如果目标是构建复杂的3D游戏或虚拟现实应用,Vulkan则是更合适的API。在Java中实现高效的图形渲染,从OpenGL到Vulkan,选择合适的API和优化技术是提升应用性能的关键。

微赚淘客系统开发者博客 6874

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

HarmonyOS NEXT(九) :图形渲染体系

HarmonyOS NEXT(九) :图形渲染体系

我是 二川兄,对Web开发、GIS开发、3D模型、机器学习、面试技巧等方面都有一些涉猎~ 欢迎您加入技术交流圈!你可以在我的文章末尾找到我~ 9735

ripl:为2D图形渲染提供统一API

ripl:为2D图形渲染提供统一API 在现代的前端开发中,数据可视化已经成为了一个不可或缺的部分。而在浏览器中进行2D图形渲染,通常我们会接触到两种技术:Canvas和SVG。Canvas API虽然性能强大,但其设计却是非常底层的,使用起来相对困难;而SVG则相对容易上手,但在某些方面也存在不足。这就使得开发者在项目开始时往往需要在这两种技术之间做出选择。而ripl的出现,正是为了解决这一痛点...

gitblog_00971的博客 323

【探索图形渲染新境界】—— Go语言版Vulkan API绑定

![Vulkan图标](https://cl.ly/2H2E3c0T1X16/Vulkan_500px_Mar15.png) 在当今追求高性能图形处理和跨平台兼容性的时代,**Golang Bindings for Vulkan API** 为开发者们开启了一扇新的大门。Vulkan,作为继OpenGL之后的下一代图形API,以其低开销、高效能和多平台支持特性,迅速吸引了众多游戏开发者的目光。而

gitblog_00045的博客 390

Openlayers简介|体系架构|主要API|

OpenLayers是最早的WebGIS开源库之一,迭代开发的历史较长,目前是WebGIS中功能齐全、资料和教程丰富的框架,同时其学习曲线比较平缓,很容易上手。OpenLayers采用了Canvas、WebGL和HTML5中最新的技术来构建框架,可以在移动设备上运行。

weixin_45213317的博客 3741

鸿蒙中的图形渲染与视觉效果

图形渲染是现代应用开发中至关重要的一部分,尤其是在游戏开发、虚拟现实(VR)、增强现实(AR)和其他图形密集型应用中。图形渲染指的是将计算机生成的图形数据转化为用户能够看到的图像的过程,它涉及多种技术和算法的运用,如光照、阴影、纹理映射等。鸿蒙操作系统(HarmonyOS)为开发者提供了强大的图形渲染支持,支持OpenGL ES和Vulkan等图形API。这些API提供了高效的图形渲染能力,使开发者能够在鸿蒙设备上创建精美的3D图形、动画和视觉效果。本文将介绍图形渲染的基本概念,如何使用。

2201_75863687的博客 1020

安卓游戏开发之图形渲染技术优劣分析

随着移动设备的普及和性能的提升,安卓游戏开发已经成为一个热门领域。在安卓游戏开发中,图形渲染技术是关键的一环。本文将对安卓游戏开发中常用的图形渲染技术进行分析,比较它们的优劣,并探讨它们在不同应用场景下的适用性。

wlred1980的博客 2902
上一篇: OpenSceneGraph之iOS版本编译
下一篇: YUV 420、YCbCr 422、RGB 444以及色度二次采样
SkyNullCode
博客等级 码龄11年 15粉丝 46原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值