簡體   English   中英

將正方形矩陣轉換為三角形帶的快速算法是什么?

[英]What is a quick algorithm for converting a matrix of squares into a triangle strip?

假設有一個4x4的正方形,其中有16個較小的正方形,並帶有有關正方形外觀的相關數據(即不透明度,顏色等)。

是否存在現有的高效算法,可以將這組正方形轉換為與open-gl兼容的三角帶?

我不確定我是否正確理解您嘗試渲染的幾何圖形。 如果這是一種網格,那么我將如何操作:

用所有頂點創建並填充頂點緩沖區對象:

8--9--a--b
| /| /| /|
|/ |/ |/ |
4--5--6--7
| /| /| /|
|/ |/ |/ |
0--1--2--3

用用於渲染四邊形網格的索引創建並填充元素數組緩沖區:

{ 0,1,5,4, 1,2,6,5, 2,3,7,6, 4,5,9,8, 5,6,a,9, 6,7,b,a }

使用gl * Pointer設置所有內容,並使用帶有GL_QUADS的glDrawElements進行渲染。 頂點緩存將處理已轉換的頂點:第一個頂點之后的每個四邊形僅需要轉換2個頂點。

我認為,如果對元素數組緩沖區進行一些三段四段操作 ,您將不會獲得任何收益。

如果要剝離它,請創建相應的元素數組緩沖區,並為每行調用glDrawElements。 可以使用僅Nvidia擴展GL_NV_primitive_restart在一個呼叫中完成此操作

如果不是網格,可以嘗試使用NvTriStrip

暫無
暫無

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

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