2011-09-30 93 views
7

WebGL已知有poor support for NPOT (non-power-of-two) textures。但是矩形紋理的寬度和高度都是2的冪數呢?具體來說,我試圖畫一個矩形幀緩衝區作爲渲染到紋理方案的一部分來生成一些UI元素。幀緩衝區需要是512x64或其附近。WebGL和長方形(兩個冪)紋理

這對繪圖而言效率低多少?如果幀率是一個問題,我是否會更好地分配一個512x512的兩倍大小的緩衝區,並只渲染前64個像素,犧牲內存以提高速度?

回答

8

從來沒有約束的寬度必須等於高度。

+0

要開發更多關於這個答案:一些壓縮紋理擴展*要求*紋理寬度和高度相等(WebGL仍然不支持它們),但這不是限制,也不是標準OpenGL/WebGL行爲。 – Chiguireitor

2

更具體地說:2D紋理根本不需要是方形的;不僅允許512x64紋理,而且還應該由驅動程序有效地實現;另一方面立方體地圖需要是方形的。

對於2D紋理,如果兩種包裝模式均爲CLAMP_TO_EDGE且您的縮小過濾器不需要mipmap,則可以使用NPOT紋理。 NPOT質地的效率可能因您的司機而異。