opencv,opengl,osg,vulkan,webgL,opencL,cuda,osg,vtk,ogre的區別

OpenCV

  • OpenCV是一個基于BSD許可(開源)發行的跨平臺計算機視覺和機器學習軟件庫,可以運行在Linux、Windows、Android和Mac OS操作系統上。 它輕量級而且高效——由一系列 C 函數和少量 C++ 類構成,同時提供了Python、Ruby、MATLAB等語言的接口,實現了圖像處理和計算機視覺方面的很多通用算法。
  • opencv官網
  • github源碼

OpenGL

  • OpenGL(英語:Open Graphics Library,譯名:開放圖形庫或者“開放式圖形庫”)是用于渲染2D、3D矢量圖形的跨語言、跨平臺的應用程序編程接口(API)。這個接口由近350個不同的函數調用組成,用來從簡單的圖形比特繪制復雜的三維景象。而另一種程序接口系統是僅用于Microsoft Windows上的Direct3D。OpenGL常用于CAD、虛擬實境、科學可視化程序和電子游戲開發。
  • opengl官網
  • 入門教程

OpenSceneGraph

  • OpenSceneGraph 能夠更加快速、便捷地創建高性能、跨平臺的交互式圖形程序。OpenSceneGraph是一個開放源碼,跨平臺的圖形開發包,它為諸如飛行器仿真,游戲,虛擬現實,科學計算可視化這樣的高性能圖形應用程序開發而設計。它基于場景圖的概念,它提供一個在OpenGL之上的面向對象的框架,從而能把開發者從實現和優化底層圖形的調用中解脫出來,并且它為圖形應用程序的快速開發提供很多附加的實用工具。

Vulkan

  • 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的一些組件。

WebGL

  • WebGL(全寫Web Graphics Library)是一種3D繪圖協議,這種繪圖技術標準允許把JavaScript和OpenGL ES 2.0結合在一起,通過增加OpenGL ES 2.0的一個JavaScript綁定,WebGL可以為HTML5 Canvas提供硬件3D加速渲染,這樣Web開發人員就可以借助系統顯卡來在瀏覽器里更流暢地展示3D場景和模型了,還能創建復雜的導航和數據視覺化。顯然,WebGL技術標準免去了開發網頁專用渲染插件的麻煩,可被用于創建具有復雜3D結構的網站頁面,甚至可以用來設計3D網頁游戲等等。

OpenCL

  • OpenCL(全稱Open Computing Language,開放運算語言)是第一個面向異構系統通用目的并行編程的開放式、免費標準,也是一個統一的編程環境,便于軟件開發人員為高性能計算服務器、桌面計算系統、手持設備編寫高效輕便的代碼,而且廣泛適用于多核心處理器(CPU)、圖形處理器(GPU)、Cell類型架構以及數字信號處理器(DSP)等其他并行處理器,在游戲、娛樂、科研、醫療等各種領域都有廣闊的發展前景。

CUDA

  • CUDA(Compute Unified Device Architecture),是顯卡廠商NVIDIA推出的運算平臺。 CUDA?是一種由NVIDIA推出的通用并行計算架構,該架構使GPU能夠解決復雜的計算問題。 它包含了CUDA指令集架構(ISA)以及GPU內部的并行計算引擎。 開發人員可以使用C語言來為CUDA?架構編寫程序,C語言是應用最廣泛的一種高級編程語言。所編寫出的程序可以在支持CUDA?的處理器上以超高性能運行。CUDA3.0已經開始支持C++和FORTRAN。

DirectX

  • DirectX(Direct eXtension,簡稱DX)是由微軟公司創建的多媒體編程接口,是一種應用程序接口(API)。DirectX可以讓以windows為平臺的游戲或多媒體程序獲得更高的執行效率,加強3D圖形和聲音效果,并提供設計人員一個共同的硬件驅動標準,讓游戲開發者不必為每一品牌的硬件來寫不同的驅動程序,也降低用戶安裝及設置硬件的復雜度。DirectX已被廣泛使用于Microsoft Windows、Microsoft XBOX、Microsoft XBOX 360和Microsoft XBOX ONE電子游戲開發。

Direct3D

  • 由微軟公司所制定的3D規格界面,與Windows 95和Windows NT操作系統兼容性好,可繞過圖形顯示接口(GDI)直接進行支持該API的各種硬件的底層操作,大大提高了游戲的運行速度。Direct 3D是基于微軟的通用對象模式COM(Common Object Mode)的3D圖形API。它是由微軟(Microsoft)一手樹立的3D API規范,微軟公司擁有該庫版權,它所有的語法定義包含在微軟提供的程序開發組件的幫助文件、源代碼中。Direct3D是微軟公司DirectX SDK集成開發包中的重要部分,適合多媒體、娛樂、即時3D動畫等廣泛和實用的3D圖形計算。自1996年發布以來,Direct3D以其良好的硬件兼容性和友好的編程方式很快得到了廣泛的認可,現在幾乎所有的具有3D圖形加速的主流顯示卡都對Direct3D提供良好的支持。但它也有缺陷,由于是以COM接口形式提供的,所以較為復雜,穩定性差,另外,目前只在Windows平臺上可用。

DirectX和Direct3D區別與聯系

  • direct3D只是directX其中一個模塊。
  • DirectX是由很多API組成的,按照性質分類,可以分為四大部分:顯示部分、聲音部分、輸入部分和網絡部分。
  • 顯示部分擔任圖形處理的關鍵,分為DirectDraw(DDraw)和Direct3D(D3D)。前者主要負責2D圖像加速,它包括很多方面:我們播放DVD電影、看圖、玩小游戲等等都是用的DDraw,你可以把它理解成所有劃線的部分都是用的DDraw;后者則主要負責3D效果的顯示,比如CS中的場景和人物等,都是使用了DirectX的Direct3D。
  • 聲音部分中最主要的API是DirectSound,除了播放聲音和處理混音之外,還加強了3d音效,并提供了錄音功能。比如聲卡兼容,就是利用了DirectSound來解決的。
  • 輸入部分DirectInput可以支持很多的游戲輸入設備,它能夠讓這些設備充分發揮最佳狀態和全部功能。除了鍵盤和鼠標之外還可以連接手柄、搖桿、模擬器等。
  • 網絡部分DirectPlay主要就是為了具有網絡功能游戲而開發的,提供了多種連接方式,TPC/IP,IPX,Modem,串口等,讓玩家可以用各種聯網方式來進行對戰,此外也提供網絡對話功能及保密措施。

????????vtk是一個算法庫,里面包括了很多挺不錯的算法,如果做有限元云圖,等值線,特別是醫療方面的算法,有很大的參加價值,我曾經把它的等值線算法提取出來

????????一個類就可以實現,主要函數就三四個,而且同時實現了云圖,等值線,比網上的追蹤算法要簡單許多,它是一種柵格算法,國外的的維基百科有介紹,但是維基百科上的介紹和vtk的也不完全一樣,雖然思路是一致的。vtk的渲染效率應該不是很快,里面沒有集成八叉樹等場景管理的算法,它的主要目的也不是渲染,而是算法。

????????而且它的架構也是一種管道流的方法,輸入數據經過一系列的算法處理后,最終形成點,線,面,存入vtkPolyData里面,然后在屏幕上繪制出來。

????????使用vtk主要有兩種方法,第一種就是參考它的算法,直接抽也來,用自己的數據結構實現,這種方法方法可以脫離vtk, 直接加入到自己的軟件里面,缺點就是提出麻煩,需要對vtk比較熟悉

????????第二種方法就是用vtk的數據結構,算法部分直接用vtk的庫,然后最終的點線面數據從vktPolyData提取出來,用自己的代碼繪制。缺點就是如果只用某種算法,比如它的等值線算法的話,也需要引用它的好幾個庫,顯得太臃腫,優點是不用提取算法,而且可以直接的使用它提供的多種算法,本人兩種方法都用過。

????????osg是一種場景圖的方法,每個opengl相關的函數都是一個節點, 適合用仿真,里面集成的很多算法,比如多相機,多視圖,粒子系統,各種回調函數,求交等都比較合適仿真,而且它只支持opengl, 擴展起來很方便,里面還集成了幾種漫游器,如果要寫自己的漫游器,也可以參考。如果初學者要學習圖形學的話,推薦學習osg,網上也有很多的資料和教程,而且它有多線程的實現模型。

????????ogre用于游戲多些,而且支持d3d, 由于要同時實現opengl和d3d,所以相對OSG來說,它比較難以擴展,但是它的一些插件式的架構設計相當不錯,如果想進入游戲行業,同時想學習了解引擎架構的話,推薦學習ogre,感覺ogre有點過度設計了,反而難以擴展,而且里面也沒有集成好用的漫游器。它的粒子系統,場景管理都是插件式的,可以利用它來學習插件式的程序設計。

其他關于 vtk 與osg

在VTK之上開發的Paraview成為開源軟件和很多公司的可視化工具。尤其在醫療三維可視化方面,基本上算是首選開發工具。采用VTK和Paraview為可視化開發工具比較出名的有OpenFOAM,Salome,StressCheck,Cubit等。

Vtk,(visualization toolkit)是一個開源的免費軟件系統,主要用于三維計算機圖形學、圖像處理和可視化。Vtk是在面向對象原理的基礎上設計和實現的,它的內核是用C++構建的,包含有大約250,000行代碼,2000多個類,還包含有幾個轉換界面,因此也可以自由的通過Java,Tcl/Tk和Python各種語言使用vtk

VTK以用戶使用的方便性和靈活性為主要原則,具有如下的特點:

1) 具有強大的三維圖形功能。Visualization Toolkit 既支持基于體素Voxel-basedrendering 的體繪制Volume Rendering又保留了傳統的面繪制,從而在極大的改善可視化效果的同時又可以充分利用現有的圖形庫和圖形硬件

2) Visualization Toolkit 的體系結構使其具有非常好的流streaming和高速緩存caching 的能力,在處理大量的數據時不必考慮內存資源的限制

3) Visualization Toolkit 能夠更好的支持基于網絡的工具比如Java 和VRML 隨著Web 和Internet 技術的發展VisualizationToolkit 有著很好的發展前景

4) 能夠支持多種著色如OpenGL 等

5) Visualization Toolkit 具有設備無關性使其代碼具有良好的可移植性

6) Visualization Toolkit 中定義了許多宏,這些宏極大的簡化了編程工作并且加強了一致的對象行為

7) Visualization Toolkit 具有更豐富的數據類型,支持對多種數據類型進行處理

8) 既可以工作于Windows 操作系統又可以工作于Unix 操作系統極大的方便了用戶。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/39491.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/39491.shtml
英文地址,請注明出處:http://en.pswp.cn/news/39491.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

avue多選列表根據后端返回的某個值去判斷是否選中;avue-curd多選回顯

效果如上: getSiteList().then(res > {//列表數據this.siteData res.data.datathis.$nextTick(()>{this.siteData.forEach(item>{//業務條件if(item.configid&&item.configid!0&&item.configid>0){//符合條件時調用選中的方法this.$…

JAVASE---數組的定義與使用

數組的基本概念 什么是數組 數組是具有相同類型元素的集合,在內存中連續存儲。 1. 數組中存放的元素其類型相同 2. 數組的空間是連在一起的 3. 每個空間有自己的編號,起始位置的編號為0,即數組的下標 數組的創建及初始化 數組的創建 T[…

mybatis高級特性

文章目錄 數據庫事務管理批處理插件擴展持久化和ORM緩存機制 數據庫事務管理 通過注解方式: 在需要進行事務管理的方法上添加Transactional注解,該注解可以用于類或方法上。在配置文件中開啟事務管理器,并指定事務管理器的類型和連接池等相關…

Java SpringBoot Vue智能停車系統

基礎環境 JDK1.8、Maven、Mysql、IntelliJ IDEA 內置功能 系統管理:角色管理、接口管理、系統菜單、全局配置 賬號管理:用戶管理、合作單位 系統監控:監控大屏、日志監控 財務管理:訂單列表 停車記錄:停車記錄 車輛管…

Labview選項卡之實現被選擇選項卡工作

文章目錄 前言一、使用選項卡二、實現被選擇選項卡工作1、需求2、分析3、實現①、前面板②、程序框圖 三、效果展示四、源碼自取 前言 有些時候,我們做界面,需要好多個界面切換。如果是同一個 VI 里界面切換,一般都是選項卡了。切換不同選項…

使用phpstorm開發調試thinkphp

1.環境準備 1.開發工具下載:PhpStorm: PHP IDE and Code Editor from JetBrains 2.PHP下載:PHP: Downloads 3. PHP擴展:PECL :: Package search 4.用與調試的xdebug模塊: Xdebug: Downloads xdebug模塊,如果是php8以…

23.8.16日總結

原先寫的評論是每級評論用縮進來區分,所以最多設置的是九級評論,修改了排版和格式: 還有管理員頁面,查看文章時可以進行點贊,收藏的操作,現在進行了修改,將相關操作隱藏。 還有點擊查看未發布…

js如何獲取字符串大小是幾M

js如何獲取字符串大小是幾M 在JavaScript中,可以使用以下方法來獲取字符串的大小(以字節為單位): function getStringSizeInBytes(str) {// 使用UTF-8編碼計算字符串的字節長度let totalBytes new Blob([str]).size;// 將字節長…

14-矩陣相乘及其運算法則

矩陣與向量的乘法 在這一篇文章中我們就將基于上一篇重新審視矩陣的這個視點來理解矩陣的乘法,那么在這一篇,我們主要來看一下矩陣和向量的乘法。這里這個線性方程組是上一小節給大家舉的模擬的一個非常簡單的小型經濟系統的例子,我們可以把…

文件的導入與導出

文章目錄 一、需求二、分析1. Excel 表格數據導出2. Excel 表格數據導入一、需求 在我們日常開發中,會有文件的導入導出的需求,如何在 vue 項目中寫導入導出功能呢 二、分析 以 Excel 表格數據導出為例 1. Excel 表格數據導出 調用接口將返回的數據進行 Blob 轉換,附: 接…

logstash日志換行處理小解

logstash主用于日志實時數據收集、解析,并將數據轉發的工具,內置的功能也相當強大。但,同時意味著,他可能接收到各種情況的數據。 此處,我們主要講解我實際使用中,碰到的一個小問題,換行(\n)。…

redis 和 mongodb 比較

Redis和MongoDB是兩種不同類型的數據庫,它們在數據存儲和查詢方式、數據模型以及適用場景等方面有一些明顯的區別。下面是Redis和MongoDB之間的一些比較: 數據模型: Redis:Redis是一個鍵值存儲系統,支持多種數據結構如…

FPGA應用學習筆記--時鐘域的控制 亞穩態的解決

時鐘域就是同一個時鐘的區域,體現在laways語句邊緣觸發語句中,設計規模增大就會導致時鐘不同步,有時差,就要設計多時鐘域。 會經過與門的延時產生的新時鐘域,這種其實不推薦使用,但在ascl里面很常見 在處理…

八大排序超詳解(動圖+源碼)

💓博主個人主頁:不是笨小孩👀 ?專欄分類:數據結構與算法👀 刷題專欄👀 C語言👀 🚚代碼倉庫:笨小孩的代碼庫👀 ?社區:不是笨小孩👀 🌹歡迎大家三連關注&…

虛幻5中Lumen提供哪些功能以及如何工作的

虛幻引擎 5 中的 Lumen 是一個完全動態的全局照明和反射系統。它可以在虛幻引擎 5 中使用,因此創作者無需自行設置。它是為下一代控制臺和建筑可視化等高端可視化而設計的。那么它提供了哪些功能以及如何工作? 全局照明 當光離開光源時,它會…

負載均衡搭建

LVS-DR部署 [客戶端] node1 192.168.157.148 [lvs] node2 192.168.157.142 [web服務器] node3 192.168.157.145 node4 192.168.157.146(1)[lvs] yum install -y ipvsadm.x86_64 配置LVS負載均衡服務 (1)手動添加LVS轉發1&#xff…

系統架構設計專業技能 · 軟件工程之軟件測試與維護(六)【系統架構設計師】

系列文章目錄 系統架構設計專業技能 網絡規劃與設計(三)【系統架構設計師】 系統架構設計專業技能 系統安全分析與設計(四)【系統架構設計師】 系統架構設計高級技能 軟件架構設計(一)【系統架構設計師…

MAVEN利器:一文帶你了解MAVEN以及如何配置

前言: 強大的構建工具——Maven。作為Java生態系統中的重要組成部分,Maven為開發人員提供了一種簡單而高效的方式來構建、管理和發布Java項目。無論是小型項目還是大型企業級應用,Maven都能幫助開發人員輕松處理依賴管理、編譯、測試和部署等…

YOLOV7改進:加入RCS-OSA模塊,提升檢測速度

1.該文章屬于YOLOV5/YOLOV7/YOLOV8改進專欄,包含大量的改進方式,主要以2023年的最新文章和2022年的文章提出改進方式。 2.提供更加詳細的改進方法,如將注意力機制添加到網絡的不同位置,便于做實驗,也可以當做論文的創新點。 2.漲點效果:RCS-OSA模塊更加輕量化,有效提升檢…

Spring Boot業務代碼中使用@Transactional事務失效踩坑點總結

1.概述 接著之前我們對Spring AOP以及基于AOP實現事務控制的上文,今天我們來看看平時在項目業務開發中使用聲明式事務Transactional的失效場景,并分析其失效原因,從而幫助開發人員盡量避免踩坑。 我們知道 Spring 聲明式事務功能提供了極其…