有沒有人知道一種有效的方式來加載紋理到OpenGL ES中,其尺寸不是2的冪數?我是OpenGL的新手,我正在爲iPhone開發2D遊戲,並且我已經制作了很多紋理。將我的所有紋理重新調整到2的冪是非常繁瑣的工作。在OpenGL ES中加載非冪次的圖像iPhone
回答
由於性能的原因,最好將所有的精靈都放到地圖集中。地圖集是一個很大的紋理,包含你所有的精靈。有一些工具可以使這個過程自動化。例如TexturePacker:http://www.texturepacker.com/
根據您使用的是哪種技術,您可能必須解析紋理打包器的輸出以獲取UV偏移。
btw .:性能損失的原因是因爲iPhone上的紋理開關非常昂貴。您希望儘可能少地使用紋理切換。 有一點背景可以在這裏找到:http://www.imgtec.com/powervr/insider/docs/PowerVR%20Series5%20Graphics.SGX%20architecture%20guide%20for%20developers.1.0.8.External.pdf –
非常感謝你。這幫了很多。 – Marc
如果您使用的是線性混合,這種方法會導致精靈與它們的相鄰像素_在atlas_中混合,而不是像CLAMP那樣,這可能是您想要的精靈。當你開始縮小時需要記住一些事情。 –
unsigned int NextPOT(unsigned int x)
{
x = x - 1;
x = x | (x >> 1);
x = x | (x >> 2);
x = x | (x >> 4);
x = x | (x >> 8);
x = x | (x >>16);
return x + 1;
}
unsigned int width = CGImageGetWidth(image.CGImage);
unsigned int height = CGImageGetHeight(image.CGImage);
unsigned int Width_POT = NextPOT(width);
unsigned int Height_POT = NextPOT(height);
CGRect Rect = CGRectMake(0,0,width, height);
CGSize size = CGSizeMake(Width_POT, Height_POT);
UIGraphicsBeginImageContext(size);
[image drawInRect:Rect];
UIImage* result = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
圖像是源圖像大小,其是2非POW,結果是可以傳遞到OpenGL的圖像
- 1. OpenGL ES 2 - 加載和顯示圖像
- 2. 從iPhone中的C++代碼將圖像載入到OpenGL ES中
- 3. 如何在用於iphone的OpenGL ES中加載和顯示圖像
- 4. iPhone的OpenGL-ES:在OpenGL UISwipeGestureRecognizer
- 5. 異步紋理加載iPhone OpenGL ES 2
- 6. 在openGL中加載圖像
- 7. 在iPhone上的OpenGL ES中,如何滾動兩個圖像?
- 8. 在Opengl中實現非2次冪的紋理
- 9. OpenGL ES For iPhone
- 10. iPhone OpenGL ES
- 11. 在iPhone上渲染到非二次冪的紋理
- 12. OpenGL ES將保存的圖像加載回到renderbuffer
- 13. 在OpenGL ES中隱藏圖像部分
- 14. 如何在openGL ES中移動圖像?
- 15. opengl es 2.0紋理加載
- 16. iPhone OpenGL ES Texture2D Masking
- 17. Fullscreen texture iPhone OpenGL ES
- 18. OpenGL ES iPhone紋理
- 19. Iphone opengl es - glu,glPushName
- 20. Android OpenGL ES扭曲圖像
- 21. 橡皮擦在OpenGL ES iphone
- 22. OpenGL ES 2.0中的圖像和蒙版
- 23. 在iPhone的OpenGL ES中紋理球體
- 24. iPhone OpenGL ES 2.0 - 像素完美紋理
- 25. 加載SDL圖像的OpenGL圖像
- 26. 在iPhone上使用OpenGL ES調用圖像:可能嗎?
- 27. OpenGL ES中的攝像頭
- 28. 如何在opengl中加載圖像
- 29. 如何更改ios中用於OpenGL的圖像格式? (將圖像加載到OpenGL ES 2.0)
- 30. 在後臺加載OpenGl視圖。 iPhone
參見http://stackoverflow.com/questions/3014352/fullscreen-texture-iphone -opengl-es –
我很確定你的意思是兩個人的權力,對於那個迂腐的人很抱歉。 –
這沒有問題。謝謝你指出。 – Marc