簡體   English   中英

在OpenGL中處理頂點的最佳技術? C ++

[英]Best technique to handle vertices in OpenGL? C++

我正在為Quake實現一個地圖渲染器。 我目前正在運行頂點數組並一次發送一個頂點數組。 有人告訴我,通過使用頂點數組,我可以通過批量發送頂點來大大加快渲染過程。 現在,我剛剛查看了顯示列表,最后查看了VBO或頂點緩沖區對象。 VBO提到了與客戶端/服務器通信相關的巨大優勢。 如果我只是在開發客戶而不是服務器,VBO仍然適用於我正在做的事情嗎?

目前在OpenGL頻譜中使用哪些游戲進行快速頂點處理?

當他們說“客戶/服務器”通信時,他們不是在談論互聯網。

  • 客戶端= CPU
  • Server = GFX硬件

這是兩個獨立的硬件。 雖然它們(通常)連接到同一主板,但它們仍然需要相互通信。 顯卡通常無法訪問主板上的主內存,因此需要將頂點(以及紋理,索引等)實際發送到圖形設備。

短篇小說:使用頂點緩沖對象。 對於靜態數據(如Quake map),沒有比這更好的了。 頂點被發送到圖形設備(服務器)一次並保持在那里。 當你逐個頂點繪制事物時(使用像glBegin(GL_TRIANGLES)這樣的東西),頂點會在每個幀上發送,正如你可以想象的那樣,效率非常低。

維也納國際組織是現代的答案。

不要誤解OpenGL意義上的“客戶端”和“服務器”這兩個術語。 不是 Apache(HTTP服務器)和Chrome(HTTP客戶端等)之間的區別。 在OpenGL術語中,客戶端是您/您的代碼。 服務器是圖形驅動程序/硬件。

VBO允許您在圖形硬件上存儲頂點信息,這樣可以避免每次使用時將每個頂點發送到卡上。 這是一個巨大的優勢。

您詢問頂點處理,但要回答您的問題,我們必須澄清您的意思。 如果你的意思是獲得頂點到顯卡,答案是維也納國際中心。 如果我們談論操縱頂點數據,可以通過着色器有效地實現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM