主頁 >  其他 > 詳解 OpenGL ES 2.x 渲染流程

詳解 OpenGL ES 2.x 渲染流程

2021-08-31 19:56:31 其他

khronos官方對OpenGL ES的描述如下:

OpenGL? ES is a royalty-free, cross-platform API for rendering advanced 2D and 3D graphics on embedded and mobile systems - including consoles, phones, appliances and vehicles. It consists of a well-defined subset of desktop OpenGL suitable for low-power devices, and provides a flexible and powerful interface between software and graphics acceleration hardware.

OpenGL ES 是一種免費的跨平臺 API,用于在嵌入式設備和移動系統(包括 consoles、手機、電器 和 車載 )上渲染高效的 2D 和 3D 圖形, OpenGL ES 由OpenGL裁剪而來,適用于低功耗設備,并為軟體和圖形硬體加速之間提供靈活而強大的介面,

這篇文章主要介紹OpenGL ES的渲染流程,通過該文章了解一幀影像經過OpenGL ES處理,是如何最終渲染到手機螢屏上的,

二、著色語言

OpenGL ES 2.x采用的是可編程渲染管線(OpenGL ES 1.x為固定渲染管線),將頂點著色器片元著色器的編碼權限開放給開發者,
開發者需要使用OpenGL ES Shading Language(著色語言) 編碼實作頂點著色器片元著色器處理邏輯,從而渲染出自己想的展示效果,

正文開始之前,有必要先了解一下OpenGL ES 與 OpenGL ES Shading Language 的對應關系,了解對應的API版本,才能撰寫對應版本要求的Shading Language腳本,

OpenGL ES Version GLSL Version
1.0 --
1.1 --
2.0 100
3.0 300
3.1 310
3.2 320
  • OpenGL ES 1.x為固定渲染管線,無Shading Language對應版本;
  • OpenGL ES 2.x開始才有可編程渲染管線,OpenGL ES 2.0對應的OpenGL ES Shading Language版本為1.00

Shading Language 1.00 檔案:
https://www.khronos.org/registry/OpenGL/specs/es/2.0/GLSL_ES_Specification_1.00.pdf

各OpenGL ES版本API檔案:
https://www.khronos.org/registry/OpenGL/specs/es/

二、渲染管線

OpenGL ES中的渲染管線指的是一系列的繪制程序輸入是需要渲染的3D物體的相關描述資訊資料(例:頂點坐標、頂點顏色、頂點紋理等),經過渲染管線輸出一幀想要的影像
渲染管線也稱之為渲染流水線,由顯示芯片(GPU)內部處理圖形信號的并行處理單元組成,這些并行處理單元兩兩之間相互獨立,根據顯示芯片性能的不同處理單元的數量也存在很大的差異,將渲染作業通過顯示芯片中多個相互獨立的單元進行并行處理后,渲染的效率可以大大提高,

OpenGL ES 2.x的渲染管線如下圖所示:

OpenGL ES2.x渲染管線

2.1 基本處理

該階段設定三維空間中物體的頂點坐標頂點對應的顏色頂點的紋理坐標等資料,并且指定三維物體的繪制方式,如:點繪制、線段繪制或者三角形繪制等,

2.2 頂點緩沖區

頂點緩沖區在應用程式中是可選的,對于某些在整個場景中頂點資料基本不變的情況,可以在初始化階段將頂點資料經基本處理后送入頂點緩沖區,在繪制每一幀想要的影像時就省去了頂點資料IO的步驟,直接從頂點緩沖區中獲取頂點資料即可,相比于每次繪制時單獨將頂點資料送入GPU的方式,可以在一定程度上節省GPU的 IO 帶寬,提高渲染效率,

2.3 頂點著色器

頂點著色器是一個可編程的處理單元,功能為執行頂點的變換光照材質的應用與計算頂點的相關操作每個頂點執行一次
其作業程序為將原始的頂點幾何資訊(頂點坐標、顏色、紋理)及其他屬性傳送到頂點著色器中,經過自定義的頂點著色程式處理產生變化后的頂點位置資訊,將變化后的頂點位置資訊傳遞給后續圖元裝配階段,對應的頂點紋理、顏色等資訊則經光柵化后傳遞到片元著色器,

頂點著色器替代了原有固定管線(OpenGL 1.x采用固定渲染管線)的頂點變換、光照計算,采用 著色語言進行開發(OpenGL ES Shading Language) ,開發人員可以根據自己的需求采用著色語言自行開發頂點變換、光照等功能,大大增加了程式的靈活性,

OpenGL ES 2.x 頂點著色器

頂點著色器的輸入主要為待處理頂點相應的attributeuniform采樣器以及臨時變數,輸出主要為經過頂點著色器后生成的varying及一些內建輸出變數

  • uniform(統一變數)
    指的是對于同一組頂點組成的三維物體其所有頂點屬性都相同的屬性量,一般為場景中當前的光源位置當前的攝像機位置投影系列矩陣等,,可以使用 uniform (統一變數) 傳入頂點著色器,
  • attribute(屬性變數)
    指的是三維空間中物體每個頂點各自不同的資訊所屬的變數,一般為頂點的位置顏色法向量等,每個頂點各自不同的資訊都是以attribute變數的方式傳入頂點著色器的,
  • varying(易變變數)
    對于從頂點著色器傳遞到片元著色器的量,如 用于傳遞到片元著色器中的頂點顏色,可以使用varying (易變變數),
  • gl_Position (內建變數):
    內建變數為輸出到OpenGL ES渲染管線的資料變數
    頂點著色器從應用程式中獲得原始的頂點位置資料,這些原始的頂點資料在頂點著色器中經過平移、旋轉、縮放等數學變換后,生成新的頂點位置,新的頂點位置通過在頂點著色器中寫入gl_Position傳遞到渲染管線的后繼階段繼續處理,
  • gl_PointSize (內建變數):
    內建變數為輸出到OpenGL ES渲染管線的資料變數
    gl_PointSize的值一般只有在采用了點繪制方式之后才有意義,頂點著色器中可以計算一個點的大小(單位為像素),并將其賦值給gl_PointSize(float型別)以傳遞給渲染管線,如果沒有明確賦值的話,默認值為1,

頂點著色器代碼舉例

著色器采用OpenGL ES Shading Language撰寫,為一種類C的編程語言,頂點著色器代碼實作舉例如下:

詳細了解著色語言語法,可查看khronos官方
OpenGL ES Shading Language 1.00:
https://www.khronos.org/registry/OpenGL/specs/es/2.0/GLSL_ES_Specification_1.00.pdf

// 頂點著色器程式舉例如下:
uniform mat4 uMVPMatrix; //總變換矩陣
attribute vec3 aPosition; //頂點位置
attribute vec4 aColor; //頂點顏色
varying  vec4 vColor; //用于傳遞給片元著色器的變數

void main()     
{
   //根據總變換矩陣計算此次繪制此頂點位置
   gl_Position = uMVPMatrix * vec4(aPosition,1); 
   //將接收的顏色傳遞給片元著色器
   vColor = aColor; 
}        
  • uniform(統一變數)
    如:頂點著色器舉例程式中的uniform mat4 uMVPMatrix; 總變換矩陣
  • attribute(屬性變數)
    如:頂點著色器舉例程式中的頂點位置aPosition、頂點顏色aColor,
  • varying(易變變數)
    如:頂點著色器舉例程式中的varying vec4 vColor; 頂點顏色
  • 內建輸出變數
    如:如輸出到渲染管線的 gl_Position(頂點的最終位置),

注:
易變變數(頂點顏色、紋理)在頂點著色器賦值后并不直接賦值到片元著色器中,而是經由光柵化階段處理,將三維世界由頂點資料構成的物體離散為二維世界一個個像素點,片元著色器處理的資料是已經離散到二維顯示平面上的一個個離散的像素點(每個像素點為一個片元),而這個離散程序中位于兩個頂點之間的像素頂資料(顏色值、紋理資料),大多在光柵化階段差值計算產生

光柵化階段的差值計算

上圖中,展示的是一個自上而下黑到白的一個漸變三角形
在OpenGL ES的輸入中,僅僅輸入了三個頂點顏色值,頂點1 (0,0,0) 黑色、,頂點2 (1,1,1) 白色、頂點3 (1,1,1) 白色,而在三角形在光柵化階段,投影到螢屏上之前,其他部分的顏色是由這三個輸入頂點顏色值差值計算產生的,例如:三角形高二分之一處的點顏色差值計算的結果為 (0.5,0.5,0.5) 灰色,

2.4 圖元裝配

在這個階段,主要有兩個任務,一個是圖元組裝,另一個是圖元處理

  • 圖元組裝是頂點資料被結合成完整的圖元,
    例如:一個單獨的點就是一個圖元,它只需要一個點;一條直線也是一個圖元,為兩個點構成的圖元;三角形則需要三個頂點構成一個圖元,
    圖元組裝時會有效的收集足夠的頂點以組成一個單獨的圖元,方便進行后續處理,
  • 圖元處理最重要的是剪裁,其任務是消除位于顯示區域之外的部分幾何圖元,
    圖元處理階段:
    如果圖元完全位于視椎體內,則傳遞圖元進行后面的處理;
    如果有一部分位于視椎體內,則剪裁該圖元(剪裁圖元可能會額外增加頂點資料),
    如果其完全位于視椎體外,則丟棄該圖元,以節省GPU性能,

圖元裝配中的剪裁操作

2.5 光柵化

光柵化就是將三維空間中連續的數學圖形,柵格化為二維顯示平面上一個個像素點的程序,

將由三維頂點資訊組成的幾何圖元柵格化為幀緩沖區中由無數像素點構成的二維影像,這里,最終生成的幀緩沖區中每一個像素點都被看做一個片元
例如,一條直線可能在螢屏上包含了5個像素,而光柵化就是將這條直線轉化為5個片元,每個片元由頂點坐標、頂點顏色、頂點紋理坐標以及頂點的深度等資訊組成,

光柵化實際是由以下兩個程序組成:

  • 將三維空間中的幾何圖元,投影到二維平面上:

三維物體投影到二維平面

  • 將投影到二維平面上的幾何圖元,柵格化為幀緩沖區中一個個像素:

幾何圖元柵格化為幀緩沖區的一個個像素點

2.6 片元著色器

片元著色器是用于處理片元相關資料的可編程單元,可以執行紋理的采樣顏色的匯總計算霧顏色等操作,每片元執行一次(每個像素執行一次)
片元著色器可編程單元替換了OpenGL ES 1.x固定渲染管線階段中紋理顏色求和霧以及Alpha測驗等階段,被其替代的功能將需要由開發人員用著色器語言編碼完成,

片元著色器

頂點著色器每頂點執行一次片元著色器每片元[像素]執行一次
一般情況下片元的數量遠遠大于構成三維物體頂點的數量(例如:一個三角形由三個頂點資料構成,光柵化到螢屏上時,卻有成百上千個像素點構成),因此片元著色器的執行次數明顯大于頂點著色器的執行次數,開發中為提高運行效率,應盡量減小片元著色器的運算量,將一些復雜運算放在頂點著色器中執行

  • varying(易變變數)
    頂點著色器傳遞到片元著色器的資料變數,如頂點著色器所介紹,由系統在頂點著色器后的光柵化階段自動插值產生,varying變數個數隨需求而定,并沒有硬性的變數數量上限限制,
  • gl_FragColor (內建變數):
    片元著色器用 gl_FragColor 向OpenGL ES渲染管線寫入計算完成的片元顏色值,此顏色值將進入渲染管線的后繼階段繼續處理,

片元著色器代碼舉例
著色器采用OpenGL ES Shading Language撰寫,為一種類C的編程語言,片元著色器代碼實作舉例如下:

詳細了解著色語言語法,可查看khronos官方
OpenGL ES Shading Language 1.00:
https://www.khronos.org/registry/OpenGL/specs/es/2.0/GLSL_ES_Specification_1.00.pdf

// 片元著色器舉例(每個片元[像素]執行一次)
precision mediump float;
//接收從頂點著色器過來的引數(具體數值由光柵化階段差值產生)
varying vec4 vColor; 

void main()                         
{
  //片元的最終賦值
   gl_FragColor = vColor;
}
  • varying(易變變數)
    例,接收從頂點著色器過來的顏色引數 varying vec4 vColor
  • gl_FragColor
    例,片元著色器具體程式中的 gl_FragColor = vColor

2.7 剪裁測驗

如果程式中啟用了剪裁測驗,OpenGL ES 會檢查每個片元在幀緩沖中對應的位置,若對應位置在剪裁視窗中則將此片元送入下一階段,否則丟棄此片元,,

2.8 深度測驗和模板測驗

  • 深度測驗
  • 模板測驗

a、深度測驗

深度測驗是在片元處理程序中通過測驗一個片元在視椎體的深度坐標,來判斷它是否被更小深度坐標的片斷遮擋而決定是否真去繪制它(開啟深度測驗有助于節省GPU性能);沒有深度測驗,物體展現與否就會取決于繪制順序而不是擺放的坐標,

// 在Android中打開深度測驗
GLES20.glEnable(GLES20.GL_DEPTH_TEST);

b、模板測驗

模板測驗的主要功能為將繪制區域限定在一定的范圍內,一般用在湖面倒影、鏡像等場合,
模板測驗涉及到一個詞模板緩沖區(Stencil Buffer),在模板緩沖中,通常每個模板值(Stencil Value)是8位的,所以每個片元一共能有256種不同的模板值,
使用時,我們可以先將模板緩沖區刷成個某個固定的值,然后進行影像繪制,完成繪制后模板緩沖區中的值可能會被污染[污染],此時開發者就可以選擇丟棄或是保留這些被污染的片段,從而構造湖面倒影或者鏡像,

2.9 顏色緩沖混合

經過前面的幾個階段,已經產生了候選片元,而候選片元最終要進入幀緩沖成為像素,
在候選片元進入幀緩沖區成為像素的程序中:

  • 若未開啟了Alpha混合,則當前片元成為螢屏的像素,覆寫掉螢屏上的原有像素;
  • 若開啟了混合,則根據Alpha值將當前像素與候選片元進行顏色混合得出最終的顏色,

2.10 抖動

抖動是一種簡單的操作,是一種在色彩空間較小的設備上展示較大色彩空間的影像的一種方法,
例如:在一個RGB_565的設備上展示RGB_888的影像,展示時如果簡單進行資料截斷位,會造成色彩的失真和生硬,抖動使用一個矩陣,來調整一個像素周圍的像素的值,來使人眼產生錯覺,而模擬出原來的色彩,
這種技巧,對于只支持8位或者16位顏色資訊的顯示系統中非常有用,

// 開啟抖動
GLES20.glEnable(GLES20.GL_DITHER);

2.11 幀緩沖

OpenGL ES的物體繪制并不是直接回執在螢屏上的,而是預先在幀緩沖區中進行繪制,每一繪制完成一幀再將繪制的結果交換到螢屏上,因此,每次繪制新的一幀資料時都需要清理緩沖區中的相關資料,否則可能產生錯誤的顯示效果,

三、參考

OpenGL ES Shading Language 1.00:
https://www.khronos.org/registry/OpenGL/specs/es/2.0/GLSL_ES_Specification_1.00.pdf

OpenGL ES 2.0 API:
https://www.khronos.org/registry/OpenGL-Refpages/es2.0/

= THE END =

歡迎關注我的公眾號

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/296165.html

標籤:其他

上一篇:OpenCV 之 自定義濾波

下一篇:基于樣例的傳統影像修補演算法實作

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more