2014-07-11 75 views
0

假設我有幾百個不同大小的鄰接範圍0-100,101-300,301-1000,1001-2000等等。對於我來說,找到給定整數落入哪個範圍的最快方法是什麼?使用HLSL/GLSL?HLSL/GLSL查找整數的範圍

範圍將存儲在一個常量緩衝區中,我需要從頂點着色器中查找範圍。

我目前使用的蠻力方法太慢了。

int index = 0; 
int count = Lookup[index].count; 
while (integer > count){ 
    count += Lookup[index++].count; 
} 
return index; 

任何人有什麼想法?

+0

第一件事在我腦海中:二元搜索而不是線性?唯一的條件是你的範圍是排序的,它會更快。 http://en.wikipedia.org/wiki/Binary_search_algorithm – Gnietschow

+0

這正是我所追求的。謝謝!發表您的評論作爲答案,我會接受它。 –

+0

完成,我很高興幫助你:) – Gnietschow

回答