迷克思 發表於 2020-2-4 22:54:08

[科普] DirectX? OpenGL? 渲染器?

本帖最後由 迷克思 於 2020-2-4 22:55 編輯

大家好,這裡是迷克思{:10_358:}

今天上來是為了快速科普一下有關遊戲方面的東西,讓大家了解一下,
然而之前也有出現過太過艱深而導致看不懂的關係,所以我會盡量用最簡單的方式去解說w

而今天講的就是「渲染器」。

static/image/hrline/line3.png

在現在所有遊戲幾乎以 3D 呈現的時代下,
大家有沒有想過,遊戲是怎麼把 3D 轉成螢幕上顯示的樣子?
是怎麼弄出如此的場景? 為甚麼可以展現出現實難以達成的特效?

顯示卡是怎麼樣在我的電腦運作?

這一切可以先到所謂的 算圖器 (或稱 "彩現/算繪/渲染器", Renderer) 先解釋。
其實會先講這個也是因為最近虹彩 6 號的更新 (Vulkan),但很多人都不知道是什麼意思w

static/image/hrline/line3.png

算圖器的原理如下:
1. 找出座標點
2. 根據座標點畫出邊線,逐漸繪製出一整個場景或一系列物件
3. 如有需要,在邊線圍成的面積上放上材質或是顏色
4. 再根據視角,大小,於畫面上畫出所有像素

當然,我不會講太深w

在演算時,會分軟體跟硬體
軟體是指不靠任何加速,完全依靠最基本的 CPU 來算畫面。
硬體是指最常講到的硬體加速,能用顯示卡就會盡量用。

在硬體上還能再繼續分
一般的算圖器,及底層算圖器

底層算圖器是指,它能不靠 CPU,直接對顯示卡下指令,
與一般不同的是,一般都要經過 CPU 做翻譯,如果有需要顯示卡去做的,它才會去叫顯示卡出馬

static/image/hrline/line3.png

列一下最常在電腦界聽到的幾個算圖器:
1. Directx
2. OpenGL
3. Vulkan

DirectX:
最常在 Windows 聽到,幾乎是所有遊戲都是用這個來運作,
但也只能用在 Windows 上,當你換成 Mac 或是 Linux 時,就不能用了[!]

其實這個名子是指一系列的工具包,我們在遊戲中用的是 "Direct3D / D3D"
以近代遊戲來講,至今還在廣泛使用的有 3 大版本: 9.0/9.0c, 11, 12,
其中 D3D 12 版最特別,該版本是為了 更好的硬體加速 而提出的版本,屬於底層算圖器,僅適用於 Windows 10[!]

OpenGL:
早期曾經是 3D 界一大霸主,但在 D3D 提出之時,它的地位也一度動搖,
原因是它一開始是軟體算圖器,不能做硬體加速等優化,
直到後來才慢慢加入硬體加速功能。

目前在非 Windows 的電腦裡,多半還是用這個來算出 3D 的畫面。
雖是這麼說,不過它能支援所有有顯示卡的電腦。
最新版本為 4.6

Vulkan:
在 2016 年由負責管理 OpenGL 的基金會 "科納斯組織" 發布,代號為 "次世代 OpenGL 行動",
實際發布後並沒有再繼續用這個代號。

與 D3D12 一樣,屬於底層算圖器。
這邊也是大家常被誤解的事:Vulkan 並不是以 D3D 當藍圖[!]

當初在製作時有被 AMD 捐助一項技術 – "Mental',
Mental 也是目前的算圖器之一,但並不常聽到,不常使用,而且 AMD 的重心也逐漸轉往 Vulkan 支援,所以沒放在列表中。

跟 OpenGL 一樣,它可以支援幾乎所有電腦,無論是不是 Windows 10,或顯示卡是否用 Nvidia,
只要顯示卡有支援,就算是 Android 也能跑。

static/image/hrline/line3.png

目前許多公司或是工作室的開發重心,有逐漸轉向 Vulkan 的趨勢,
不外乎是因為它那極好的相容性,
不過也當然有公司繼續使用 D3D12,主要為了光線追蹤功能。(D3D12 Raytracing

那麼就先講到這裡,因為是我第一次打一份教學(?)文,所以可能會意外遺漏特別多w
如果有疑問歡迎上來問w

頁: [1]
查看完整版本: [科普] DirectX? OpenGL? 渲染器?